diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ff7ec9b3a4..5f02bfe15e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -750,12 +750,18 @@ valgrind ges: - meson build/ $MESON_ARGS - ccache --show-stats + - ninja -C build/ update_girs + # Ignore modifications to wrap files made by meson + - git checkout subprojects/*.wrap + - ./ci/scripts/check-diff.py "gir files" + - ./gst-env.py ninja -C build/ plugins_doc_caches # Ignore modifications to wrap files made by meson - git checkout subprojects/*.wrap - - ./ci/scripts/check-documentation-diff.py + - ./ci/scripts/check-diff.py - ./gst-env.py ninja -C build subprojects/gst-docs/GStreamer-doc + - mv build/subprojects/gst-docs/GStreamer-doc/html documentation/ artifacts: @@ -763,7 +769,7 @@ valgrind ges: expire_in: "7 days" paths: - documentation/ - - plugins-cache-diffs/ + - diffs/ # # This jobs runs in gstreamer namespace when after the merge into main branch. diff --git a/ci/scripts/check-diff.py b/ci/scripts/check-diff.py new file mode 100755 index 0000000000..e0b9d71031 --- /dev/null +++ b/ci/scripts/check-diff.py @@ -0,0 +1,30 @@ +#!/usr/bin/python3 +import os +import subprocess +import sys +import argparse + +PARSER = argparse.ArgumentParser() +PARSER.add_argument('name', default="documentation cache", nargs="?") + +if __name__ == "__main__": + opts = PARSER.parse_args() + + print(opts) + diffsdir = 'diffs' + os.makedirs(diffsdir, exist_ok=True) + res = 0 + try: + subprocess.check_call(['git', 'diff', '--quiet']) + except subprocess.CalledProcessError: + diffname = os.path.join(diffsdir, f"{opts.name.replace(' ', '_')}.diff") + res += 1 + with open(diffname, 'w') as diff: + subprocess.check_call(['git', 'diff'], stdout=diff) + print(f'\033[91mYou have a diff in the {opts.name}. Please update with:\033[0m') + print(' $ curl %s/%s | git apply -' % + (os.environ.get('CI_ARTIFACTS_URL', "NOT_RUNNING_ON_CI"), diffname.replace('../', ''))) + + if res != 0: + print('(note that it might take a few minutes for artefacts to be available on the server)\n') + sys.exit(res) diff --git a/ci/scripts/check-documentation-diff.py b/ci/scripts/check-documentation-diff.py deleted file mode 100755 index 7dad06e7cc..0000000000 --- a/ci/scripts/check-documentation-diff.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/python3 -import os, subprocess, sys - -if __name__ == "__main__": - diffsdir = 'plugins-cache-diffs' - os.makedirs(diffsdir, exist_ok=True) - res = 0 - try: - subprocess.check_call(['git', 'diff', '--quiet'] ) - except subprocess.CalledProcessError: - diffname = os.path.join(diffsdir, 'plugins_cache.diff') - res += 1 - with open(diffname, 'w') as diff: - subprocess.check_call(['git', 'diff'], stdout=diff) - print('\033[91mYou have a diff in the documentation cache. Please update with:\033[0m') - print(' $ curl %s/%s | git apply -' % (os.environ['CI_ARTIFACTS_URL'], diffname.replace('../', ''))) - - if res != 0: - print('(note that it might take a few minutes for artefacts to be available on the server)\n') - sys.exit(res) \ No newline at end of file diff --git a/girs/CudaGst-1.0.gir b/girs/CudaGst-1.0.gir new file mode 100644 index 0000000000..35c1fe5fb8 --- /dev/null +++ b/girs/CudaGst-1.0.gir @@ -0,0 +1,345 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <namespace name="CudaGst" version="1.0" shared-library="libgstcuda-1.0.so.0" c:identifier-prefixes="CU" c:symbol-prefixes="cu,cuda"> + <alias name="array" c:type="CUarray"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gpointer" c:type="gpointer"/> + </alias> + <alias name="context" c:type="CUcontext"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gpointer" c:type="gpointer"/> + </alias> + <alias name="device" c:type="CUdevice"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gint" c:type="gint"/> + </alias> + <alias name="deviceptr" c:type="CUdeviceptr"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="guintptr" c:type="guintptr"/> + </alias> + <alias name="function" c:type="CUfunction"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gpointer" c:type="gpointer"/> + </alias> + <alias name="graphicsResource" c:type="CUgraphicsResource"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gpointer" c:type="gpointer"/> + </alias> + <alias name="mipmappedArray" c:type="CUmipmappedArray"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gpointer" c:type="gpointer"/> + </alias> + <alias name="module" c:type="CUmodule"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gpointer" c:type="gpointer"/> + </alias> + <alias name="stream" c:type="CUstream"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gpointer" c:type="gpointer"/> + </alias> + <alias name="texObject" c:type="CUtexObject"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="guint64" c:type="guint64"/> + </alias> + <record name="DA_MEMCPY2D" c:type="CUDA_MEMCPY2D"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <field name="srcXInBytes" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="srcY" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="srcMemoryType" writable="1"> + <type name="memorytype" c:type="CUmemorytype"/> + </field> + <field name="srcHost" writable="1"> + <type name="gpointer" c:type="gconstpointer"/> + </field> + <field name="srcDevice" writable="1"> + <type name="deviceptr" c:type="CUdeviceptr"/> + </field> + <field name="srcArray" writable="1"> + <type name="array" c:type="CUarray"/> + </field> + <field name="srcPitch" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="dstXInBytes" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="dstY" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="dstMemoryType" writable="1"> + <type name="memorytype" c:type="CUmemorytype"/> + </field> + <field name="dstHost" writable="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="dstDevice" writable="1"> + <type name="deviceptr" c:type="CUdeviceptr"/> + </field> + <field name="dstArray" writable="1"> + <type name="array" c:type="CUarray"/> + </field> + <field name="dstPitch" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="WidthInBytes" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="Height" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + </record> + <record name="DA_RESOURCE_DESC" c:type="CUDA_RESOURCE_DESC"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <field name="resType" writable="1"> + <type name="resourcetype" c:type="CUresourcetype"/> + </field> + <union name="res" c:type="res"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <record name="array" c:type="array"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <field name="hArray" writable="1"> + <type name="array" c:type="CUarray"/> + </field> + </record> + <record name="mipmap" c:type="mipmap"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <field name="hMipmappedArray" writable="1"> + <type name="mipmappedArray" c:type="CUmipmappedArray"/> + </field> + </record> + <record name="linear" c:type="linear"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <field name="devPtr" writable="1"> + <type name="deviceptr" c:type="CUdeviceptr"/> + </field> + <field name="format" writable="1"> + <type name="array_format" c:type="CUarray_format"/> + </field> + <field name="numChannels" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="sizeInBytes" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + </record> + <record name="pitch2D" c:type="pitch2D"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <field name="devPtr" writable="1"> + <type name="deviceptr" c:type="CUdeviceptr"/> + </field> + <field name="format" writable="1"> + <type name="array_format" c:type="CUarray_format"/> + </field> + <field name="numChannels" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="width" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="height" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="pitchInBytes" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + </record> + <record name="reserved" c:type="reserved"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <field name="reserved" writable="1"> + <array zero-terminated="0" fixed-size="32"> + <type name="gint" c:type="gint"/> + </array> + </field> + </record> + </union> + <field name="flags" writable="1"> + <type name="guint" c:type="guint"/> + </field> + </record> + <record name="DA_RESOURCE_VIEW_DESC" c:type="CUDA_RESOURCE_VIEW_DESC"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <field name="format" writable="1"> + <type name="resourceViewFormat" c:type="CUresourceViewFormat"/> + </field> + <field name="width" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="height" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="depth" writable="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="firstMipmapLevel" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="lastMipmapLevel" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="firstLayer" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="lastLayer" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="reserved" writable="1"> + <array zero-terminated="0" fixed-size="16"> + <type name="guint" c:type="guint"/> + </array> + </field> + </record> + <record name="DA_TEXTURE_DESC" c:type="CUDA_TEXTURE_DESC"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <field name="addressMode" writable="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="address_mode" c:type="CUaddress_mode"/> + </array> + </field> + <field name="filterMode" writable="1"> + <type name="filter_mode" c:type="CUfilter_mode"/> + </field> + <field name="flags" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="maxAnisotropy" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="mipmapFilterMode" writable="1"> + <type name="filter_mode" c:type="CUfilter_mode"/> + </field> + <field name="mipmapLevelBias" writable="1"> + <type name="gfloat" c:type="gfloat"/> + </field> + <field name="minMipmapLevelClamp" writable="1"> + <type name="gfloat" c:type="gfloat"/> + </field> + <field name="maxMipmapLevelClamp" writable="1"> + <type name="gfloat" c:type="gfloat"/> + </field> + <field name="borderColor" writable="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gfloat" c:type="gfloat"/> + </array> + </field> + <field name="reserved" writable="1"> + <array zero-terminated="0" fixed-size="12"> + <type name="gint" c:type="gint"/> + </array> + </field> + </record> + <enumeration name="GLDeviceList" c:type="CUGLDeviceList"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cudaGL.h"/> + <member name="gl_device_list_all" value="1" c:identifier="CU_GL_DEVICE_LIST_ALL"> + </member> + </enumeration> + <constant name="TRSF_READ_AS_INTEGER" value="1" c:type="CU_TRSF_READ_AS_INTEGER"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION" value="10000" c:type="CUDA_VERSION"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <type name="gint" c:type="gint"/> + </constant> + <enumeration name="address_mode" c:type="CUaddress_mode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="wrap" value="0" c:identifier="CU_TR_ADDRESS_MODE_WRAP"> + </member> + <member name="clamp" value="1" c:identifier="CU_TR_ADDRESS_MODE_CLAMP"> + </member> + <member name="mirror" value="2" c:identifier="CU_TR_ADDRESS_MODE_MIRROR"> + </member> + <member name="border" value="3" c:identifier="CU_TR_ADDRESS_MODE_BORDER"> + </member> + </enumeration> + <enumeration name="array_format" c:type="CUarray_format"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="int8" value="1" c:identifier="CU_AD_FORMAT_UNSIGNED_INT8"> + </member> + <member name="int16" value="2" c:identifier="CU_AD_FORMAT_UNSIGNED_INT16"> + </member> + </enumeration> + <enumeration name="device_attribute" c:type="CUdevice_attribute"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="texture_alignment" value="14" c:identifier="CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT"> + </member> + <member name="compute_capability_major" value="75" c:identifier="CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR"> + </member> + <member name="compute_capability_minor" value="76" c:identifier="CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR"> + </member> + </enumeration> + <enumeration name="filter_mode" c:type="CUfilter_mode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="point" value="0" c:identifier="CU_TR_FILTER_MODE_POINT"> + </member> + <member name="linear" value="1" c:identifier="CU_TR_FILTER_MODE_LINEAR"> + </member> + </enumeration> + <enumeration name="graphicsMapResourceFlags" c:type="CUgraphicsMapResourceFlags"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="none" value="0" c:identifier="CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE"> + </member> + <member name="read_only" value="1" c:identifier="CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY"> + </member> + <member name="write_discard" value="2" c:identifier="CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD"> + </member> + </enumeration> + <enumeration name="graphicsRegisterFlags" c:type="CUgraphicsRegisterFlags"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="none" value="0" c:identifier="CU_GRAPHICS_REGISTER_FLAGS_NONE"> + </member> + <member name="read_only" value="1" c:identifier="CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY"> + </member> + <member name="write_discard" value="2" c:identifier="CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD"> + </member> + <member name="surface_load_store" value="4" c:identifier="CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LOAD_STORE"> + </member> + <member name="texture_gather" value="8" c:identifier="CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER"> + </member> + </enumeration> + <enumeration name="memorytype" c:type="CUmemorytype"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="host" value="1" c:identifier="CU_MEMORYTYPE_HOST"> + </member> + <member name="device" value="2" c:identifier="CU_MEMORYTYPE_DEVICE"> + </member> + <member name="array" value="3" c:identifier="CU_MEMORYTYPE_ARRAY"> + </member> + <member name="unified" value="4" c:identifier="CU_MEMORYTYPE_UNIFIED"> + </member> + </enumeration> + <enumeration name="resourceViewFormat" c:type="CUresourceViewFormat"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="res_view_format_none" value="0" c:identifier="CU_RES_VIEW_FORMAT_NONE"> + </member> + </enumeration> + <enumeration name="resourcetype" c:type="CUresourcetype"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="array" value="0" c:identifier="CU_RESOURCE_TYPE_ARRAY"> + </member> + <member name="mipmapped_array" value="1" c:identifier="CU_RESOURCE_TYPE_MIPMAPPED_ARRAY"> + </member> + <member name="linear" value="2" c:identifier="CU_RESOURCE_TYPE_LINEAR"> + </member> + <member name="pitch2d" value="3" c:identifier="CU_RESOURCE_TYPE_PITCH2D"> + </member> + </enumeration> + <enumeration name="result" c:type="CUresult"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="success" value="0" c:identifier="CUDA_SUCCESS"> + </member> + </enumeration> + <enumeration name="stream_flags" c:type="CUstream_flags"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/stub/cuda.h"/> + <member name="default" value="0" c:identifier="CU_STREAM_DEFAULT"> + </member> + <member name="non_blocking" value="1" c:identifier="CU_STREAM_NON_BLOCKING"> + </member> + </enumeration> + </namespace> +</repository> diff --git a/girs/GES-1.0.gir b/girs/GES-1.0.gir new file mode 100644 index 0000000000..f39d227f51 --- /dev/null +++ b/girs/GES-1.0.gir @@ -0,0 +1,16285 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="GObject" version="2.0"/> + <include name="Gio" version="2.0"/> + <include name="Gst" version="1.0"/> + <include name="GstPbutils" version="1.0"/> + <include name="GstVideo" version="1.0"/> + <package name="gst-editing-services-1.0"/> + <c:include name="ges/ges.h"/> + <namespace name="GES" version="1.0" shared-library="libges-1.0.so.0" c:identifier-prefixes="GES" c:symbol-prefixes="ges"> + <alias name="FrameNumber" c:type="GESFrameNumber"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-types.h">A datatype to hold a frame number.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <type name="gint64" c:type="gint64"/> + </alias> + <class name="Asset" c:symbol-prefix="asset" c:type="GESAsset" parent="GObject.Object" glib:type-name="GESAsset" glib:get-type="ges_asset_get_type" glib:type-struct="AssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset in the GStreamer Editing Services represents a resources +that can be used. In particular, any class that implements the +#GESExtractable interface may have some associated assets with a +corresponding #GESAsset:extractable-type, from which its objects can be +extracted using ges_asset_extract(). Some examples would be +#GESClip, #GESFormatter and #GESTrackElement. + +All assets that are created within GES are stored in a cache; one per +each #GESAsset:id and #GESAsset:extractable-type pair. These assets can +be fetched, and initialized if they do not yet exist in the cache, +using ges_asset_request(). + +``` c +GESAsset *effect_asset; +GESEffect *effect; + +// You create an asset for an effect +effect_asset = ges_asset_request (GES_TYPE_EFFECT, "agingtv", NULL); + +// And now you can extract an instance of GESEffect from that asset +effect = GES_EFFECT (ges_asset_extract (effect_asset)); + +``` + +The advantage of using assets, rather than simply creating the object +directly, is that the currently loaded resources can be listed with +ges_list_assets() and displayed to an end user. For example, to show +which media files have been loaded, and a standard list of effects. In +fact, the GES library already creates assets for #GESTransitionClip and +#GESFormatter, which you can use to list all the available transition +types and supported formats. + +The other advantage is that #GESAsset implements #GESMetaContainer, so +metadata can be set on the asset, with some subclasses automatically +creating this metadata on initiation. + +For example, to display information about the supported formats, you +could do the following: +|[ + GList *formatter_assets, *tmp; + + // List all the transitions + formatter_assets = ges_list_assets (GES_TYPE_FORMATTER); + + // Print some infos about the formatter GESAsset + for (tmp = formatter_assets; tmp; tmp = tmp->next) { + gst_print ("Name of the formatter: %s, file extension it produces: %s", + ges_meta_container_get_string ( + GES_META_CONTAINER (tmp->data), GES_META_FORMATTER_NAME), + ges_meta_container_get_string ( + GES_META_CONTAINER (tmp->data), GES_META_FORMATTER_EXTENSION)); + } + + g_list_free (transition_assets); + +]| + +## ID + +Each asset is uniquely defined in the cache by its +#GESAsset:extractable-type and #GESAsset:id. Depending on the +#GESAsset:extractable-type, the #GESAsset:id can be used to parametrise +the creation of the object upon extraction. By default, a class that +implements #GESExtractable will only have a single associated asset, +with an #GESAsset:id set to the type name of its objects. However, this +is overwritten by some implementations, which allow a class to have +multiple associated assets. For example, for #GESTransitionClip the +#GESAsset:id will be a nickname of the #GESTransitionClip:vtype. You +should check the documentation for each extractable type to see if they +differ from the default. + +Moreover, each #GESAsset:extractable-type may also associate itself +with a specific asset subclass. In such cases, when their asset is +requested, an asset of this subclass will be returned instead. + +## Managing + +You can use a #GESProject to easily manage the assets of a +#GESTimeline. + +## Proxies + +Some assets can (temporarily) act as the #GESAsset:proxy of another +asset. When the original asset is requested from the cache, the proxy +will be returned in its place. This can be useful if, say, you want +to substitute a #GESUriClipAsset corresponding to a high resolution +media file with the asset of a lower resolution stand in. + +An asset may even have several proxies, the first of which will act as +its default and be returned on requests, but the others will be ordered +to take its place once it is removed. You can add a proxy to an asset, +or set its default, using ges_asset_set_proxy(), and you can remove +them with ges_asset_unproxy().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <function name="needs_reload" c:identifier="ges_asset_needs_reload"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Indicate that an existing #GESAsset in the cache should be reloaded +upon the next request. This can be used when some condition has +changed, which may require that an existing asset should be updated. +For example, if an external resource has changed or now become +available. + +Note, the asset is not immediately changed, but will only actually +reload on the next call to ges_asset_request() or +ges_asset_request_async().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">%TRUE if the specified asset exists in the cache and could be +marked for reloading.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:extractable-type of the asset that +needs reloading</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:id of the asset asset that needs +reloading</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="request" c:identifier="ges_asset_request" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Returns an asset with the given properties. If such an asset already +exists in the cache (it has been previously created in GES), then a +reference to the existing asset is returned. Otherwise, a newly created +asset is returned, and also added to the cache. + +If the requested asset has been loaded with an error, then @error is +set, if given, and %NULL will be returned instead. + +Note that the given @id may not be exactly the #GESAsset:id that is +set on the returned asset. For instance, it may be adjusted into a +standard format. Or, if a #GESExtractable type does not have its +extraction parametrised, as is the case by default, then the given @id +may be ignored entirely and the #GESAsset:id set to some standard, in +which case a %NULL @id can be given. + +Similarly, the given @extractable_type may not be exactly the +#GESAsset:extractable-type that is set on the returned asset. Instead, +the actual extractable type may correspond to a subclass of the given +@extractable_type, depending on the given @id. + +Moreover, depending on the given @extractable_type, the returned asset +may belong to a subclass of #GESAsset. + +Finally, if the requested asset has a #GESAsset:proxy, then the proxy +that is found at the end of the chain of proxies is returned (a proxy's +proxy will take its place, and so on, unless it has no proxy). + +Some asset subclasses only support asynchronous construction of its +assets, such as #GESUriClip. For such assets this method will fail, and +you should use ges_asset_request_async() instead. In the case of +#GESUriClip, you can use ges_uri_clip_asset_request_sync() if you only +want to wait for the request to finish.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A reference to the requested +asset, or %NULL if an error occurred.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:extractable-type of the asset</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:id of the asset</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="request_async" c:identifier="ges_asset_request_async"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Requests an asset with the given properties asynchronously (see +ges_asset_request()). When the asset has been initialized or fetched +from the cache, the given callback function will be called. The +asset can then be retrieved in the callback using the +ges_asset_request_finish() method on the given #GAsyncResult. + +Note that the source object passed to the callback will be the +#GESAsset corresponding to the request, but it may not have loaded +correctly and therefore can not be used as is. Instead, +ges_asset_request_finish() should be used to fetch a usable asset, or +indicate that an error occurred in the asset's creation. + +Note that the callback will be called in the #GMainLoop running under +the same #GMainContext that ges_init() was called in. So, if you wish +the callback to be invoked outside the default #GMainContext, you can +call g_main_context_push_thread_default() in a new thread before +calling ges_init(). + +Example of an asynchronous asset request: +``` c +// The request callback +static void +asset_loaded_cb (GESAsset * source, GAsyncResult * res, gpointer user_data) +{ + GESAsset *asset; + GError *error = NULL; + + asset = ges_asset_request_finish (res, &error); + if (asset) { + gst_print ("The file: %s is usable as a GESUriClip", + ges_asset_get_id (asset)); + } else { + gst_print ("The file: %s is *not* usable as a GESUriClip because: %s", + ges_asset_get_id (source), error->message); + } + + gst_object_unref (asset); +} + +// The request: +ges_asset_request_async (GES_TYPE_URI_CLIP, some_uri, NULL, + (GAsyncReadyCallback) asset_loaded_cb, user_data); +```</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:extractable-type of the asset</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:id of the asset</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">An object to allow cancellation of the +asset request, or %NULL to ignore</doc> + <type name="Gio.Cancellable" c:type="GCancellable*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="4"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A function to call when the initialization is finished</doc> + <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Data to be passed to @callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="request_finish" c:identifier="ges_asset_request_finish" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Fetches an asset requested by ges_asset_request_async(), which +finalises the request.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The requested asset, or %NULL if an error +occurred.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <parameter name="res" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The task result to fetch the asset from</doc> + <type name="Gio.AsyncResult" c:type="GAsyncResult*"/> + </parameter> + </parameters> + </function> + <virtual-method name="extract" invoker="extract" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Extracts a new #GESAsset:extractable-type object from the asset. The +#GESAsset:id of the asset may determine the properties and state of the +newly created object.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A newly created object, or %NULL if an +error occurred.</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to extract an object from</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="inform_proxy"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proxy_id" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="proxied"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proxy" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="request_id_update"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proposed_new_id" transfer-ownership="none"> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start_loading" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="AssetLoadingReturn" c:type="GESAssetLoadingReturn"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="extract" c:identifier="ges_asset_extract" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Extracts a new #GESAsset:extractable-type object from the asset. The +#GESAsset:id of the asset may determine the properties and state of the +newly created object.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A newly created object, or %NULL if an +error occurred.</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to extract an object from</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_error" c:identifier="ges_asset_get_error" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Retrieve the error that was set on the asset when it was loaded.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The error set on @asset, or +%NULL if no error occurred when @asset was loaded.</doc> + <type name="GLib.Error" c:type="GError*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_extractable_type" c:identifier="ges_asset_get_extractable_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Gets the #GESAsset:extractable-type of the asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The extractable type of @self.</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_id" c:identifier="ges_asset_get_id"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Gets the #GESAsset:id of the asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The ID of @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_proxy" c:identifier="ges_asset_get_proxy"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Gets the default #GESAsset:proxy of the asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The default proxy of @asset.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_proxy_target" c:identifier="ges_asset_get_proxy_target"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Gets the #GESAsset:proxy-target of the asset. + +Note that the proxy target may have loaded with an error, so you should +call ges_asset_get_error() on the returned target.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The asset that @proxy is a proxy +of.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="proxy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="list_proxies" c:identifier="ges_asset_list_proxies"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Get all the proxies that the asset has. The first item of the list will +be the default #GESAsset:proxy. The second will be the proxy that is +'next in line' to be default, and so on.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The list of proxies +that @asset has.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Asset"/> + </type> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_proxy" c:identifier="ges_asset_set_proxy"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Sets the #GESAsset:proxy for the asset. + +If @proxy is among the existing proxies of the asset (see +ges_asset_list_proxies()) it will be moved to become the default +proxy. Otherwise, if @proxy is not %NULL, it will be added to the list +of proxies, as the new default. The previous default proxy will become +'next in line' for if the new one is removed, and so on. As such, this +will **not** actually remove the previous default proxy (use +ges_asset_unproxy() for that). + +Note that an asset can only act as a proxy for one other asset. + +As a special case, if @proxy is %NULL, then this method will actually +remove **all** proxies from the asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">%TRUE if @proxy was successfully set as the default for +@asset.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to proxy</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proxy" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A new default proxy for @asset</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <method name="unproxy" c:identifier="ges_asset_unproxy"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Removes the proxy from the available list of proxies for the asset. If +the given proxy is the default proxy of the list, then the next proxy +in the available list (see ges_asset_list_proxies()) will become the +default. If there are no other proxies, then the asset will no longer +have a default #GESAsset:proxy.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">%TRUE if @proxy was successfully removed from @asset's proxy +list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to no longer proxy with @proxy</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proxy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">An existing proxy of @asset</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <property name="extractable-type" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESExtractable object type that can be extracted from the asset.</doc> + <type name="GType" c:type="GType"/> + </property> + <property name="id" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The ID of the asset. This should be unique amongst all assets with +the same #GESAsset:extractable-type. Depending on the associated +#GESExtractable implementation, this id may convey some information +about the #GObject that should be extracted. Note that, as such, the +ID will have an expected format, and you can not choose this value +arbitrarily. By default, this will be set to the type name of the +#GESAsset:extractable-type, but you should check the documentation +of the extractable type to see whether they differ from the +default behaviour.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="proxy" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The default proxy for this asset, or %NULL if it has no proxy. A +proxy will act as a substitute for the original asset when the +original is requested (see ges_asset_request()). + +Setting this property will not usually remove the existing proxy, but +will replace it as the default (see ges_asset_set_proxy()).</doc> + <type name="Asset"/> + </property> + <property name="proxy-target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The asset that this asset is a proxy for, or %NULL if it is not a +proxy for another asset. + +Note that even if this asset is acting as a proxy for another asset, +but this asset is not the default #GESAsset:proxy, then @proxy-target +will *still* point to this other asset. So you should check the +#GESAsset:proxy property of @target-proxy before assuming it is the +current default proxy for the target. + +Note that the #GObject::notify for this property is emitted after +the #GESAsset:proxy #GObject::notify for the corresponding (if any) +asset it is now the proxy of/no longer the proxy of.</doc> + <type name="Asset"/> + </property> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AssetPrivate" c:type="GESAssetPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AssetClass" c:type="GESAssetClass" glib:is-gtype-struct-for="Asset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <field name="parent"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="start_loading"> + <callback name="start_loading" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="AssetLoadingReturn" c:type="GESAssetLoadingReturn"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="extract"> + <callback name="extract" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A newly created object, or %NULL if an +error occurred.</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to extract an object from</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="inform_proxy"> + <callback name="inform_proxy"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="proxy_id" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="proxied"> + <callback name="proxied"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="proxy" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="request_id_update"> + <callback name="request_id_update"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="proposed_new_id" transfer-ownership="none"> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="AssetLoadingReturn" c:type="GESAssetLoadingReturn"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <member name="error" value="0" c:identifier="GES_ASSET_LOADING_ERROR"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.h">Indicates that an error occurred</doc> + </member> + <member name="async" value="1" c:identifier="GES_ASSET_LOADING_ASYNC"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.h">Indicates that the loading is being performed +asynchronously</doc> + </member> + <member name="ok" value="2" c:identifier="GES_ASSET_LOADING_OK"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.h">Indicates that the loading is complete, without +error</doc> + </member> + </enumeration> + <record name="AssetPrivate" c:type="GESAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + </record> + <class name="AudioSource" c:symbol-prefix="audio_source" c:type="GESAudioSource" parent="Source" abstract="1" glib:type-name="GESAudioSource" glib:get-type="ges_audio_source_get_type" glib:type-struct="AudioSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-source.c">## Children Properties + +You can use the following children properties through the +#ges_track_element_set_child_property and alike set of methods: + +- #gdouble `volume`: volume factor, 1.0=100%. +- #gboolean `mute`: mute channel.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="Source" c:type="GESSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioSourcePrivate" c:type="GESAudioSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioSourceClass" c:type="GESAudioSourceClass" glib:is-gtype-struct-for="AudioSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClass" c:type="GESSourceClass"/> + </field> + <field name="create_source" introspectable="0"> + <callback name="create_source" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-source.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioSourcePrivate" c:type="GESAudioSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-source.h"/> + </record> + <class name="AudioTestSource" c:symbol-prefix="audio_test_source" c:type="GESAudioTestSource" parent="AudioSource" glib:type-name="GESAudioTestSource" glib:get-type="ges_audio_test_source_get_type" glib:type-struct="AudioTestSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Outputs a test audio stream using audiotestsrc. The default property values +output silence. Useful for testing pipelines, or to fill gaps in an audio +track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="get_freq" c:identifier="ges_audio_test_source_get_freq"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Get the current frequency of @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">The current frequency of @self.</doc> + <type name="gdouble" c:type="double"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">a #GESAudioTestSource</doc> + <type name="AudioTestSource" c:type="GESAudioTestSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_volume" c:identifier="ges_audio_test_source_get_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Get the current volume of @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">The current volume of @self</doc> + <type name="gdouble" c:type="double"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">a #GESAudioTestSource</doc> + <type name="AudioTestSource" c:type="GESAudioTestSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_freq" c:identifier="ges_audio_test_source_set_freq"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Lets you set the frequency applied on the track element</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">a #GESAudioTestSource</doc> + <type name="AudioTestSource" c:type="GESAudioTestSource*"/> + </instance-parameter> + <parameter name="freq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">The frequency you want to apply on @self</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_volume" c:identifier="ges_audio_test_source_set_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Sets the volume of the test audio signal.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">a #GESAudioTestSource</doc> + <type name="AudioTestSource" c:type="GESAudioTestSource*"/> + </instance-parameter> + <parameter name="volume" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">The volume you want to apply on @self</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="AudioSource" c:type="GESAudioSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioTestSourcePrivate" c:type="GESAudioTestSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioTestSourceClass" c:type="GESAudioTestSourceClass" glib:is-gtype-struct-for="AudioTestSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="AudioSourceClass" c:type="GESAudioSourceClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioTestSourcePrivate" c:type="GESAudioTestSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + </record> + <class name="AudioTrack" c:symbol-prefix="audio_track" c:type="GESAudioTrack" parent="Track" glib:type-name="GESAudioTrack" glib:get-type="ges_audio_track_get_type" glib:type-struct="AudioTrackClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-track.c">A #GESAudioTrack is a default audio #GESTrack, with a +#GES_TRACK_TYPE_AUDIO #GESTrack:track-type and "audio/x-raw(ANY)" +#GESTrack:caps. + +By default, an audio track will have its #GESTrack:restriction-caps +set to "audio/x-raw" with the following properties: + +- format: "S32LE" +- channels: 2 +- rate: 44100 +- layout: "interleaved" + +These fields are needed for negotiation purposes, but you can change +their values if you wish. It is advised that you do so using +ges_track_update_restriction_caps() with new values for the fields you +wish to change, and any additional fields you may want to add. Unlike +using ges_track_set_restriction_caps(), this will ensure that these +default fields will at least have some value set.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-track.h"/> + <implements name="MetaContainer"/> + <implements name="Gst.ChildProxy"/> + <constructor name="new" c:identifier="ges_audio_track_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-track.c">Creates a new audio track, with a #GES_TRACK_TYPE_AUDIO +#GESTrack:track-type, "audio/x-raw(ANY)" #GESTrack:caps, and +"audio/x-raw" #GESTrack:restriction-caps with the properties: + +- format: "S32LE" +- channels: 2 +- rate: 44100 +- layout: "interleaved" + +You should use ges_track_update_restriction_caps() if you wish to +modify these fields, or add additional ones.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-track.c">The newly created audio track.</doc> + <type name="AudioTrack" c:type="GESAudioTrack*"/> + </return-value> + </constructor> + <field name="parent_instance"> + <type name="Track" c:type="GESTrack"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioTrackPrivate" c:type="GESAudioTrackPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioTrackClass" c:type="GESAudioTrackClass" glib:is-gtype-struct-for="AudioTrack"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-track.h"/> + <field name="parent_class"> + <type name="TrackClass" c:type="GESTrackClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioTrackPrivate" c:type="GESAudioTrackPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-track.h"/> + </record> + <class name="AudioTransition" c:symbol-prefix="audio_transition" c:type="GESAudioTransition" parent="Transition" glib:type-name="GESAudioTransition" glib:get-type="ges_audio_transition_get_type" glib:type-struct="AudioTransitionClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-transition.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_audio_transition_new" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-transition.c">Creates a new #GESAudioTransition.</doc> + <doc-deprecated xml:space="preserve">This should never be called by applications as this will +be created by clips.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-transition.c">The newly created #GESAudioTransition.</doc> + <type name="AudioTransition" c:type="GESAudioTransition*"/> + </return-value> + </constructor> + <field name="parent"> + <type name="Transition" c:type="GESTransition"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioTransitionPrivate" c:type="GESAudioTransitionPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioTransitionClass" c:type="GESAudioTransitionClass" glib:is-gtype-struct-for="AudioTransition"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-transition.h"/> + <field name="parent_class"> + <type name="TransitionClass" c:type="GESTransitionClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioTransitionPrivate" c:type="GESAudioTransitionPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-transition.h"/> + </record> + <class name="AudioUriSource" c:symbol-prefix="audio_uri_source" c:type="GESAudioUriSource" parent="AudioSource" glib:type-name="GESAudioUriSource" glib:get-type="ges_audio_uri_source_get_type" glib:type-struct="AudioUriSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.h">### Children Properties + + {{ libs/GESVideoUriSource-children-props.md }}</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.c">The location of the file/resource to use.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="AudioSource" c:type="GESAudioSource"/> + </field> + <field name="uri" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriSource" c:type="GESUriSource*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioUriSourceClass" c:type="GESAudioUriSourceClass" glib:is-gtype-struct-for="AudioUriSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="AudioSourceClass" c:type="GESAudioSourceClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioUriSourcePrivate" c:type="GESAudioUriSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.h"/> + </record> + <class name="BaseEffect" c:symbol-prefix="base_effect" c:type="GESBaseEffect" parent="Operation" abstract="1" glib:type-name="GESBaseEffect" glib:get-type="ges_base_effect_get_type" glib:type-struct="BaseEffectClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">A #GESBaseEffect is some operation that applies an effect to the data +it receives. + +## Time Effects + +Some operations will change the timing of the stream data they receive +in some way. In particular, the #GstElement that they wrap could alter +the times of the segment they receive in a #GST_EVENT_SEGMENT event, +or the times of a seek they receive in a #GST_EVENT_SEEK event. Such +operations would be considered time effects since they translate the +times they receive on their source to different times at their sink, +and vis versa. This introduces two sets of time coordinates for the +event: (internal) sink coordinates and (internal) source coordinates, +where segment times are translated from the sink coordinates to the +source coordinates, and seek times are translated from the source +coordinates to the sink coordinates. + +If you use such an effect in GES, you will need to inform GES of the +properties that control the timing with +ges_base_effect_register_time_property(), and the effect's timing +behaviour using ges_base_effect_set_time_translation_funcs(). + +Note that a time effect should not have its +#GESTrackElement:has-internal-source set to %TRUE. + +In addition, note that GES only *fully* supports time effects whose +mapping from the source to sink coordinates (those applied to seeks) +obeys: + ++ Maps the time `0` to `0`. So initial time-shifting effects are + excluded. ++ Is monotonically increasing. So reversing effects, and effects that + jump backwards in the stream are excluded. ++ Can handle a reasonable #GstClockTime, relative to the project. So + this would exclude a time effect with an extremely large speed-up + that would cause the converted #GstClockTime seeks to overflow. ++ Is 'continuously reversible'. This essentially means that for every + time in the sink coordinates, we can, to 'good enough' accuracy, + calculate the corresponding time in the source coordinates. Moreover, + this should correspond to how segment times are translated from + sink to source. ++ Only depends on the registered time properties, rather than the + state of the #GstElement or the data it receives. This would exclude, + say, an effect that would speedup if there is more red in the image + it receives. + +Note that a constant-rate-change effect that is not extremely fast or +slow would satisfy these conditions. For such effects, you may wish to +use ges_effect_class_register_rate_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="is_time_effect" c:identifier="ges_base_effect_is_time_effect" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Get whether the effect is considered a time effect or not. An effect +with registered time properties or set translation functions is +considered a time effect.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">%TRUE if @effect is considered a time effect.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">A #GESBaseEffect</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </instance-parameter> + </parameters> + </method> + <method name="register_time_property" c:identifier="ges_base_effect_register_time_property" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Register a child property of the effect as a property that, when set, +can change the timing of its input data. The child property should be +specified as in ges_timeline_element_lookup_child(). + +You should also set the corresponding time translation using +ges_base_effect_set_time_translation_funcs(). + +Note that @effect must not be part of a clip, nor can it have +#GESTrackElement:has-internal-source set to %TRUE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">%TRUE if the child property was found and newly registered.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">A #GESBaseEffect</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </instance-parameter> + <parameter name="child_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">The name of the child property to register as +a time property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_time_translation_funcs" c:identifier="ges_base_effect_set_time_translation_funcs" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Set the time translation query functions for the time effect. If an +effect is a time effect, it will have two sets of coordinates: one +at its sink and one at its source. The given functions should be able +to translate between these two sets of coordinates. More specifically, +@source_to_sink_func should *emulate* how the corresponding #GstElement +would translate the #GstSegment @time field, and @sink_to_source_func +should emulate how the corresponding #GstElement would translate the +seek query @start and @stop values, as used in gst_element_seek(). As +such, @sink_to_source_func should act as an approximate reverse of +@source_to_sink_func. + +Note, these functions will be passed a table of time properties, as +registered in ges_base_effect_register_time_property(), and their +values. The functions should emulate what the translation *would* be +*if* the time properties were set to the given values. They should not +use the currently set values. + +Note that @effect must not be part of a clip, nor can it have +#GESTrackElement:has-internal-source set to %TRUE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">%TRUE if the translation functions were set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">A #GESBaseEffect</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </instance-parameter> + <parameter name="source_to_sink_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">The function to use +for querying how a time is translated from the source coordinates to +the sink coordinates of @effect</doc> + <type name="BaseEffectTimeTranslationFunc" c:type="GESBaseEffectTimeTranslationFunc"/> + </parameter> + <parameter name="sink_to_source_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="2" destroy="3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">The function to use +for querying how a time is translated from the sink coordinates to the +source coordinates of @effect</doc> + <type name="BaseEffectTimeTranslationFunc" c:type="GESBaseEffectTimeTranslationFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" scope="notified"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Data to pass to both @source_to_sink_func and +@sink_to_source_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Method to call to destroy +@user_data, or %NULL</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="Operation" c:type="GESOperation"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseEffectPrivate" c:type="GESBaseEffectPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseEffectClass" c:type="GESBaseEffectClass" glib:is-gtype-struct-for="BaseEffect"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <field name="parent_class" readable="0" private="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">parent class</doc> + <type name="OperationClass" c:type="GESOperationClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="BaseEffectClip" c:symbol-prefix="base_effect_clip" c:type="GESBaseEffectClip" parent="OperationClip" abstract="1" glib:type-name="GESBaseEffectClip" glib:get-type="ges_base_effect_clip_get_type" glib:type-struct="BaseEffectClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect-clip.c">#GESBaseEffectClip-s are clips whose core elements are +#GESBaseEffect-s. + +## Effects + +#GESBaseEffectClip-s can have **additional** #GESBaseEffect-s added as +non-core elements. These additional effects are applied to the output +of the core effects of the clip that they share a #GESTrack with. See +#GESClip for how to add and move these effects from the clip. + +Note that you cannot add time effects to #GESBaseEffectClip, neither +as core children, nor as additional effects.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="OperationClip" c:type="GESOperationClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseEffectClipPrivate" c:type="GESBaseEffectClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseEffectClipClass" c:type="GESBaseEffectClipClass" glib:is-gtype-struct-for="BaseEffectClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="OperationClipClass" c:type="GESOperationClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BaseEffectClipPrivate" c:type="GESBaseEffectClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect-clip.h"/> + </record> + <record name="BaseEffectPrivate" c:type="GESBaseEffectPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + </record> + <callback name="BaseEffectTimeTranslationFunc" c:type="GESBaseEffectTimeTranslationFunc" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">A function for querying how an effect would translate a time if it had +the given child property values set. The keys for @time_properties will +be the same string that was passed to +ges_base_effect_register_time_property(), the values will be #GValue* +values of the corresponding child properties. You should always use the +values given in @time_properties before using the currently set values.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">The translated time.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">The #GESBaseEffect that is doing the time translation</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">The #GstClockTime to translation</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="time_property_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">A table of child +property name/value pairs</doc> + <type name="GLib.HashTable" c:type="GHashTable*"> + <type name="utf8"/> + <type name="GObject.Value"/> + </type> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">Data passed to ges_base_effect_set_time_translation_funcs()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="BaseTransitionClip" c:symbol-prefix="base_transition_clip" c:type="GESBaseTransitionClip" parent="OperationClip" abstract="1" glib:type-name="GESBaseTransitionClip" glib:get-type="ges_base_transition_clip_get_type" glib:type-struct="BaseTransitionClipClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-transition-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="OperationClip" c:type="GESOperationClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseTransitionClipPrivate" c:type="GESBaseTransitionClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseTransitionClipClass" c:type="GESBaseTransitionClipClass" glib:is-gtype-struct-for="BaseTransitionClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-transition-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="OperationClipClass" c:type="GESOperationClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BaseTransitionClipPrivate" c:type="GESBaseTransitionClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-transition-clip.h"/> + </record> + <class name="BaseXmlFormatter" c:symbol-prefix="base_xml_formatter" c:type="GESBaseXmlFormatter" parent="Formatter" abstract="1" glib:type-name="GESBaseXmlFormatter" glib:get-type="ges_base_xml_formatter_get_type" glib:type-struct="BaseXmlFormatterClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-xml-formatter.h"/> + <implements name="Extractable"/> + <field name="parent"> + <type name="Formatter" c:type="GESFormatter"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseXmlFormatterPrivate" c:type="GESBaseXmlFormatterPrivate*"/> + </field> + <field name="xmlcontent" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseXmlFormatterClass" c:type="GESBaseXmlFormatterClass" glib:is-gtype-struct-for="BaseXmlFormatter"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-xml-formatter.h"/> + <field name="parent"> + <type name="FormatterClass" c:type="GESFormatterClass"/> + </field> + <field name="content_parser"> + <type name="GLib.MarkupParser" c:type="GMarkupParser"/> + </field> + <field name="save"> + <callback name="save" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-xml-formatter.h"/> + <return-value transfer-ownership="full"> + <type name="GLib.String" c:type="GString*"/> + </return-value> + <parameters> + <parameter name="formatter" transfer-ownership="none"> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BaseXmlFormatterPrivate" c:type="GESBaseXmlFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-xml-formatter.h"/> + </record> + <function-macro name="CLIP_CLASS_CAN_ADD_EFFECTS" c:identifier="GES_CLIP_CLASS_CAN_ADD_EFFECTS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">Whether the class allows for the user to add additional non-core +#GESBaseEffect-s to clips from this class.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <parameters> + <parameter name="klass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClipClass</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTAINER_CHILDREN" c:identifier="GES_CONTAINER_CHILDREN" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">The #GList containing the children of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">a #GESContainer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTAINER_HEIGHT" c:identifier="GES_CONTAINER_HEIGHT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">The #GESContainer:height of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">a #GESContainer</doc> + </parameter> + </parameters> + </function-macro> + <enumeration name="ChildrenControlMode" c:type="GESChildrenControlMode"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">To be used by subclasses only. This indicate how to handle a change in +a child.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <member name="update" value="0" c:identifier="GES_CHILDREN_UPDATE"> + </member> + <member name="ignore_notifies" value="1" c:identifier="GES_CHILDREN_IGNORE_NOTIFIES"> + </member> + <member name="update_offsets" value="2" c:identifier="GES_CHILDREN_UPDATE_OFFSETS"> + </member> + <member name="update_all_values" value="3" c:identifier="GES_CHILDREN_UPDATE_ALL_VALUES"> + </member> + <member name="last" value="4" c:identifier="GES_CHILDREN_LAST"> + </member> + </enumeration> + <class name="Clip" c:symbol-prefix="clip" c:type="GESClip" parent="Container" abstract="1" glib:type-name="GESClip" glib:get-type="ges_clip_get_type" glib:type-struct="ClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">#GESClip-s are the core objects of a #GESLayer. Each clip may exist in +a single layer but may control several #GESTrackElement-s that span +several #GESTrack-s. A clip will ensure that all its children share the +same #GESTimelineElement:start and #GESTimelineElement:duration in +their tracks, which will match the #GESTimelineElement:start and +#GESTimelineElement:duration of the clip itself. Therefore, changing +the timing of the clip will change the timing of the children, and a +change in the timing of a child will change the timing of the clip and +subsequently all its siblings. As such, a clip can be treated as a +singular object in its layer. + +For most uses of a #GESTimeline, it is often sufficient to only +interact with #GESClip-s directly, which will take care of creating and +organising the elements of the timeline's tracks. + +## Core Children + +In more detail, clips will usually have some *core* #GESTrackElement +children, which are created by the clip when it is added to a layer in +a timeline. The type and form of these core children will depend on the +clip's subclass. You can use ges_track_element_is_core() to determine +whether a track element is considered such a core track element. Note, +if a core track element is part of a clip, it will always be treated as +a core *child* of the clip. You can connect to the +#GESContainer::child-added signal to be notified of their creation. + +When a child is added to a clip, the timeline will select its tracks +using #GESTimeline::select-tracks-for-object. Note that it may be the +case that the child will still have no set #GESTrackElement:track +after this process. For example, if the timeline does not have a track +of the corresponding #GESTrack:track-type. A clip can safely contain +such children, which may have their track set later, although they will +play no functioning role in the timeline in the meantime. + +If a clip may create track elements with various +#GESTrackElement:track-type(s), such as a #GESUriClip, but you only +want it to create a subset of these types, you should set the +#GESClip:supported-formats of the clip to the subset of types. This +should be done *before* adding the clip to a layer. + +If a clip will produce several core elements of the same +#GESTrackElement:track-type, you should connect to the timeline's +#GESTimeline::select-tracks-for-object signal to coordinate which +tracks each element should land in. Note, no two core children within a +clip can share the same #GESTrack, so you should not select the same +track for two separate core children. Provided you stick to this rule, +it is still safe to select several tracks for the same core child, the +core child will be copied into the additional tracks. You can manually +add the child to more tracks later using ges_clip_add_child_to_track(). +If you do not wish to use a core child, you can always select no track. + +The #GESTimelineElement:in-point of the clip will control the +#GESTimelineElement:in-point of its core children to be the same +value if their #GESTrackElement:has-internal-source is set to %TRUE. + +The #GESTimelineElement:max-duration of the clip is the minimum +#GESTimelineElement:max-duration of its core children. If you set its +value to anything other than its current value, this will also set the +#GESTimelineElement:max-duration of all its core children to the same +value if their #GESTrackElement:has-internal-source is set to %TRUE. +As a special case, whilst a clip does not yet have any core children, +its #GESTimelineElement:max-duration may be set to indicate what its +value will be once they are created. + +## Effects + +Some subclasses (#GESSourceClip and #GESBaseEffectClip) may also allow +their objects to have additional non-core #GESBaseEffect-s elements as +children. These are additional effects that are applied to the output +data of the core elements. They can be added to the clip using +ges_clip_add_top_effect(), which will take care of adding the effect to +the timeline's tracks. The new effect will be placed between the clip's +core track elements and its other effects. As such, the newly added +effect will be applied to any source data **before** the other existing +effects. You can change the ordering of effects using +ges_clip_set_top_effect_index(). + +Tracks are selected for top effects in the same way as core children. +If you add a top effect to a clip before it is part of a timeline, and +later add the clip to a timeline, the track selection for the top +effects will occur just after the track selection for the core +children. If you add a top effect to a clip that is already part of a +timeline, the track selection will occur immediately. Since a top +effect must be applied on top of a core child, if you use +#GESTimeline::select-tracks-for-object, you should ensure that the +added effects are destined for a #GESTrack that already contains a core +child. + +In addition, if the core child in the track is not +#GESTrackElement:active, then neither can any of its effects be +#GESTrackElement:active. Therefore, if a core child is made in-active, +all of the additional effects in the same track will also become +in-active. Similarly, if an effect is set to be active, then the core +child will also become active, but other effects will be left alone. +Finally, if an active effect is added to the track of an in-active core +child, it will become in-active as well. Note, in contrast, setting a +core child to be active, or an effect to be in-active will *not* change +the other children in the same track. + +### Time Effects + +Some effects also change the timing of their data (see #GESBaseEffect +for what counts as a time effect). Note that a #GESBaseEffectClip will +refuse time effects, but a #GESSource will allow them. + +When added to a clip, time effects may adjust the timing of other +children in the same track. Similarly, when changing the order of +effects, making them (in)-active, setting their time property values +or removing time effects. These can cause the #GESClip:duration-limit +to change in value. However, if such an operation would ever cause the +#GESTimelineElement:duration to shrink such that a clip's #GESSource is +totally overlapped in the timeline, the operation would be prevented. +Note that the same can happen when adding non-time effects with a +finite #GESTimelineElement:max-duration. + +Therefore, when working with time effects, you should -- more so than +usual -- not assume that setting the properties of the clip's children +will succeed. In particular, you should use +ges_timeline_element_set_child_property_full() when setting the time +properties. + +If you wish to preserve the *internal* duration of a source in a clip +during these time effect operations, you can do something like the +following. + +```c +void +do_time_effect_change (GESClip * clip) +{ + GList *tmp, *children; + GESTrackElement *source; + GstClockTime source_outpoint; + GstClockTime new_end; + GError *error = NULL; + + // choose some active source in a track to preserve the internal + // duration of + source = ges_clip_get_track_element (clip, NULL, GES_TYPE_SOURCE); + + // note its current internal end time + source_outpoint = ges_clip_get_internal_time_from_timeline_time ( + clip, source, GES_TIMELINE_ELEMENT_END (clip), NULL); + + // handle invalid out-point + + // stop the children's control sources from clamping when their + // out-point changes with a change in the time effects + children = ges_container_get_children (GES_CONTAINER (clip), FALSE); + + for (tmp = children; tmp; tmp = tmp->next) + ges_track_element_set_auto_clamp_control_source (tmp->data, FALSE); + + // add time effect, or set their children properties, or move them around + ... + // user can make sure that if a time effect changes one source, we should + // also change the time effect for another source. E.g. if + // "GstVideorate::rate" is set to 2.0, we also set "GstPitch::rate" to + // 2.0 + + // Note the duration of the clip may have already changed if the + // duration-limit of the clip dropped below its current value + + new_end = ges_clip_get_timeline_time_from_internal_time ( + clip, source, source_outpoint, &error); + // handle error + + if (!ges_timeline_elemnet_edit_full (GES_TIMELINE_ELEMENT (clip), + -1, GES_EDIT_MODE_TRIM, GES_EDGE_END, new_end, &error)) + // handle error + + for (tmp = children; tmp; tmp = tmp->next) + ges_track_element_set_auto_clamp_control_source (tmp->data, TRUE); + + g_list_free_full (children, gst_object_unref); + gst_object_unref (source); +} +```</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <virtual-method name="create_track_element"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The #GESTrackElement created +by @clip, or %NULL if @clip can not provide a track element for the +given @type or an error occurred.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESTrackType to create a #GESTrackElement for</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create_track_elements"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A list of +the #GESTrackElement-s created by @clip for the given @type, or %NULL +if no track elements are created or an error occurred.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESTrackType to create #GESTrackElement-s for</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_asset" c:identifier="ges_clip_add_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Extracts a #GESTrackElement from an asset and adds it to the clip. +This can be used to add effects that derive from the asset to the +clip, but this method is not intended to be used to create the core +elements of the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The newly created element, or +%NULL if an error occurred.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An asset with #GES_TYPE_TRACK_ELEMENT as its +#GESAsset:extractable-type</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <method name="add_child_to_track" c:identifier="ges_clip_add_child_to_track" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Adds the track element child of the clip to a specific track. + +If the given child is already in another track, this will create a copy +of the child, add it to the clip, and add this copy to the track. + +You should only call this whilst a clip is part of a #GESTimeline, and +for tracks that are in the same timeline. + +This method is an alternative to using the +#GESTimeline::select-tracks-for-object signal, but can be used to +complement it when, say, you wish to copy a clip's children from one +track into a new one. + +When the child is a core child, it must be added to a track that does +not already contain another core child of the same clip. If it is not a +core child (an additional effect), then it must be added to a track +that already contains one of the core children of the same clip. + +This method can also fail if the adding the track element to the track +would break a configuration rule of the corresponding #GESTimeline, +such as causing three sources to overlap at a single time, or causing +a source to completely overlap another in the same track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The element that was added to @track, either +@child or a copy of child, or %NULL if the element could not be added.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A child of @clip</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The track to add @child to</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="add_top_effect" c:identifier="ges_clip_add_top_effect" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Add a top effect to a clip at the given index. + +Unlike using ges_container_add(), this allows you to set the index +in advance. It will also check that no error occurred during the track +selection for the effect. + +Note, only subclasses of #GESClipClass that have +#GES_CLIP_CLASS_CAN_ADD_EFFECTS set to %TRUE (such as #GESSourceClip +and #GESBaseEffectClip) can have additional top effects added. + +Note, if the effect is a time effect, this may be refused if the clip +would not be able to adapt itself once the effect is added.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @effect was successfully added to @clip at @index.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A top effect to add</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The index to add @effect at, or -1 to add at the highest</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="find_track_element" c:identifier="ges_clip_find_track_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Finds an element controlled by the clip. If @track is given, +then only the track elements in @track are searched for. If @type is +given, then this function searches for a track element of the given +@type. + +Note, if multiple track elements in the clip match the given criteria, +this will return the element amongst them with the highest +#GESTimelineElement:priority (numerically, the smallest). See +ges_clip_find_track_elements() if you wish to find all such elements.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The element controlled by +@clip, in @track, and of the given @type, or %NULL if no such element +could be found.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The track to search in, or %NULL to search in +all tracks</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The type of track element to search for, or `G_TYPE_NONE` to +match any type</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="find_track_elements" c:identifier="ges_clip_find_track_elements"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Finds the #GESTrackElement-s controlled by the clip that match the +given criteria. If @track is given as %NULL and @track_type is given as +#GES_TRACK_TYPE_UNKNOWN, then the search will match all elements in any +track, including those with no track, and of any +#GESTrackElement:track-type. Otherwise, if @track is not %NULL, but +@track_type is #GES_TRACK_TYPE_UNKNOWN, then only the track elements in +@track are searched for. Otherwise, if @track_type is not +#GES_TRACK_TYPE_UNKNOWN, but @track is %NULL, then only the track +elements whose #GESTrackElement:track-type matches @track_type are +searched for. Otherwise, when both are given, the track elements that +match **either** criteria are searched for. Therefore, if you wish to +only find elements in a specific track, you should give the track as +@track, but you should not give the track's #GESTrack:track-type as +@track_type because this would also select elements from other tracks +of the same type. + +You may also give @type to _further_ restrict the search to track +elements of the given @type.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A list of all +the #GESTrackElement-s controlled by @clip, in @track or of the given +@track_type, and of the given @type.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The track to search in, or %NULL to search in +all tracks</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + <parameter name="track_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The track-type of the track element to search for, or +#GES_TRACK_TYPE_UNKNOWN to match any track type</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The type of track element to search for, or %G_TYPE_NONE to +match any type</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_duration_limit" c:identifier="ges_clip_get_duration_limit" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the #GESClip:duration-limit of the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The duration-limit of @clip.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_internal_time_from_timeline_time" c:identifier="ges_clip_get_internal_time_from_timeline_time" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Convert the timeline time to an internal source time of the child. +This will take any time effects placed on the clip into account (see +#GESBaseEffect for what time effects are supported, and how to +declare them in GES). + +When @timeline_time is above the #GESTimelineElement:start of @clip, +this will return the internal time at which the content that appears at +@timeline_time in the output of the timeline is created in @child. For +example, if @timeline_time corresponds to the current seek position, +this would let you know which part of a media file is being read. + +This will be done assuming the clip has an indefinite end, so the +internal time may be beyond the current out-point of the child, or even +its #GESTimelineElement:max-duration. + +If, instead, @timeline_time is below the current +#GESTimelineElement:start of @clip, this will return what you would +need to set the #GESTimelineElement:in-point of @child to if you set +the #GESTimelineElement:start of @clip to @timeline_time and wanted +to keep the content of @child currently found at the current +#GESTimelineElement:start of @clip at the same timeline position. If +this would be negative, the conversion fails. This is useful for +determining what #GESTimelineElement:in-point would result from a +#GES_EDIT_MODE_TRIM to @timeline_time. + +Note that whilst a clip has no time effects, this second return is +equivalent to finding the internal time at which the content that +appears at @timeline_time in the timeline can be found in @child if it +had indefinite extent in both directions. However, with non-linear time +effects this second return will be more distinct. + +In either case, the returned time would be appropriate to use for the +#GESTimelineElement:in-point or #GESTimelineElement:max-duration of the +child. + +See ges_clip_get_timeline_time_from_internal_time(), which performs the +reverse.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The time in the internal coordinates of @child corresponding +to @timeline_time, or #GST_CLOCK_TIME_NONE if the conversion could not +be performed.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An #GESTrackElement:active child of @clip with a +#GESTrackElement:track</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="timeline_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A time in the timeline time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_layer" c:identifier="ges_clip_get_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the #GESClip:layer of the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The layer @clip is in, or %NULL if +@clip is not in any layer.</doc> + <type name="Layer" c:type="GESLayer*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_supported_formats" c:identifier="ges_clip_get_supported_formats"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the #GESClip:supported-formats of the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESTrackType-s supported by @clip.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timeline_time_from_internal_time" c:identifier="ges_clip_get_timeline_time_from_internal_time" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Convert the internal source time from the child to a timeline time. +This will take any time effects placed on the clip into account (see +#GESBaseEffect for what time effects are supported, and how to +declare them in GES). + +When @internal_time is above the #GESTimelineElement:in-point of +@child, this will return the timeline time at which the internal +content found at @internal_time appears in the output of the timeline's +track. For example, this would let you know where in the timeline a +particular scene in a media file would appear. + +This will be done assuming the clip has an indefinite end, so the +timeline time may be beyond the end of the clip, or even breaking its +#GESClip:duration-limit. + +If, instead, @internal_time is below the current +#GESTimelineElement:in-point of @child, this will return what you would +need to set the #GESTimelineElement:start of @clip to if you set the +#GESTimelineElement:in-point of @child to @internal_time and wanted to +keep the content of @child currently found at the current +#GESTimelineElement:start of @clip at the same timeline position. If +this would be negative, the conversion fails. This is useful for +determining what position to use in a #GES_EDIT_MODE_TRIM if you wish +to trim to a specific point in the internal content, such as a +particular scene in a media file. + +Note that whilst a clip has no time effects, this second return is +equivalent to finding the timeline time at which the content of @child +at @internal_time would be found in the timeline if it had indefinite +extent in both directions. However, with non-linear time effects this +second return will be more distinct. + +In either case, the returned time would be appropriate to use in +ges_timeline_element_edit() for #GES_EDIT_MODE_TRIM, and similar, if +you wish to use a particular internal point as a reference. For +example, you could choose to end a clip at a certain internal +'out-point', similar to the #GESTimelineElement:in-point, by +translating the desired end time into the timeline coordinates, and +using this position to trim the end of a clip. + +See ges_clip_get_internal_time_from_timeline_time(), which performs the +reverse, or ges_clip_get_timeline_time_from_source_frame() which does +the same conversion, but using frame numbers.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The time in the timeline coordinates corresponding to +@internal_time, or #GST_CLOCK_TIME_NONE if the conversion could not be +performed.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An #GESTrackElement:active child of @clip with a +#GESTrackElement:track</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="internal_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A time in the internal time coordinates of @child</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_timeline_time_from_source_frame" c:identifier="ges_clip_get_timeline_time_from_source_frame" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Convert the source frame number to a timeline time. This acts the same +as ges_clip_get_timeline_time_from_internal_time() using the core +children of the clip and using the frame number to specify the internal +position, rather than a timestamp. + +The returned timeline time can be used to seek or edit to a specific +frame. + +Note that you can get the frame timestamp of a particular clip asset +with ges_clip_asset_get_frame_time().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The timestamp corresponding to @frame_number in the core +children of @clip, in the timeline coordinates, or #GST_CLOCK_TIME_NONE +if the conversion could not be performed.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="frame_number" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The frame number to get the corresponding timestamp of +in the timeline coordinates</doc> + <type name="FrameNumber" c:type="GESFrameNumber"/> + </parameter> + </parameters> + </method> + <method name="get_top_effect_index" c:identifier="ges_clip_get_top_effect_index"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the internal index of an effect in the clip. The index of effects +in a clip will run from 0 to n-1, where n is the total number of +effects. If two effects share the same #GESTrackElement:track, the +effect with the numerically lower index will be applied to the source +data **after** the other effect, i.e. output data will always flow from +a higher index effect to a lower index effect.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The index of @effect in @clip, or -1 if something went wrong.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The effect we want to get the index of</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + </parameters> + </method> + <method name="get_top_effect_position" c:identifier="ges_clip_get_top_effect_position"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + </parameters> + </method> + <method name="get_top_effects" c:identifier="ges_clip_get_top_effects"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the #GESBaseEffect-s that have been added to the clip. The +returned list is ordered by their internal index in the clip. See +ges_clip_get_top_effect_index().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A list of all +#GESBaseEffect-s that have been added to @clip.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="move_to_layer" c:identifier="ges_clip_move_to_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">See ges_clip_move_to_layer_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @clip was successfully moved to @layer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The new layer</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </method> + <method name="move_to_layer_full" c:identifier="ges_clip_move_to_layer_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Moves a clip to a new layer. If the clip already exists in a layer, it +is first removed from its current layer before being added to the new +layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @clip was successfully moved to @layer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The new layer</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </method> + <method name="remove_top_effect" c:identifier="ges_clip_remove_top_effect" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Remove a top effect from the clip. + +Note, if the effect is a time effect, this may be refused if the clip +would not be able to adapt itself once the effect is removed.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @effect was successfully added to @clip at @index.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The top effect to remove</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + </parameters> + </method> + <method name="set_supported_formats" c:identifier="ges_clip_set_supported_formats"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Sets the #GESClip:supported-formats of the clip. This should normally +only be called by subclasses, which should be responsible for updating +its value, rather than the user.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="supportedformats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESTrackType-s supported by @clip</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <method name="set_top_effect_index" c:identifier="ges_clip_set_top_effect_index"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">See ges_clip_set_top_effect_index_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @effect was successfully moved to @newindex.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An effect within @clip to move</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="newindex" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The index for @effect in @clip</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_top_effect_index_full" c:identifier="ges_clip_set_top_effect_index_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Set the index of an effect within the clip. See +ges_clip_get_top_effect_index(). The new index must be an existing +index of the clip. The effect is moved to the new index, and the other +effects may be shifted in index accordingly to otherwise maintain the +ordering.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @effect was successfully moved to @newindex.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An effect within @clip to move</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="newindex" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The index for @effect in @clip</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_top_effect_priority" c:identifier="ges_clip_set_top_effect_priority"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="newpriority" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="split" c:identifier="ges_clip_split"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">See ges_clip_split_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The newly created clip resulting +from the splitting @clip, or %NULL if @clip can't be split.</doc> + <type name="Clip" c:type="GESClip*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESClip to split</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The timeline position at which to perform the split</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="split_full" c:identifier="ges_clip_split_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Splits a clip at the given timeline position into two clips. The clip +must already have a #GESClip:layer. + +The original clip's #GESTimelineElement:duration is reduced such that +its end point matches the split position. Then a new clip is created in +the same layer, whose #GESTimelineElement:start matches the split +position and #GESTimelineElement:duration will be set such that its end +point matches the old end point of the original clip. Thus, the two +clips together will occupy the same positions in the timeline as the +original clip did. + +The children of the new clip will be new copies of the original clip's +children, so it will share the same sources and use the same +operations. + +The new clip will also have its #GESTimelineElement:in-point set so +that any internal data will appear in the timeline at the same time. +Thus, when the timeline is played, the playback of data should +appear the same. This may be complicated by any additional +#GESEffect-s that have been placed on the original clip that depend on +the playback time or change the data consumption rate of sources. This +method will attempt to translate these effects such that the playback +appears the same. In such complex situations, you may get a better +result if you place the clip in a separate sub #GESProject, which only +contains this clip (and its effects), and in the original layer +create two neighbouring #GESUriClip-s that reference this sub-project, +but at a different #GESTimelineElement:in-point.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The newly created clip resulting +from the splitting @clip, or %NULL if @clip can't be split.</doc> + <type name="Clip" c:type="GESClip*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESClip to split</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The timeline position at which to perform the split, between +the start and end of the clip</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <property name="duration-limit" version="1.18" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The maximum #GESTimelineElement:duration that can be *currently* set +for the clip, taking into account the #GESTimelineElement:in-point, +#GESTimelineElement:max-duration, #GESTrackElement:active, and +#GESTrackElement:track properties of its children, as well as any +time effects. If there is no limit, this will be set to +#GST_CLOCK_TIME_NONE. + +Note that whilst a clip has no children in any tracks, the limit will +be unknown, and similarly set to #GST_CLOCK_TIME_NONE. + +If the duration-limit would ever go below the current +#GESTimelineElement:duration of the clip due to a change in the above +variables, its #GESTimelineElement:duration will be set to the new +limit.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The layer this clip lies in. + +If you want to connect to this property's #GObject::notify signal, +you should connect to it with g_signal_connect_after() since the +signal emission may be stopped internally.</doc> + <type name="Layer"/> + </property> + <property name="supported-formats" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESTrackType-s that the clip supports, which it can create +#GESTrackElement-s for. Note that this can be a combination of +#GESTrackType flags to indicate support for several +#GESTrackElement:track-type elements.</doc> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="Container" c:type="GESContainer"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ClipPrivate" c:type="GESClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <class name="ClipAsset" c:symbol-prefix="clip_asset" c:type="GESClipAsset" parent="Asset" glib:type-name="GESClipAsset" glib:get-type="ges_clip_asset_get_type" glib:type-struct="ClipAssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The #GESUriClipAsset is a special #GESAsset specilized in #GESClip. +it is mostly used to get information about the #GESTrackType-s the objects extracted +from it can potentialy create #GESTrackElement for.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <virtual-method name="get_natural_framerate" invoker="get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Result: %TRUE if @self has a natural framerate %FALSE otherwise</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h">%TRUE if @self has a natural framerate @FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The object from which to retrieve the natural framerate</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_frame_time" c:identifier="ges_clip_asset_get_frame_time" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Converts the given frame number into a timestamp, using the "natural" frame +rate of the asset. + +You can use this to reference a specific frame in a media file and use this +as, for example, the `in-point` or `max-duration` of a #GESClip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The timestamp corresponding to @frame_number in the element source, given +in internal time coordinates, or #GST_CLOCK_TIME_NONE if the clip asset does not have a +natural frame rate.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The object for which to compute timestamp for specifed frame</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + <parameter name="frame_number" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The frame number we want the internal time coordinate timestamp of</doc> + <type name="FrameNumber" c:type="GESFrameNumber"/> + </parameter> + </parameters> + </method> + <method name="get_natural_framerate" c:identifier="ges_clip_asset_get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Result: %TRUE if @self has a natural framerate %FALSE otherwise</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The object from which to retrieve the natural framerate</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_supported_formats" c:identifier="ges_clip_asset_get_supported_formats"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Gets track types for which objects extracted from @self can create #GESTrackElement</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The track types on which @self will create TrackElement when added to +a layer</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">a #GESClipAsset</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_supported_formats" c:identifier="ges_clip_asset_set_supported_formats"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Sets track types for which objects extracted from @self can create #GESTrackElement</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">a #GESClipAsset</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + <parameter name="supportedformats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The track types supported by the GESClipAsset</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <property name="supported-formats" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The formats supported by the asset.</doc> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="Asset" c:type="GESAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ClipAssetPrivate" c:type="GESClipAssetPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="ClipAssetClass" c:type="GESClipAssetClass" glib:is-gtype-struct-for="ClipAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <field name="parent"> + <type name="AssetClass" c:type="GESAssetClass"/> + </field> + <field name="get_natural_framerate"> + <callback name="get_natural_framerate"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h">%TRUE if @self has a natural framerate @FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The object from which to retrieve the natural framerate</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ClipAssetPrivate" c:type="GESClipAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + </record> + <record name="ClipClass" c:type="GESClipClass" glib:is-gtype-struct-for="Clip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="ContainerClass" c:type="GESContainerClass"/> + </field> + <field name="create_track_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">Method to create the core #GESTrackElement of a clip +of this class. If a clip of this class may create several track elements per +track type, this should be left as %NULL, and +GESClipClass::create_track_elements should be used instead. Otherwise, you +should implement this class method and leave +GESClipClass::create_track_elements as the default implementation</doc> + <type name="CreateTrackElementFunc" c:type="GESCreateTrackElementFunc"/> + </field> + <field name="create_track_elements"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">Method to create the (multiple) core +#GESTrackElement-s of a clip of this class. If +GESClipClass::create_track_element is implemented, this should be kept as the +default implementation</doc> + <type name="CreateTrackElementsFunc" c:type="GESCreateTrackElementsFunc"/> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <field name="_ges_reserved" writable="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <field name="can_add_effects" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + </record> + </union> + </record> + <record name="ClipPrivate" c:type="GESClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + </record> + <class name="CommandLineFormatter" c:symbol-prefix="command_line_formatter" c:type="GESCommandLineFormatter" parent="Formatter" glib:type-name="GESCommandLineFormatter" glib:get-type="ges_command_line_formatter_get_type" glib:type-struct="CommandLineFormatterClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + <implements name="Extractable"/> + <function name="get_help" c:identifier="ges_command_line_formatter_get_help" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.c">Creates a help string based on @commands. + +Result: (transfer full): A help string.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="nargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.c">Number of commands in @commands</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="commands" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.c">Commands</doc> + <array length="0" zero-terminated="0" c:type="gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </function> + <function name="get_timeline_uri" c:identifier="ges_command_line_formatter_get_timeline_uri" version="1.10"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.c">A GESTimeline to serialize</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </function> + <field name="parent_instance"> + <type name="Formatter" c:type="GESFormatter"/> + </field> + <field name="priv"> + <type name="CommandLineFormatterPrivate" c:type="GESCommandLineFormatterPrivate*"/> + </field> + </class> + <record name="CommandLineFormatterClass" c:type="GESCommandLineFormatterClass" glib:is-gtype-struct-for="CommandLineFormatter"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + <field name="parent_class"> + <type name="FormatterClass" c:type="GESFormatterClass"/> + </field> + </record> + <record name="CommandLineFormatterPrivate" c:type="GESCommandLineFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + </record> + <class name="Container" c:symbol-prefix="container" c:type="GESContainer" parent="TimelineElement" abstract="1" glib:type-name="GESContainer" glib:get-type="ges_container_get_type" glib:type-struct="ContainerClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A #GESContainer is a timeline element that controls other +#GESTimelineElement-s, which are its children. In particular, it is +responsible for maintaining the relative #GESTimelineElement:start and +#GESTimelineElement:duration times of its children. Therefore, if a +container is temporally adjusted or moved to a new layer, it may +accordingly adjust and move its children. Similarly, a change in one of +its children may prompt the parent to correspondingly change its +siblings.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <function name="group" c:identifier="ges_container_group"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Groups the containers into a single container by merging them. The +containers must all belong to the same #GESTimelineElement:timeline. + +If the elements are all #GESClip-s then this method will attempt to +combine them all into a single #GESClip. This should succeed if they: +share the same #GESTimelineElement:start, #GESTimelineElement:duration +and #GESTimelineElement:in-point; exist in the same layer; and all of +the sources share the same #GESAsset. If this fails, or one of the +elements is not a #GESClip, this method will try to create a #GESGroup +instead.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The container created by merging +@containers, or %NULL if they could not be merged into a single +container.</doc> + <type name="Container" c:type="GESContainer*"/> + </return-value> + <parameters> + <parameter name="containers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c"> +The #GESContainer-s to group</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Container"/> + </type> + </parameter> + </parameters> + </function> + <virtual-method name="add_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="child_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="child_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="edit" invoker="edit" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Edits the container within its timeline.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_edit instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if the edit of @container completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The #GESContainer to edit</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The priority/index of the layer @container should +be moved to. -1 means no move</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edge of @container where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit position: a new location for the edge of @container +(in nanoseconds)</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="remove_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="ungroup" invoker="ungroup"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Ungroups the container by splitting it into several containers +containing various children of the original. The rules for how the +container splits depends on the subclass. A #GESGroup will simply split +into its children. A #GESClip will split into one #GESClip per +#GESTrackType it overlaps with (so an audio-video clip will split into +an audio clip and a video clip), where each clip contains all the +#GESTrackElement-s from the original clip with a matching +#GESTrackElement:track-type. + +If @recursive is %TRUE, and the container contains other containers as +children, then they will also be ungrouped, and so on.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The list of +new #GESContainer-s created from the splitting of @container.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Container"/> + </type> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The container to ungroup</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="recursive" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Whether to recursively ungroup @container</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <method name="add" c:identifier="ges_container_add"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Adds a timeline element to the container. The element will now be a +child of the container (and the container will be the +#GESTimelineElement:parent of the added element), which means that it +is now controlled by the container. This may change the properties of +the child or the container, depending on the subclass. + +Additionally, the children properties of the newly added element will +be shared with the container, meaning they can also be read and set +using ges_timeline_element_get_child_property() and +ges_timeline_element_set_child_property() on the container.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if @child was successfully added to @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A #GESContainer</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The element to add as a child</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </method> + <method name="edit" c:identifier="ges_container_edit" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Edits the container within its timeline.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_edit instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if the edit of @container completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The #GESContainer to edit</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The priority/index of the layer @container should +be moved to. -1 means no move</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edge of @container where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit position: a new location for the edge of @container +(in nanoseconds)</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="get_children" c:identifier="ges_container_get_children"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Get the list of timeline elements contained in the container. If +@recursive is %TRUE, and the container contains other containers as +children, then their children will be added to the list, in addition to +themselves, and so on.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The list of +#GESTimelineElement-s contained in @container.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TimelineElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A #GESContainer</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="recursive" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Whether to recursively get children in @container</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="remove" c:identifier="ges_container_remove"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Removes a timeline element from the container. The element will no +longer be controlled by the container.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if @child was successfully removed from @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A #GESContainer</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The child to remove</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </method> + <method name="ungroup" c:identifier="ges_container_ungroup"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Ungroups the container by splitting it into several containers +containing various children of the original. The rules for how the +container splits depends on the subclass. A #GESGroup will simply split +into its children. A #GESClip will split into one #GESClip per +#GESTrackType it overlaps with (so an audio-video clip will split into +an audio clip and a video clip), where each clip contains all the +#GESTrackElement-s from the original clip with a matching +#GESTrackElement:track-type. + +If @recursive is %TRUE, and the container contains other containers as +children, then they will also be ungrouped, and so on.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The list of +new #GESContainer-s created from the splitting of @container.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Container"/> + </type> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The container to ungroup</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="recursive" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Whether to recursively ungroup @container</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The span of the container's children's #GESTimelineElement:priority +values, which is the number of integers that lie between (inclusive) +the minimum and maximum priorities found amongst the container's +children (maximum - minimum + 1).</doc> + <type name="guint" c:type="guint"/> + </property> + <field name="parent"> + <type name="TimelineElement" c:type="GESTimelineElement"/> + </field> + <field name="children"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">The list of +#GESTimelineElement-s controlled by this Container</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TimelineElement"/> + </type> + </field> + <field name="height"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">The #GESContainer:height of @obj</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="children_control_mode"> + <type name="ChildrenControlMode" c:type="GESChildrenControlMode"/> + </field> + <field name="initiated_move"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ContainerPrivate" c:type="GESContainerPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="child-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Will be emitted after a child is added to the container. Usually, +you should connect with g_signal_connect_after() since the signal +may be stopped internally.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The child that was added</doc> + <type name="TimelineElement"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="child-removed" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Will be emitted after a child is removed from the container.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The child that was removed</doc> + <type name="TimelineElement"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="ContainerClass" c:type="GESContainerClass" glib:is-gtype-struct-for="Container"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="TimelineElementClass" c:type="GESTimelineElementClass"/> + </field> + <field name="child_added"> + <callback name="child_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="child_removed"> + <callback name="child_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="add_child"> + <callback name="add_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="remove_child"> + <callback name="remove_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="ungroup"> + <callback name="ungroup"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The list of +new #GESContainer-s created from the splitting of @container.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Container"/> + </type> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The container to ungroup</doc> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="recursive" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Whether to recursively ungroup @container</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="group" introspectable="0"> + <callback name="group" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value> + <type name="Container" c:type="GESContainer*"/> + </return-value> + <parameters> + <parameter name="containers" transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </parameter> + </parameters> + </callback> + </field> + <field name="edit"> + <callback name="edit"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if the edit of @container completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The #GESContainer to edit</doc> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The priority/index of the layer @container should +be moved to. -1 means no move</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edge of @container where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit position: a new location for the edge of @container +(in nanoseconds)</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="grouping_priority" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ContainerPrivate" c:type="GESContainerPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + </record> + <callback name="CreateElementForGapFunc" c:type="GESCreateElementForGapFunc" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.h">A function that creates a #GstElement that can be used as a source to +fill the gaps of the track. A gap is a timeline region where the track +has no #GESTrackElement sources.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.h">A source #GstElement to fill gaps in @track.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.h">The #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </callback> + <callback name="CreateTrackElementFunc" c:type="GESCreateTrackElementFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A method for creating the core #GESTrackElement of a clip, to be added +to a #GESTrack of the given track type. + +If a clip may produce several track elements per track type, +#GESCreateTrackElementsFunc is more appropriate.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The #GESTrackElement created +by @clip, or %NULL if @clip can not provide a track element for the +given @type or an error occurred.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESTrackType to create a #GESTrackElement for</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </callback> + <callback name="CreateTrackElementsFunc" c:type="GESCreateTrackElementsFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A method for creating the core #GESTrackElement-s of a clip, to be +added to #GESTrack-s of the given track type.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A list of +the #GESTrackElement-s created by @clip for the given @type, or %NULL +if no track elements are created or an error occurred.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESTrackType to create #GESTrackElement-s for</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </callback> + <function-macro name="DECLARE_TYPE" c:identifier="GES_DECLARE_TYPE" introspectable="0"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <parameters> + <parameter name="ObjName"> + </parameter> + <parameter name="obj_name"> + </parameter> + <parameter name="OBJ_NAME"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEPRECATED_FOR" c:identifier="GES_DEPRECATED_FOR" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-prelude.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="EXTRACTABLE_GET_INTERFACE" c:identifier="GES_EXTRACTABLE_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <enumeration name="Edge" glib:type-name="GESEdge" glib:get-type="ges_edge_get_type" c:type="GESEdge"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The edges of an object contain in a #GESTimeline or #GESTrack</doc> + <member name="edge_start" value="0" c:identifier="GES_EDGE_START" glib:nick="edge_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represents the start of an object.</doc> + </member> + <member name="start" value="0" c:identifier="GES_EDGE_START" glib:nick="start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represents the start of an object.</doc> + </member> + <member name="edge_end" value="1" c:identifier="GES_EDGE_END" glib:nick="edge_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represents the end of an object.</doc> + </member> + <member name="end" value="1" c:identifier="GES_EDGE_END" glib:nick="end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represents the end of an object.</doc> + </member> + <member name="edge_none" value="2" c:identifier="GES_EDGE_NONE" glib:nick="edge_none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represent the fact we are not working with any edge of an + object.</doc> + </member> + <member name="none" value="2" c:identifier="GES_EDGE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represent the fact we are not working with any edge of an + object.</doc> + </member> + <function name="name" c:identifier="ges_edge_name" version="1.16"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.c">A human friendly name for @edge</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.c">The #GESEdge to get the name of</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + </parameters> + </function> + </enumeration> + <enumeration name="EditMode" glib:type-name="GESEditMode" glib:get-type="ges_edit_mode_get_type" c:type="GESEditMode"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">When a single timeline element is edited within its timeline at some +position, using ges_timeline_element_edit(), depending on the edit +mode, its #GESTimelineElement:start, #GESTimelineElement:duration or +#GESTimelineElement:in-point will be adjusted accordingly. In addition, +any clips may change #GESClip:layer. + +Each edit can be broken down into a combination of three basic edits: + ++ MOVE: This moves the start of the element to the edit position. ++ START-TRIM: This cuts or grows the start of the element, whilst + maintaining the time at which its internal content appears in the + timeline data output. If the element is made shorter, the data that + appeared at the edit position will still appear in the timeline at + the same time. If the element is made longer, the data that appeared + at the previous start of the element will still appear in the + timeline at the same time. ++ END-TRIM: Similar to START-TRIM, but the end of the element is cut or + grown. + +In particular, when editing a #GESClip: + ++ MOVE: This will set the #GESTimelineElement:start of the clip to the + edit position. ++ START-TRIM: This will set the #GESTimelineElement:start of the clip + to the edit position. To keep the end time the same, the + #GESTimelineElement:duration of the clip will be adjusted in the + opposite direction. In addition, the #GESTimelineElement:in-point of + the clip will be shifted such that the content that appeared at the + new or previous start time, whichever is latest, still appears at the + same timeline time. For example, if a frame appeared at the start of + the clip, and the start of the clip is reduced, the in-point of the + clip will also reduce such that the frame will appear later within + the clip, but at the same timeline position. ++ END-TRIM: This will set the #GESTimelineElement:duration of the clip + such that its end time will match the edit position. + +When editing a #GESGroup: + ++ MOVE: This will set the #GESGroup:start of the clip to the edit + position by shifting all of its children by the same amount. So each + child will maintain their relative positions. ++ START-TRIM: If the group is made shorter, this will START-TRIM any + clips under the group that start after the edit position to the same + edit position. If the group is made longer, this will START-TRIM any + clip under the group whose start matches the start of the group to + the same edit position. ++ END-TRIM: If the group is made shorter, this will END-TRIM any clips + under the group that end after the edit position to the same edit + position. If the group is made longer, this will END-TRIM any clip + under the group whose end matches the end of the group to the same + edit position. + +When editing a #GESTrackElement, if it has a #GESClip parent, this +will be edited instead. Otherwise it is edited in the same way as a +#GESClip. + +The layer priority of a #GESGroup is the lowest layer priority of any +#GESClip underneath it. When a group is edited to a new layer +priority, it will shift all clips underneath it by the same amount, +such that their relative layers stay the same. + +If the #GESTimeline has a #GESTimeline:snapping-distance, then snapping +may occur for some of the edges of the **main** edited element: + ++ MOVE: The start or end edge of *any* #GESSource under the element may + be snapped. ++ START-TRIM: The start edge of a #GESSource whose start edge touches + the start edge of the element may snap. ++ END-TRIM: The end edge of a #GESSource whose end edge touches the end + edge of the element may snap. + +These edges may snap with either the start or end edge of *any* other +#GESSource in the timeline that is not also being moved by the element, +including those in different layers, if they are within the +#GESTimeline:snapping-distance. During an edit, only up to one snap can +occur. This will shift the edit position such that the snapped edges +will touch once the edit has completed. + +Note that snapping can cause an edit to fail where it would have +otherwise succeeded because it may push the edit position such that the +edit would result in an unsupported timeline configuration. Similarly, +snapping can cause an edit to succeed where it would have otherwise +failed. + +For example, in #GES_EDIT_MODE_RIPPLE acting on #GES_EDGE_NONE, the +main element is the MOVED toplevel of the edited element. Any source +under the main MOVED toplevel may have its start or end edge snapped. +Note, these sources cannot snap with each other. The edit may also +push other elements, but any sources under these elements cannot snap, +nor can they be snapped with. If a snap does occur, the MOVE of the +toplevel *and* all other elements pushed by the ripple will be shifted +by the same amount such that the snapped edges will touch. + +You can also find more explanation about the behaviour of those modes at: +[trim, ripple and roll](http://pitivi.org/manual/trimming.html) +and [clip management](http://pitivi.org/manual/usingclips.html).</doc> + <member name="edit_normal" value="0" c:identifier="GES_EDIT_MODE_NORMAL" glib:nick="edit_normal"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited the normal way (default). + If acting on the element as a whole (#GES_EDGE_NONE), this will MOVE + the element by MOVING its toplevel. When acting on the start of the + element (#GES_EDGE_START), this will only MOVE the element, but not + its toplevel parent. This can allow you to move a #GESClip or + #GESGroup to a new start time or layer within its container group, + without effecting other members of the group. When acting on the end + of the element (#GES_EDGE_END), this will END-TRIM the element, + leaving its toplevel unchanged.</doc> + </member> + <member name="normal" value="0" c:identifier="GES_EDIT_MODE_NORMAL" glib:nick="normal"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited the normal way (default). + If acting on the element as a whole (#GES_EDGE_NONE), this will MOVE + the element by MOVING its toplevel. When acting on the start of the + element (#GES_EDGE_START), this will only MOVE the element, but not + its toplevel parent. This can allow you to move a #GESClip or + #GESGroup to a new start time or layer within its container group, + without effecting other members of the group. When acting on the end + of the element (#GES_EDGE_END), this will END-TRIM the element, + leaving its toplevel unchanged.</doc> + </member> + <member name="edit_ripple" value="1" c:identifier="GES_EDIT_MODE_RIPPLE" glib:nick="edit_ripple"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in ripple mode: moving + itself as well as later elements, keeping their relative times. This + edits the element the same as #GES_EDIT_MODE_NORMAL. In addition, if + acting on the element as a whole, or the start of the element, any + toplevel element in the same timeline (including different layers) + whose start time is later than the *current* start time of the MOVED + element will also be MOVED by the same shift as the edited element. + If acting on the end of the element, any toplevel element whose start + time is later than the *current* end time of the edited element will + also be MOVED by the same shift as the change in the end of the + edited element. These additional elements will also be shifted by + the same shift in layers as the edited element.</doc> + </member> + <member name="ripple" value="1" c:identifier="GES_EDIT_MODE_RIPPLE" glib:nick="ripple"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in ripple mode: moving + itself as well as later elements, keeping their relative times. This + edits the element the same as #GES_EDIT_MODE_NORMAL. In addition, if + acting on the element as a whole, or the start of the element, any + toplevel element in the same timeline (including different layers) + whose start time is later than the *current* start time of the MOVED + element will also be MOVED by the same shift as the edited element. + If acting on the end of the element, any toplevel element whose start + time is later than the *current* end time of the edited element will + also be MOVED by the same shift as the change in the end of the + edited element. These additional elements will also be shifted by + the same shift in layers as the edited element.</doc> + </member> + <member name="edit_roll" value="2" c:identifier="GES_EDIT_MODE_ROLL" glib:nick="edit_roll"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in roll mode: swapping its + content for its neighbour's, or vis versa, in the timeline output. + This edits the element the same as #GES_EDIT_MODE_TRIM. In addition, + any neighbours are also TRIMMED at their opposite edge to the same + timeline position. When acting on the start of the element, a + neighbour is any earlier element in the timeline whose end time + matches the *current* start time of the edited element. When acting on + the end of the element, a neighbour is any later element in the + timeline whose start time matches the *current* start time of the + edited element. In addition, a neighbour have a #GESSource at its + end/start edge that shares a track with a #GESSource at the start/end + edge of the edited element. Basically, a neighbour is an element that + can be extended, or cut, to have its content replace, or be replaced + by, the content of the edited element. Acting on the element as a + whole (#GES_EDGE_NONE) is not defined. The element can not shift + layers under this mode.</doc> + </member> + <member name="roll" value="2" c:identifier="GES_EDIT_MODE_ROLL" glib:nick="roll"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in roll mode: swapping its + content for its neighbour's, or vis versa, in the timeline output. + This edits the element the same as #GES_EDIT_MODE_TRIM. In addition, + any neighbours are also TRIMMED at their opposite edge to the same + timeline position. When acting on the start of the element, a + neighbour is any earlier element in the timeline whose end time + matches the *current* start time of the edited element. When acting on + the end of the element, a neighbour is any later element in the + timeline whose start time matches the *current* start time of the + edited element. In addition, a neighbour have a #GESSource at its + end/start edge that shares a track with a #GESSource at the start/end + edge of the edited element. Basically, a neighbour is an element that + can be extended, or cut, to have its content replace, or be replaced + by, the content of the edited element. Acting on the element as a + whole (#GES_EDGE_NONE) is not defined. The element can not shift + layers under this mode.</doc> + </member> + <member name="edit_trim" value="3" c:identifier="GES_EDIT_MODE_TRIM" glib:nick="edit_trim"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in trim mode. When acting + on the start of the element, this will START-TRIM it. When acting on + the end of the element, this will END-TRIM it. Acting on the element + as a whole (#GES_EDGE_NONE) is not defined.</doc> + </member> + <member name="trim" value="3" c:identifier="GES_EDIT_MODE_TRIM" glib:nick="trim"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in trim mode. When acting + on the start of the element, this will START-TRIM it. When acting on + the end of the element, this will END-TRIM it. Acting on the element + as a whole (#GES_EDGE_NONE) is not defined.</doc> + </member> + <member name="edit_slide" value="4" c:identifier="GES_EDIT_MODE_SLIDE" glib:nick="edit_slide"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in slide mode (not yet + implemented): moving the element replacing or consuming content on + each end. When acting on the element as a whole, this will MOVE the + element, and TRIM any neighbours on either side. A neighbour is + defined in the same way as in #GES_EDIT_MODE_ROLL, but they may be on + either side of the edited elements. Elements at the end with be + START-TRIMMED to the new end position of the edited element. Elements + at the start will be END-TRIMMED to the new start position of the + edited element. Acting on the start or end of the element + (#GES_EDGE_START and #GES_EDGE_END) is not defined. The element can + not shift layers under this mode.</doc> + </member> + <member name="slide" value="4" c:identifier="GES_EDIT_MODE_SLIDE" glib:nick="slide"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in slide mode (not yet + implemented): moving the element replacing or consuming content on + each end. When acting on the element as a whole, this will MOVE the + element, and TRIM any neighbours on either side. A neighbour is + defined in the same way as in #GES_EDIT_MODE_ROLL, but they may be on + either side of the edited elements. Elements at the end with be + START-TRIMMED to the new end position of the edited element. Elements + at the start will be END-TRIMMED to the new start position of the + edited element. Acting on the start or end of the element + (#GES_EDGE_START and #GES_EDGE_END) is not defined. The element can + not shift layers under this mode.</doc> + </member> + <function name="name" c:identifier="ges_edit_mode_name" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Return a string representation of @mode.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">a string representation of @mode.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">a #GESEditMode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + </parameters> + </function> + </enumeration> + <class name="Effect" c:symbol-prefix="effect" c:type="GESEffect" parent="BaseEffect" glib:type-name="GESEffect" glib:get-type="ges_effect_get_type" glib:type-struct="EffectClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">Currently we only support effects with N sinkpads and one single srcpad. +Apart from `gesaudiomixer` and `gescompositor` which can be used as effects +and where sinkpads will be requested as needed based on the timeline topology +GES will always request at most one sinkpad per effect (when required). + +> Note: GES always adds converters (`audioconvert ! audioresample ! +> audioconvert` for audio effects and `videoconvert` for video effects) to +> make it simpler for end users.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_effect_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">Creates a new #GESEffect from the description of the bin. It should be +possible to determine the type of the effect through the element +'klass' metadata of the GstElements that will be created. +In that corner case, you should use: +#ges_asset_request (GES_TYPE_EFFECT, "audio your ! bin ! description", NULL); +and extract that asset to be in full control.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">a newly created #GESEffect, or %NULL if something went +wrong.</doc> + <type name="Effect" c:type="GESEffect*"/> + </return-value> + <parameters> + <parameter name="bin_description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">The gst-launch like bin description of the effect</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <property name="bin-description" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">The description of the effect bin with a gst-launch-style +pipeline description. + +Example: "videobalance saturation=1.5 hue=+0.5"</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="BaseEffect" c:type="GESBaseEffect"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="EffectPrivate" c:type="GESEffectPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <class name="EffectAsset" c:symbol-prefix="effect_asset" c:type="GESEffectAsset" parent="TrackElementAsset" glib:type-name="GESEffectAsset" glib:get-type="ges_effect_asset_get_type" glib:type-struct="EffectAssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-asset.c">This asset has a GStreamer bin-description as ID and is able to determine +to what track type the effect should be used in.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <field name="parent_instance"> + <type name="TrackElementAsset" c:type="GESTrackElementAsset"/> + </field> + <field name="priv"> + <type name="EffectAssetPrivate" c:type="GESEffectAssetPrivate*"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="EffectAssetClass" c:type="GESEffectAssetClass" glib:is-gtype-struct-for="EffectAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-asset.h"/> + <field name="parent_class"> + <type name="TrackElementAssetClass" c:type="GESTrackElementAssetClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="EffectAssetPrivate" c:type="GESEffectAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-asset.h"/> + </record> + <record name="EffectClass" c:type="GESEffectClass" glib:is-gtype-struct-for="Effect"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + <field name="parent_class" readable="0" private="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.h">parent class</doc> + <type name="BaseEffectClass" c:type="GESBaseEffectClass"/> + </field> + <field name="rate_properties" readable="0" private="1"> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="register_rate_property" c:identifier="ges_effect_class_register_rate_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">Register an element that can change the rate at which media is playing. +The property type must be float or double, and must be a factor of the +rate, i.e. a value of 2.0 must mean that the media plays twice as fast. +Several properties may be registered for a single element type, +provided they all contribute to the rate as independent factors. For +example, this is true for the "GstPitch::rate" and "GstPitch::tempo" +properties. These are already registered by default in GES, along with +#videorate:rate for #videorate and #scaletempo:rate for #scaletempo. + +If such a rate property becomes a child property of a #GESEffect upon +its creation (the element is part of its #GESEffect:bin-description), +it will be automatically registered as a time property (see +ges_base_effect_register_time_property()) and will have its time +translation functions set (see +ges_base_effect_set_time_translation_funcs()) to use the overall rate +of the rate properties. Note that if an effect contains a rate +property as well as a non-rate time property, you should ensure to set +the time translation functions to some other methods using +ges_base_effect_set_time_translation_funcs(). + +Note, you can obtain a reference to the GESEffectClass using + +``` + GES_EFFECT_CLASS (g_type_class_ref (GES_TYPE_EFFECT)); +```</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">%TRUE if the rate property was successfully registered. When +this method returns %FALSE, a warning is emitted with more information.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">Instance of the GESEffectClass</doc> + <type name="EffectClass" c:type="GESEffectClass*"/> + </instance-parameter> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">The #GstElementFactory name of the element that changes +the rate</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">The name of the property that changes the rate</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </record> + <class name="EffectClip" c:symbol-prefix="effect_clip" c:type="GESEffectClip" parent="BaseEffectClip" glib:type-name="GESEffectClip" glib:get-type="ges_effect_clip_get_type" glib:type-struct="EffectClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The effect will be applied on the sources that have lower priorities +(higher number) between the inpoint and the end of it. + +The asset ID of an effect clip is in the form: + +``` + "audio ! bin ! description || video ! bin ! description" +```</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_effect_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">Creates a new #GESEffectClip from the description of the bin.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">a newly created #GESEffectClip, or +%NULL if something went wrong.</doc> + <type name="EffectClip" c:type="GESEffectClip*"/> + </return-value> + <parameters> + <parameter name="video_bin_description" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The gst-launch like bin description of the effect</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="audio_bin_description" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The gst-launch like bin description of the effect</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <property name="audio-bin-description" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The description of the audio track of the effect bin with a gst-launch-style +pipeline description. This should be used for test purposes. + +Example: "audiopanorama panorama=1.0"</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="video-bin-description" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The description of the video track of the effect bin with a gst-launch-style +pipeline description. This should be used for test purposes. + +Example: "videobalance saturation=1.5 hue=+0.5"</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="BaseEffectClip" c:type="GESBaseEffectClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="EffectClipPrivate" c:type="GESEffectClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="EffectClipClass" c:type="GESEffectClipClass" glib:is-gtype-struct-for="EffectClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="BaseEffectClipClass" c:type="GESBaseEffectClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="EffectClipPrivate" c:type="GESEffectClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-clip.h"/> + </record> + <record name="EffectPrivate" c:type="GESEffectPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + </record> + <enumeration name="Error" c:type="GESError"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-gerror.h"/> + <member name="asset_wrong_id" value="0" c:identifier="GES_ERROR_ASSET_WRONG_ID"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The ID passed is malformed</doc> + </member> + <member name="asset_loading" value="1" c:identifier="GES_ERROR_ASSET_LOADING"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">An error happened while loading the asset</doc> + </member> + <member name="formatter_malformed_input_file" value="2" c:identifier="GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The formatted files was malformed</doc> + </member> + <member name="invalid_frame_number" value="3" c:identifier="GES_ERROR_INVALID_FRAME_NUMBER"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The frame number is invalid</doc> + </member> + <member name="negative_layer" value="4" c:identifier="GES_ERROR_NEGATIVE_LAYER"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The operation would lead to a negative +#GES_TIMELINE_ELEMENT_LAYER_PRIORITY. (Since: 1.18)</doc> + </member> + <member name="negative_time" value="5" c:identifier="GES_ERROR_NEGATIVE_TIME"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The operation would lead to a negative time. +E.g. for the #GESTimelineElement:start #GESTimelineElement:duration or +#GESTimelineElement:in-point. (Since: 1.18)</doc> + </member> + <member name="not_enough_internal_content" value="6" c:identifier="GES_ERROR_NOT_ENOUGH_INTERNAL_CONTENT"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">Some #GESTimelineElement does +not have a large enough #GESTimelineElement:max-duration to cover the +desired operation. (Since: 1.18)</doc> + </member> + <member name="invalid_overlap_in_track" value="7" c:identifier="GES_ERROR_INVALID_OVERLAP_IN_TRACK"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The operation would break one of +the overlap conditions for the #GESTimeline. (Since: 1.18)</doc> + </member> + <member name="invalid_effect_bin_description" value="8" c:identifier="GES_ERROR_INVALID_EFFECT_BIN_DESCRIPTION"> + </member> + </enumeration> + <interface name="Extractable" c:symbol-prefix="extractable" c:type="GESExtractable" glib:type-name="GESExtractable" glib:get-type="ges_extractable_get_type" glib:type-struct="ExtractableInterface"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GObject that implements the #GESExtractable interface can be +extracted from a #GESAsset using ges_asset_extract(). + +Each extractable type will have its own way of interpreting the +#GESAsset:id of an asset (or, if it is associated with a specific +subclass of #GESAsset, the asset subclass may handle the +interpretation of the #GESAsset:id). By default, the requested asset +#GESAsset:id will be ignored by a #GESExtractable and will be set to +the type name of the extractable instead. Also by default, when the +requested asset is extracted, the returned object will simply be a +newly created default object of that extractable type. You should check +the documentation for each extractable type to see if they differ from +the default. + +After the object is extracted, it will have a reference to the asset it +came from, which you can retrieve using ges_extractable_get_asset().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <prerequisite name="GObject.InitiallyUnowned"/> + <virtual-method name="get_id" invoker="get_id"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">Gets the #GESAsset:id of some associated asset. It may be the case +that the object has no set asset, or even that such an asset does not +yet exist in the GES cache. Instead, this will return the asset +#GESAsset:id that is _compatible_ with the current state of the object, +as determined by the #GESExtractable implementer. If it was indeed +extracted from an asset, this should return the same as its +corresponding asset #GESAsset:id.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The #GESAsset:id of some associated #GESAsset +that is compatible with @self's current state.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="set_asset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_asset_full"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_asset" c:identifier="ges_extractable_get_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">Get the asset that has been set on the extractable object.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The asset set on @self, or %NULL +if no asset has been set.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_id" c:identifier="ges_extractable_get_id"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">Gets the #GESAsset:id of some associated asset. It may be the case +that the object has no set asset, or even that such an asset does not +yet exist in the GES cache. Instead, this will return the asset +#GESAsset:id that is _compatible_ with the current state of the object, +as determined by the #GESExtractable implementer. If it was indeed +extracted from an asset, this should return the same as its +corresponding asset #GESAsset:id.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The #GESAsset:id of some associated #GESAsset +that is compatible with @self's current state.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_asset" c:identifier="ges_extractable_set_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">Sets the asset for this extractable object. + +When an object is extracted from an asset using ges_asset_extract() its +asset will be automatically set. Note that many classes that implement +#GESExtractable will automatically create their objects using assets +when you call their @new methods. However, you can use this method to +associate an object with a compatible asset if it was created by other +means and does not yet have an asset. Or, for some implementations of +#GESExtractable, you can use this to change the asset of the given +extractable object, which will lead to a change in its state to +match the new asset #GESAsset:id.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">%TRUE if @asset could be successfully set on @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The asset to set</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + </interface> + <callback name="ExtractableCheckId" c:type="GESExtractableCheckId" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">Method for checking that an ID is valid for the given #GESExtractable +type. If the given ID is considered valid, it can be adjusted into some +standard and returned to prevent the creation of separate #GESAsset-s, +with different #GESAsset:id, that would otherwise act the same. + +Returns (transfer full) (nullable): The actual #GESAsset:id to set on +any corresponding assets, based on @id, or %NULL if @id is not valid.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">The #GESExtractable type to check @id for</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">The ID to check</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + <record name="ExtractableInterface" c:type="GESExtractableInterface" glib:is-gtype-struct-for="Extractable"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <field name="parent"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="asset_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">The subclass type of #GESAsset that should be created when +an asset with the corresponding #GESAsset:extractable-type is +requested.</doc> + <type name="GType" c:type="GType"/> + </field> + <field name="check_id"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">The method to call to check whether a given ID is valid as +an asset #GESAsset:id for the given #GESAsset:extractable-type. The +returned ID is the actual #GESAsset:id that is set on the asset. The +default implementation will simply always return the type name of the +#GESAsset:extractable-type, even if the received ID is %NULL. As such, +any given ID is considered valid (or is ignored), but only one is +actually ever set on an asset, which means the given +#GESAsset:extractable-type can only have one associated asset.</doc> + <type name="ExtractableCheckId" c:type="GESExtractableCheckId"/> + </field> + <field name="can_update_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">Whether an object of this class can have its +#GESAsset change over its lifetime. This should be set to %TRUE if one +of the object's parameters that is associated with its ID can change +after construction, which would require an asset with a new ID. Note +that the subclass is required to handle the requesting and setting of +the new asset on the object.</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="set_asset"> + <callback name="set_asset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Extractable" c:type="GESExtractable*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_asset_full"> + <callback name="set_asset_full"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Extractable" c:type="GESExtractable*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_parameters_from_id" introspectable="0"> + <callback name="get_parameters_from_id" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value> + <type name="GObject.Parameter" c:type="GParameter*"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="n_params" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_id"> + <callback name="get_id"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The #GESAsset:id of some associated #GESAsset +that is compatible with @self's current state.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_real_extractable_type"> + <callback name="get_real_extractable_type"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <parameter name="wanted_type" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="register_metas"> + <callback name="register_metas"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="ExtractableInterface" c:type="GESExtractableInterface*"/> + </parameter> + <parameter name="klass" transfer-ownership="none"> + <type name="GObject.ObjectClass" c:type="GObjectClass*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <function-macro name="FRAME_NUMBER_IS_VALID" c:identifier="GES_FRAME_NUMBER_IS_VALID" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-types.h">Tests if a given GESFrameNumber represents a valid frame</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <parameters> + <parameter name="frames"> + </parameter> + </parameters> + </function-macro> + <constant name="FRAME_NUMBER_NONE" value="9223372036854775807" c:type="GES_FRAME_NUMBER_NONE"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-types.h">Constant to define an undefined frame number</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <type name="gint64" c:type="gint64"/> + </constant> + <callback name="FillTrackElementFunc" c:type="GESFillTrackElementFunc" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A function that will be called when the nleobject of a corresponding +track element needs to be filled. + +The implementer of this function shall add the proper #GstElement to @nleobj +using gst_bin_add().</doc> + <doc-deprecated xml:space="preserve">This method type is no longer used.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">%TRUE if the implementer successfully filled the @nleobj.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The #GESClip controlling the track elements</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + <parameter name="track_element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="nleobj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The nleobject that needs to be filled</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + <class name="Formatter" c:symbol-prefix="formatter" c:type="GESFormatter" parent="GObject.InitiallyUnowned" abstract="1" glib:type-name="GESFormatter" glib:get-type="ges_formatter_get_type" glib:type-struct="FormatterClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">Base class for timeline data serialization and deserialization.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <implements name="Extractable"/> + <function name="can_load_uri" c:identifier="ges_formatter_can_load_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Checks if there is a #GESFormatter available which can load a #GESTimeline +from the given URI.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if there is a #GESFormatter that can support the given uri +or FALSE if not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to the URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="can_save_uri" c:identifier="ges_formatter_can_save_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Returns TRUE if there is a #GESFormatter available which can save a +#GESTimeline to the given URI.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the given @uri is supported, else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_default" c:identifier="ges_formatter_get_default"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Get the default #GESAsset to use as formatter. It will return +the asset for the #GESFormatter that has the highest @rank</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The #GESAsset for the formatter with highest @rank</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + </function> + <virtual-method name="can_load_uri" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dummy_instance" transfer-ownership="none"> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="load_from_uri" invoker="load_from_uri" deprecated="1" deprecated-version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Load data from the given URI into timeline.</doc> + <doc-deprecated xml:space="preserve">Use @ges_timeline_load_from_uri</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully loaded from the URI, +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="save_to_uri" invoker="save_to_uri" deprecated="1" deprecated-version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Save data from timeline to the given URI.</doc> + <doc-deprecated xml:space="preserve">Use @ges_timeline_save_to_uri</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully saved to the URI +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <method name="load_from_uri" c:identifier="ges_formatter_load_from_uri" deprecated="1" deprecated-version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Load data from the given URI into timeline.</doc> + <doc-deprecated xml:space="preserve">Use @ges_timeline_load_from_uri</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully loaded from the URI, +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="save_to_uri" c:identifier="ges_formatter_save_to_uri" deprecated="1" deprecated-version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Save data from timeline to the given URI.</doc> + <doc-deprecated xml:space="preserve">Use @ges_timeline_save_to_uri</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully saved to the URI +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="FormatterPrivate" c:type="GESFormatterPrivate*"/> + </field> + <field name="project" readable="0" private="1"> + <type name="Project" c:type="GESProject*"/> + </field> + <field name="timeline" readable="0" private="1"> + <type name="Timeline" c:type="GESTimeline*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <callback name="FormatterCanLoadURIMethod" c:type="GESFormatterCanLoadURIMethod" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dummy_instance" transfer-ownership="none"> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + <record name="FormatterClass" c:type="GESFormatterClass" glib:is-gtype-struct-for="Formatter"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">GES Formatter class. Override the vmethods to implement the formatter functionnality.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">the parent class structure</doc> + <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> + </field> + <field name="can_load_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">Whether the URI can be loaded</doc> + <type name="FormatterCanLoadURIMethod" c:type="GESFormatterCanLoadURIMethod"/> + </field> + <field name="load_from_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">class method to deserialize data from a URI</doc> + <type name="FormatterLoadFromURIMethod" c:type="GESFormatterLoadFromURIMethod"/> + </field> + <field name="save_to_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">class method to serialize data to a URI</doc> + <type name="FormatterSaveToURIMethod" c:type="GESFormatterSaveToURIMethod"/> + </field> + <field name="name" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="description" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="extension" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="mimetype" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="version" readable="0" private="1"> + <type name="gdouble" c:type="gdouble"/> + </field> + <field name="rank" readable="0" private="1"> + <type name="Gst.Rank" c:type="GstRank"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="register_metas" c:identifier="ges_formatter_class_register_metas"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The class to register metas on</doc> + <type name="FormatterClass" c:type="GESFormatterClass*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The name of the formatter</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The formatter description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="extensions" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">A list of coma separated file extensions handled +by the formatter. The order of the extensions should match the +list of the structures inside @caps</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The caps the formatter handled, they should match what +gstreamer typefind mechanism will report for the files the formatter +handles.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The version of the formatter</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="rank" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The rank of the formatter</doc> + <type name="Gst.Rank" c:type="GstRank"/> + </parameter> + </parameters> + </method> + </record> + <callback name="FormatterLoadFromURIMethod" c:type="GESFormatterLoadFromURIMethod" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">Virtual method for loading a timeline from a given URI. + +Every #GESFormatter subclass needs to implement this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully loaded from the URI, +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + <record name="FormatterPrivate" c:type="GESFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + </record> + <callback name="FormatterSaveToURIMethod" c:type="GESFormatterSaveToURIMethod" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">Virtual method for saving a timeline to a uri. + +Every #GESFormatter subclass needs to implement this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully saved to the URI +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + <class name="Group" c:symbol-prefix="group" c:type="GESGroup" parent="Container" glib:type-name="GESGroup" glib:get-type="ges_group_get_type" glib:type-struct="GroupClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">A #GESGroup controls one or more #GESContainer-s (usually #GESClip-s, +but it can also control other #GESGroup-s). Its children must share +the same #GESTimeline, but can otherwise lie in separate #GESLayer-s +and have different timings. + +To initialise a group, you may want to use ges_container_group(), +and similarly use ges_container_ungroup() to dispose of it. + +A group will maintain the relative #GESTimelineElement:start times of +its children, as well as their relative layer #GESLayer:priority. +Therefore, if one of its children has its #GESTimelineElement:start +set, all other children will have their #GESTimelineElement:start +shifted by the same amount. Similarly, if one of its children moves to +a new layer, the other children will also change layers to maintain the +difference in their layer priorities. For example, if a child moves +from a layer with #GESLayer:priority 1 to a layer with priority 3, then +another child that was in a layer with priority 0 will move to the +layer with priority 2. + +The #GESGroup:start of a group refers to the earliest start +time of its children. If the group's #GESGroup:start is set, all the +children will be shifted equally such that the earliest start time +will match the set value. The #GESGroup:duration of a group is the +difference between the earliest start time and latest end time of its +children. If the group's #GESGroup:duration is increased, the children +whose end time matches the end of the group will be extended +accordingly. If it is decreased, then any child whose end time exceeds +the new end time will also have their duration decreased accordingly. + +A group may span several layers, but for methods such as +ges_timeline_element_get_layer_priority() and +ges_timeline_element_edit() a group is considered to have a layer +priority that is the highest #GESLayer:priority (numerically, the +smallest) of all the layers it spans.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-group.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_group_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">Created a new empty group. You may wish to use +ges_container_group() instead, which can return a different +#GESContainer subclass if possible.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-group.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">The new empty group.</doc> + <type name="Group" c:type="GESGroup*"/> + </return-value> + </constructor> + <property name="duration" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:duration property. For a +#GESGroup, this is the difference between the earliest +#GESTimelineElement:start time and the latest end time (given by +#GESTimelineElement:start + #GESTimelineElement:duration) amongst +its children.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="in-point" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:in-point property. This has +no meaning for a group and should not be set.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="max-duration" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:max-duration property. This +has no meaning for a group and should not be set.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="priority" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:priority property. +Setting #GESTimelineElement priorities is deprecated as all priority +management is now done by GES itself.</doc> + <type name="guint" c:type="guint"/> + </property> + <property name="start" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:start property. For a +#GESGroup, this is the earliest #GESTimelineElement:start time +amongst its children.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <field name="parent"> + <type name="Container" c:type="GESContainer"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GroupPrivate" c:type="GESGroupPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GroupClass" c:type="GESGroupClass" glib:is-gtype-struct-for="Group"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-group.h"/> + <field name="parent_class"> + <type name="ContainerClass" c:type="GESContainerClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GroupPrivate" c:type="GESGroupPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-group.h"/> + </record> + <class name="ImageSource" c:symbol-prefix="image_source" c:type="GESImageSource" deprecated="1" deprecated-version="1.18" parent="VideoSource" glib:type-name="GESImageSource" glib:get-type="ges_image_source_get_type" glib:type-struct="ImageSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-image-source.c">Outputs the video stream from a given file as a still frame. The frame chosen +will be determined by the in-point property on the track element. For image +files, do not set the in-point property.</doc> + <doc-deprecated xml:space="preserve">This won't be used anymore and has been replaced by +#GESUriSource instead which now plugs an `imagefreeze` element when +#ges_uri_source_asset_is_image returns %TRUE.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-image-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-image-source.c">The location of the file/resource to use.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="uri" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ImageSourcePrivate" c:type="GESImageSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="ImageSourceClass" c:type="GESImageSourceClass" glib:is-gtype-struct-for="ImageSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-image-source.h"/> + <field name="parent_class"> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ImageSourcePrivate" c:type="GESImageSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-image-source.h"/> + </record> + <class name="Layer" c:symbol-prefix="layer" c:type="GESLayer" parent="GObject.InitiallyUnowned" glib:type-name="GESLayer" glib:get-type="ges_layer_get_type" glib:type-struct="LayerClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">#GESLayer-s are responsible for collecting and ordering #GESClip-s. + +A layer within a timeline will have an associated priority, +corresponding to their index within the timeline. A layer with the +index/priority 0 will have the highest priority and the layer with the +largest index will have the lowest priority (the order of priorities, +in this sense, is the _reverse_ of the numerical ordering of the +indices). ges_timeline_move_layer() should be used if you wish to +change how layers are prioritised in a timeline. + +Layers with higher priorities will have their content priorities +over content from lower priority layers, similar to how layers are +used in image editing. For example, if two separate layers both +display video content, then the layer with the higher priority will +have its images shown first. The other layer will only have its image +shown if the higher priority layer has no content at the given +playtime, or is transparent in some way. Audio content in separate +layers will simply play in addition.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_layer_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Creates a new layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">A new layer.</doc> + <type name="Layer" c:type="GESLayer*"/> + </return-value> + </constructor> + <virtual-method name="get_objects" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="object_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="object_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_asset" c:identifier="ges_layer_add_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">See ges_layer_add_asset_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The newly created clip.</doc> + <type name="Clip" c:type="GESClip*"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The asset to extract the new clip from</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:start value to set on the new clip +If `start == #GST_CLOCK_TIME_NONE`, it will be added to the end +of @layer, i.e. it will be set to @layer's duration</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:in-point value to set on the new +clip</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:duration value to set on the new +clip</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="track_types" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESClip:supported-formats to set on the the new +clip, or #GES_TRACK_TYPE_UNKNOWN to use the default</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <method name="add_asset_full" c:identifier="ges_layer_add_asset_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Extracts a new clip from an asset and adds it to the layer with +the given properties.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The newly created clip.</doc> + <type name="Clip" c:type="GESClip*"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The asset to extract the new clip from</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:start value to set on the new clip +If `start == #GST_CLOCK_TIME_NONE`, it will be added to the end +of @layer, i.e. it will be set to @layer's duration</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:in-point value to set on the new +clip</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:duration value to set on the new +clip</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="track_types" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESClip:supported-formats to set on the the new +clip, or #GES_TRACK_TYPE_UNKNOWN to use the default</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <method name="add_clip" c:identifier="ges_layer_add_clip"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">See ges_layer_add_clip_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @clip was properly added to @layer, or %FALSE +if @layer refused to add @clip.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip to add</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </method> + <method name="add_clip_full" c:identifier="ges_layer_add_clip_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Adds the given clip to the layer. If the method succeeds, the layer +will take ownership of the clip. + +This method will fail and return %FALSE if @clip already resides in +some layer. It can also fail if the additional clip breaks some +compositional rules (see #GESTimelineElement).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @clip was properly added to @layer, or %FALSE +if @layer refused to add @clip.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip to add</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </method> + <method name="get_active_for_track" c:identifier="ges_layer_get_active_for_track" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Gets whether the layer is active for the given track. See +ges_layer_set_active_for_tracks().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @layer is active for @track, or %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTrack to check if @layer is currently active for</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="get_auto_transition" c:identifier="ges_layer_get_auto_transition"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Gets the #GESLayer:auto-transition of the layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if transitions are automatically added to @layer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_clips" c:identifier="ges_layer_get_clips"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Get the #GESClip-s contained in this layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">A list of clips in +@layer.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Clip"/> + </type> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_clips_in_interval" c:identifier="ges_layer_get_clips_in_interval"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Gets the clips within the layer that appear between @start and @end.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">A list of #GESClip-s +that intersect the interval `[start, end)` in @layer.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Clip"/> + </type> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Start of the interval</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">End of the interval</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="ges_layer_get_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Retrieves the duration of the layer, which is the difference +between the start of the layer (always time 0) and the end (which will +be the end time of the final clip).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The duration of @layer.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The layer to get the duration from</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_priority" c:identifier="ges_layer_get_priority"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Get the priority of the layer. When inside a timeline, this is its +index in the timeline. See ges_timeline_move_layer().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The priority of @layer within its timeline.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timeline" c:identifier="ges_layer_get_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Gets the timeline that the layer is a part of.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The timeline that @layer +is currently part of, or %NULL if it is not associated with any +timeline.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_empty" c:identifier="ges_layer_is_empty"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Convenience method to check if the layer is empty (doesn't contain +any #GESClip), or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @layer is empty, %FALSE if it contains at least +one clip.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer to check</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_clip" c:identifier="ges_layer_remove_clip"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Removes the given clip from the layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @clip was removed from @layer, or %FALSE if the +operation failed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip to remove</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </method> + <method name="set_active_for_tracks" c:identifier="ges_layer_set_active_for_tracks" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Activate or deactivate track elements in @tracks (or in all tracks if @tracks +is %NULL). + +When a layer is deactivated for a track, all the #GESTrackElement-s in +the track that belong to a #GESClip in the layer will no longer be +active in the track, regardless of their individual +#GESTrackElement:active value. + +Note that by default a layer will be active for all of its +timeline's tracks.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if the operation worked %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Whether elements in @tracks should be active or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="tracks" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The list of +tracks @layer should be (de-)active in, or %NULL to include all the tracks +in the @layer's timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Track"/> + </type> + </parameter> + </parameters> + </method> + <method name="set_auto_transition" c:identifier="ges_layer_set_auto_transition"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Sets #GESLayer:auto-transition for the layer. Use +ges_timeline_set_auto_transition() if you want all layers within a +#GESTimeline to have #GESLayer:auto-transition set to %TRUE. Use this +method if you want different values for different layers (and make sure +to keep #GESTimeline:auto-transition as %FALSE for the corresponding +timeline).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="auto_transition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Whether transitions should be automatically added to +the layer</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_priority" c:identifier="ges_layer_set_priority" deprecated="1" deprecated-version="1.16.0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Sets the layer to the given priority. See #GESLayer:priority.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_move_layer instead. This deprecation means +that you will not need to handle layer priorities at all yourself, GES +will make sure there is never 'gaps' between layer priorities.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The priority to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_timeline" c:identifier="ges_layer_set_timeline"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <property name="auto-transition" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Whether to automatically create a #GESTransitionClip whenever two +#GESSource-s that both belong to a #GESClip in the layer overlap. +See #GESTimeline for what counts as an overlap. + +When a layer is added to a #GESTimeline, if this property is left as +%FALSE, but the timeline's #GESTimeline:auto-transition is %TRUE, it +will be set to %TRUE as well.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="priority" deprecated="1" deprecated-version="1.16.0" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The priority of the layer in the #GESTimeline. 0 is the highest +priority. Conceptually, a timeline is a stack of layers, +and the priority of the layer represents its position in the stack. Two +layers should not have the same priority within a given GESTimeline. + +Note that the timeline needs to be committed (with #ges_timeline_commit) +for the change to be taken into account.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_move_layer instead. This deprecation means +that you will not need to handle layer priorities at all yourself, GES +will make sure there is never 'gaps' between layer priorities.</doc-deprecated> + <type name="guint" c:type="guint"/> + </property> + <field name="parent"> + <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> + </field> + <field name="timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.h">the #GESTimeline where this layer is being used.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </field> + <field name="min_nle_priority"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="max_nle_priority"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="priv"> + <type name="LayerPrivate" c:type="GESLayerPrivate*"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="active-changed" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Will be emitted whenever the layer is activated or deactivated +for some #GESTrack. See ges_layer_set_active_for_tracks().</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Whether @layer has been made active or de-active in the @tracks</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="tracks" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">A list of #GESTrack +which have been activated or deactivated</doc> + <array name="GLib.PtrArray"> + <type name="Track"/> + </array> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="clip-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Will be emitted after the clip is added to the layer.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip that was added</doc> + <type name="Clip"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="clip-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Will be emitted after the clip is removed from the layer.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip that was removed</doc> + <type name="Clip"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="LayerClass" c:type="GESLayerClass" glib:is-gtype-struct-for="Layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.h">Subclasses can override the @get_objects if they can provide a more +efficient way of providing the list of contained #GESClip-s.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> + </field> + <field name="get_objects" introspectable="0"> + <callback name="get_objects" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="object_added"> + <callback name="object_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + <parameter name="object" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="object_removed"> + <callback name="object_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + <parameter name="object" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="LayerPrivate" c:type="GESLayerPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + </record> + <constant name="META_DESCRIPTION" value="description" c:type="GES_META_DESCRIPTION"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The description of the object, to be used in various contexts (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_EXTENSION" value="extension" c:type="GES_META_FORMATTER_EXTENSION"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The file extension of files produced by a #GESFormatter (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_MIMETYPE" value="mimetype" c:type="GES_META_FORMATTER_MIMETYPE"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The mimetype used for the file produced by a #GESFormatter (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_NAME" value="name" c:type="GES_META_FORMATTER_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The name of a formatter, used as the #GESAsset:id for #GESFormatter +assets (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_RANK" value="rank" c:type="GES_META_FORMATTER_RANK"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The rank of a #GESFormatter (a #GstRank).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_VERSION" value="version" c:type="GES_META_FORMATTER_VERSION"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The version of a #GESFormatter (double).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMAT_VERSION" value="format-version" c:type="GES_META_FORMAT_VERSION"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The version of the format in which a project is serialized (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_MARKER_COLOR" value="marker-color" c:type="GES_META_MARKER_COLOR"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The ARGB color of a #GESMarker (an AARRGGBB hex as a uint).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_VOLUME" value="volume" c:type="GES_META_VOLUME"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The volume for a #GESTrack or a #GESLayer (float).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_VOLUME_DEFAULT" value="1.000000" c:type="GES_META_VOLUME_DEFAULT"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The default volume for a #GESTrack or a #GESLayer as a float.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="gdouble" c:type="gdouble"/> + </constant> + <constant name="MULTI_FILE_URI_PREFIX" value="multifile://" c:type="GES_MULTI_FILE_URI_PREFIX"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <class name="Marker" c:symbol-prefix="marker" c:type="GESMarker" version="1.18" parent="GObject.Object" glib:type-name="GESMarker" glib:get-type="ges_marker_get_type" glib:type-struct="MarkerClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.h">A timed #GESMetaContainer object.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <implements name="MetaContainer"/> + <property name="position" version="1.18" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Current position (in nanoseconds) of the #GESMarker</doc> + <type name="guint64" c:type="guint64"/> + </property> + </class> + <record name="MarkerClass" c:type="GESMarkerClass" glib:is-gtype-struct-for="Marker"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + </record> + <bitfield name="MarkerFlags" version="1.20" glib:type-name="GESMarkerFlags" glib:get-type="ges_marker_flags_get_type" c:type="GESMarkerFlags"> + <member name="none" value="0" c:identifier="GES_MARKER_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Marker does not serve any special purpose.</doc> + </member> + <member name="snappable" value="1" c:identifier="GES_MARKER_FLAG_SNAPPABLE" glib:nick="snappable"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Marker can be a snapping target.</doc> + </member> + </bitfield> + <class name="MarkerList" c:symbol-prefix="marker_list" c:type="GESMarkerList" version="1.18" parent="GObject.Object" glib:type-name="GESMarkerList" glib:get-type="ges_marker_list_get_type" glib:type-struct="MarkerListClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">A #GESMarker can be colored by setting the #GES_META_MARKER_COLOR meta.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <constructor name="new" c:identifier="ges_marker_list_new" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Creates a new #GESMarkerList.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">A new #GESMarkerList</doc> + <type name="MarkerList" c:type="GESMarkerList*"/> + </return-value> + </constructor> + <method name="add" c:identifier="ges_marker_list_add" version="1.18"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">The newly-added marker, the list keeps ownership +of the marker</doc> + <type name="Marker" c:type="GESMarker*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">The position of the new marker</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_markers" c:identifier="ges_marker_list_get_markers" version="1.18"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">a #GList +of the #GESMarker within the GESMarkerList. The user will have +to unref each #GESMarker and free the #GList.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Marker"/> + </type> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + </parameters> + </method> + <method name="move" c:identifier="ges_marker_list_move" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Moves a @marker in a @list to a new @position</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">%TRUE if the marker could be moved, %FALSE otherwise + (if the marker was not present in the list for example)</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + <parameter name="marker" transfer-ownership="none"> + <type name="Marker" c:type="GESMarker*"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="remove" c:identifier="ges_marker_list_remove" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Removes @marker from @list, this decreases the refcount of the +marker by 1.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">%TRUE if the marker could be removed, %FALSE otherwise + (if the marker was not present in the list for example)</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + <parameter name="marker" transfer-ownership="none"> + <type name="Marker" c:type="GESMarker*"/> + </parameter> + </parameters> + </method> + <method name="size" c:identifier="ges_marker_list_size" version="1.18"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">The number of markers in @list</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + </parameters> + </method> + <property name="flags" version="1.20" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Flags indicating how markers on the list should be treated.</doc> + <type name="MarkerFlags"/> + </property> + <glib:signal name="marker-added" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Will be emitted after the marker was added to the marker-list.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the position of the added marker</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="marker" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the #GESMarker that was added.</doc> + <type name="Marker"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="marker-moved" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Will be emitted after the marker was moved to.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="previous_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the previous position of the marker</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="new_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the new position of the marker</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="marker" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the #GESMarker that was moved.</doc> + <type name="Marker"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="marker-removed" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Will be emitted after the marker was removed the marker-list.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="marker" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the #GESMarker that was removed.</doc> + <type name="Marker"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="MarkerListClass" c:type="GESMarkerListClass" glib:is-gtype-struct-for="MarkerList"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + </record> + <interface name="MetaContainer" c:symbol-prefix="meta_container" c:type="GESMetaContainer" glib:type-name="GESMetaContainer" glib:get-type="ges_meta_container_get_type" glib:type-struct="MetaContainerInterface"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GObject that implements #GESMetaContainer can have metadata set on +it, that is data that is unimportant to its function within GES, but +may hold some useful information. In particular, +ges_meta_container_set_meta() can be used to store any #GValue under +any generic field (specified by a string key). The same method can also +be used to remove the field by passing %NULL. A number of convenience +methods are also provided to make it easier to set common value types. +The metadata can then be read with ges_meta_container_get_meta() and +similar convenience methods. + +## Registered Fields + +By default, any #GValue can be set for a metadata field. However, you +can register some fields as static, that is they only allow values of a +specific type to be set under them, using +ges_meta_container_register_meta() or +ges_meta_container_register_static_meta(). The set #GESMetaFlag will +determine whether the value can be changed, but even if it can be +changed, it must be changed to a value of the same type. + +Internally, some GES objects will be initialized with static metadata +fields. These will correspond to some standard keys, such as +#GES_META_VOLUME.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <method name="add_metas_from_string" c:identifier="ges_meta_container_add_metas_from_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Deserializes the given string, and adds and sets the found fields and +their values on the container. The string should be the return of +ges_meta_container_metas_to_string().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the fields in @str was successfully deserialized +and added to @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A string to deserialize and add to @container</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="check_meta_registered" c:identifier="ges_meta_container_check_meta_registered"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Checks whether the specified field has been registered as static, and +gets the registered type and flags of the field, as used in +ges_meta_container_register_meta() and +ges_meta_container_register_static_meta().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field has been registered on +@container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to check</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A destination to get the registered flags of +the field, or %NULL to ignore</doc> + <type name="MetaFlag" c:type="GESMetaFlag*"/> + </parameter> + <parameter name="type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A destination to get the registered type of +the field, or %NULL to ignore</doc> + <type name="GType" c:type="GType*"/> + </parameter> + </parameters> + </method> + <method name="foreach" c:identifier="ges_meta_container_foreach"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Calls the given function on each of the meta container's set metadata +fields.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A function to call on each of @container's set +metadata fields</doc> + <type name="MetaForeachFunc" c:type="GESMetaForeachFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">User data to send to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="get_boolean" c:identifier="ges_meta_container_get_boolean"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current boolean value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the boolean value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="get_date" c:identifier="ges_meta_container_get_date"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current date value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the date value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="GLib.Date" c:type="GDate**"/> + </parameter> + </parameters> + </method> + <method name="get_date_time" c:identifier="ges_meta_container_get_date_time"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current date time value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the date time value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="Gst.DateTime" c:type="GstDateTime**"/> + </parameter> + </parameters> + </method> + <method name="get_double" c:identifier="ges_meta_container_get_double"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current double value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the double value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="get_float" c:identifier="ges_meta_container_get_float"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current float value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the float value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gfloat" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="get_int" c:identifier="ges_meta_container_get_int"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current int value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the int value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_int64" c:identifier="ges_meta_container_get_int64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current int64 value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the int64 value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_marker_list" c:identifier="ges_meta_container_get_marker_list" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current marker list value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A copy of the marker list value under @key, +or %NULL if it could not be fetched.</doc> + <type name="MarkerList" c:type="GESMarkerList*"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_meta" c:identifier="ges_meta_container_get_meta"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current value of the specified field of the meta container.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value under @key, or %NULL if @container +does not have the field set.</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_string" c:identifier="ges_meta_container_get_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current string value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The string value under @meta_item, or %NULL +if it could not be fetched.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_uint" c:identifier="ges_meta_container_get_uint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current uint value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the uint value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_uint64" c:identifier="ges_meta_container_get_uint64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current uint64 value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the uint64 value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="metas_to_string" c:identifier="ges_meta_container_metas_to_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Serializes the set metadata fields of the meta container to a string.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A serialized @container.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + </parameters> + </method> + <method name="register_meta" c:identifier="ges_meta_container_register_meta"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given value, and registers the field to only hold a value of the +same type. After calling this, only values of the same type as @value +can be set for this field. The given flags can be set to make this +field only readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold @value types, with the given @flags, and the +field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="register_meta_boolean" c:identifier="ges_meta_container_register_meta_boolean"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given boolean value, and registers the field to only hold a boolean +typed value. After calling this, only boolean values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold boolean typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="register_meta_date" c:identifier="ges_meta_container_register_meta_date"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given date value, and registers the field to only hold a date +typed value. After calling this, only date values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold date typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="GLib.Date" c:type="const GDate*"/> + </parameter> + </parameters> + </method> + <method name="register_meta_date_time" c:identifier="ges_meta_container_register_meta_date_time"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given date time value, and registers the field to only hold a date time +typed value. After calling this, only date time values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold date time typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="Gst.DateTime" c:type="const GstDateTime*"/> + </parameter> + </parameters> + </method> + <method name="register_meta_double" c:identifier="ges_meta_container_register_meta_double"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given double value, and registers the field to only hold a double +typed value. After calling this, only double values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold double typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="register_meta_float" c:identifier="ges_meta_container_register_meta_float"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given float value, and registers the field to only hold a float +typed value. After calling this, only float values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold float typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="register_meta_int" c:identifier="ges_meta_container_register_meta_int"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given int value, and registers the field to only hold an int +typed value. After calling this, only int values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold int typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="register_meta_int64" c:identifier="ges_meta_container_register_meta_int64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given int64 value, and registers the field to only hold an int64 +typed value. After calling this, only int64 values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold int64 typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="register_meta_string" c:identifier="ges_meta_container_register_meta_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given string value, and registers the field to only hold a string +typed value. After calling this, only string values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold string typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="register_meta_uint" c:identifier="ges_meta_container_register_meta_uint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given uint value, and registers the field to only hold a uint +typed value. After calling this, only uint values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold uint typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="register_meta_uint64" c:identifier="ges_meta_container_register_meta_uint64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given uint64 value, and registers the field to only hold a uint64 +typed value. After calling this, only uint64 values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold uint64 typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="register_static_meta" c:identifier="ges_meta_container_register_static_meta" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Registers a static metadata field on the container to only hold the +specified type. After calling this, setting a value under this field +can only succeed if its type matches the registered type of the field. + +Unlike ges_meta_container_register_meta(), no (initial) value is set +for this field, which means you can use this method to reserve the +space to be _optionally_ set later. + +Note that if a value has already been set for the field being +registered, then its type must match the registering type, and its +value will be left in place. If the field has no set value, then +you will likely want to include #GES_META_WRITABLE in @flags to allow +the value to be set later.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold @type values, with the given @flags.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The required value type for the registered field</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="set_boolean" c:identifier="ges_meta_container_set_boolean"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given boolean value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_date" c:identifier="ges_meta_container_set_date"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given date value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="GLib.Date" c:type="const GDate*"/> + </parameter> + </parameters> + </method> + <method name="set_date_time" c:identifier="ges_meta_container_set_date_time"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given date time value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="Gst.DateTime" c:type="const GstDateTime*"/> + </parameter> + </parameters> + </method> + <method name="set_double" c:identifier="ges_meta_container_set_double"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given double value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_float" c:identifier="ges_meta_container_set_float"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given float value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="set_int" c:identifier="ges_meta_container_set_int"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given int value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_int64" c:identifier="ges_meta_container_set_int64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given int64 value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_marker_list" c:identifier="ges_meta_container_set_marker_list" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given marker list value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="MarkerList" c:type="const GESMarkerList*"/> + </parameter> + </parameters> + </method> + <method name="set_meta" c:identifier="ges_meta_container_set_meta"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to a +copy of the given value. If the given @value is %NULL, the field +given by @meta_item is removed and %TRUE is returned.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item, or %NULL to +remove the corresponding field</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_string" c:identifier="ges_meta_container_set_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given string value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_uint" c:identifier="ges_meta_container_set_uint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given uint value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_uint64" c:identifier="ges_meta_container_set_uint64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given uint64 value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <glib:signal name="notify-meta" when="first" no-recurse="1" detailed="1" no-hooks="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">This is emitted for a meta container whenever the metadata under one +of its fields changes, is set for the first time, or is removed. In +the latter case, @value will be %NULL.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field that changed</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The new value under @key</doc> + <type name="GObject.Value"/> + </parameter> + </parameters> + </glib:signal> + </interface> + <record name="MetaContainerInterface" c:type="GESMetaContainerInterface" glib:is-gtype-struct-for="MetaContainer"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <field name="parent_iface"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="MetaFlag" glib:type-name="GESMetaFlag" glib:get-type="ges_meta_flag_get_type" c:type="GESMetaFlag"> + <member name="readable" value="1" c:identifier="GES_META_READABLE" glib:nick="readable"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The metadata is readable</doc> + </member> + <member name="writable" value="2" c:identifier="GES_META_WRITABLE" glib:nick="writable"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The metadata is writable</doc> + </member> + <member name="readwrite" value="3" c:identifier="GES_META_READ_WRITE" glib:nick="readwrite"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The metadata is readable and writable</doc> + </member> + </bitfield> + <callback name="MetaForeachFunc" c:type="GESMetaForeachFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">A method to be called on all of a meta container's fields.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="const GESMetaContainer*"/> + </parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The key for one of @container's fields</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The set value under @key</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">User data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="MultiFileSource" c:symbol-prefix="multi_file_source" c:type="GESMultiFileSource" deprecated="1" deprecated-version="1.18" parent="VideoSource" glib:type-name="GESMultiFileSource" glib:get-type="ges_multi_file_source_get_type" glib:type-struct="MultiFileSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.c">Outputs the video stream from a given image sequence. The start frame chosen +will be determined by the in-point property on the track element. + +This should not be used anymore, the `imagesequence://` protocol should be +used instead. Check the #imagesequencesrc GStreamer element for more +information.</doc> + <doc-deprecated xml:space="preserve">Use #GESUriSource instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_multi_file_source_new"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + <return-value transfer-ownership="none"> + <type name="MultiFileSource" c:type="GESMultiFileSource*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </constructor> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.c">The uri of the file/resource to use. You can set a start index, +a stop index and a sequence pattern. +The format is <multifile://start:stop\@location-pattern>. +The pattern uses printf string formating. + +Example uris: + +multifile:///home/you/image\%03d.jpg + +multifile://20:50@/home/you/sequence/\%04d.png</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="uri" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="MultiFileSourcePrivate" c:type="GESMultiFileSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="MultiFileSourceClass" c:type="GESMultiFileSourceClass" glib:is-gtype-struct-for="MultiFileSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + <field name="parent_class"> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="MultiFileSourcePrivate" c:type="GESMultiFileSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + </record> + <class name="Operation" c:symbol-prefix="operation" c:type="GESOperation" parent="TrackElement" abstract="1" glib:type-name="GESOperation" glib:get-type="ges_operation_get_type" glib:type-struct="OperationClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-operation.h">Base class for overlays, transitions, and effects</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="TrackElement" c:type="GESTrackElement"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="OperationPrivate" c:type="GESOperationPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="OperationClass" c:type="GESOperationClass" glib:is-gtype-struct-for="Operation"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="TrackElementClass" c:type="GESTrackElementClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="OperationClip" c:symbol-prefix="operation_clip" c:type="GESOperationClip" parent="Clip" abstract="1" glib:type-name="GESOperationClip" glib:get-type="ges_operation_clip_get_type" glib:type-struct="OperationClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-operation-clip.c">Operations are any kind of object that both outputs AND consumes data.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="Clip" c:type="GESClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="OperationClipPrivate" c:type="GESOperationClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="OperationClipClass" c:type="GESOperationClipClass" glib:is-gtype-struct-for="OperationClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="ClipClass" c:type="GESClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="OperationClipPrivate" c:type="GESOperationClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation-clip.h"/> + </record> + <record name="OperationPrivate" c:type="GESOperationPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation.h"/> + </record> + <class name="OverlayClip" c:symbol-prefix="overlay_clip" c:type="GESOverlayClip" parent="OperationClip" abstract="1" glib:type-name="GESOverlayClip" glib:get-type="ges_overlay_clip_get_type" glib:type-struct="OverlayClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.c">Overlays are objects which modify the underlying layer(s). + +Examples of overlays include text, image watermarks, or audio dubbing. + +Transitions, which change from one source to another over time, are +not considered overlays.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="OperationClip" c:type="GESOperationClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="OverlayClipPrivate" c:type="GESOverlayClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="OverlayClipClass" c:type="GESOverlayClipClass" glib:is-gtype-struct-for="OverlayClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.h">parent class</doc> + <type name="OperationClipClass" c:type="GESOperationClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="OverlayClipPrivate" c:type="GESOverlayClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.h"/> + </record> + <constant name="PADDING" value="4" c:type="GES_PADDING"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PADDING_LARGE" value="20" c:type="GES_PADDING_LARGE"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <type name="gint" c:type="gint"/> + </constant> + <class name="Pipeline" c:symbol-prefix="pipeline" c:type="GESPipeline" parent="Gst.Pipeline" glib:type-name="GESPipeline" glib:get-type="ges_pipeline_get_type" glib:type-struct="PipelineClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline can take an audio-video #GESTimeline and conveniently +link its #GESTrack-s to an internal #playsink element, for +preview/playback, and an internal #encodebin element, for rendering. +You can switch between these modes using ges_pipeline_set_mode(). + +You can choose the specific audio and video sinks used for previewing +the timeline by setting the #GESPipeline:audio-sink and +#GESPipeline:video-sink properties. + +You can set the encoding and save location used in rendering by calling +ges_pipeline_set_render_settings().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <implements name="Gst.ChildProxy"/> + <implements name="GstVideo.VideoOverlay"/> + <constructor name="new" c:identifier="ges_pipeline_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Creates a new pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The newly created pipeline.</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </return-value> + </constructor> + <method name="get_mode" c:identifier="ges_pipeline_get_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets the #GESPipeline:mode of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The current mode of @pipeline.</doc> + <type name="PipelineFlags" c:type="GESPipelineFlags"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_thumbnail" c:identifier="ges_pipeline_get_thumbnail"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets a sample from the pipeline of the currently displayed image in +preview, in the specified format. + +Note that if you use "ANY" caps for @caps, then the current format of +the image is used. You can retrieve these caps from the returned sample +with gst_sample_get_caps().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A sample of @self's current image preview in +the format given by @caps, or %NULL if an error prevented fetching the +sample.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in #GST_STATE_PLAYING or #GST_STATE_PAUSED</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Some caps to specifying the desired format, or +#GST_CAPS_ANY to use the native format</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="get_thumbnail_rgb24" c:identifier="ges_pipeline_get_thumbnail_rgb24"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets a sample from the pipeline of the currently displayed image in +preview, in the 24-bit "RGB" format and of the desired width and +height. + +See ges_pipeline_get_thumbnail().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A sample of @self's current image preview in +the "RGB" format, scaled to @width and @height, or %NULL if an error +prevented fetching the sample.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in %GST_STATE_PLAYING or %GST_STATE_PAUSED</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The requested pixel width of the image, or -1 to use the native +size</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The requested pixel height of the image, or -1 to use the +native size</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="preview_get_audio_sink" c:identifier="ges_pipeline_preview_get_audio_sink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets the #GESPipeline:audio-sink of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The audio sink used by @self for preview.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="preview_get_video_sink" c:identifier="ges_pipeline_preview_get_video_sink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets the #GESPipeline:video-sink of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The video sink used by @self for preview.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="preview_set_audio_sink" c:identifier="ges_pipeline_preview_set_audio_sink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Sets the #GESPipeline:audio-sink of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in #GST_STATE_NULL</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="sink" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A audio sink for @self to use for preview</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <method name="preview_set_video_sink" c:identifier="ges_pipeline_preview_set_video_sink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Sets the #GESPipeline:video-sink of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in #GST_STATE_NULL</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="sink" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A video sink for @self to use for preview</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <method name="save_thumbnail" c:identifier="ges_pipeline_save_thumbnail" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Saves the currently displayed image of the pipeline in preview to the +given location, in the specified dimensions and format.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">%TRUE if @self's current image preview was successfully saved +to @location using the given @format, @height and @width.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in %GST_STATE_PLAYING or %GST_STATE_PAUSED</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The requested pixel width of the image, or -1 to use the native +size</doc> + <type name="gint" c:type="int"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The requested pixel height of the image, or -1 to use the +native size</doc> + <type name="gint" c:type="int"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The desired mime type (for example, "image/jpeg")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="location" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The path to save the thumbnail to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_mode" c:identifier="ges_pipeline_set_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Sets the #GESPipeline:mode of the pipeline. + +Note that the pipeline will be set to #GST_STATE_NULL during this call to +perform the necessary changes. You will need to set the state again yourself +after calling this. + +> **NOTE**: [Rendering settings](ges_pipeline_set_render_settings) need to be +> set before setting @mode to #GES_PIPELINE_MODE_RENDER or +> #GES_PIPELINE_MODE_SMART_RENDER, the call to this method will fail +> otherwise.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">%TRUE if the mode of @pipeline was successfully set to @mode.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The mode to set for @pipeline</doc> + <type name="PipelineFlags" c:type="GESPipelineFlags"/> + </parameter> + </parameters> + </method> + <method name="set_render_settings" c:identifier="ges_pipeline_set_render_settings"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Specifies encoding setting to be used by the pipeline to render its +#GESPipeline:timeline, and where the result should be written to. + +This method **must** be called before setting the pipeline mode to +#GES_PIPELINE_MODE_RENDER.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">%TRUE if the settings were successfully set on @pipeline.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="output_uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The URI to save the #GESPipeline:timeline rendering +result to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The encoding to use for rendering the #GESPipeline:timeline</doc> + <type name="GstPbutils.EncodingProfile" c:type="GstEncodingProfile*"/> + </parameter> + </parameters> + </method> + <method name="set_timeline" c:identifier="ges_pipeline_set_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Takes the given timeline and sets it as the #GESPipeline:timeline for +the pipeline. + +Note that you should only call this method once on a given pipeline +because a pipeline can not have its #GESPipeline:timeline changed after +it has been set.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">%TRUE if @timeline was successfully given to @pipeline.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The timeline to set for @pipeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <property name="audio-filter" version="1.6.0" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The audio filter(s) to apply during playback in preview mode, +immediately before the #GESPipeline:audio-sink. This exposes the +#playsink:audio-filter property of the internal #playsink.</doc> + <type name="Gst.Element"/> + </property> + <property name="audio-sink" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The audio sink used for preview. This exposes the +#playsink:audio-sink property of the internal #playsink.</doc> + <type name="Gst.Element"/> + </property> + <property name="mode" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The pipeline's mode. In preview mode (for audio or video, or both) +the pipeline can display the timeline's content to an end user. In +rendering mode the pipeline can encode the timeline's content and +save it to a file.</doc> + <type name="PipelineFlags"/> + </property> + <property name="timeline" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The timeline used by this pipeline, whose content it will play and +render, or %NULL if the pipeline does not yet have a timeline. + +Note that after you set the timeline for the first time, subsequent +calls to change the timeline will fail.</doc> + <type name="Timeline"/> + </property> + <property name="video-filter" version="1.6.0" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The video filter(s) to apply during playback in preview mode, +immediately before the #GESPipeline:video-sink. This exposes the +#playsink:video-filter property of the internal #playsink.</doc> + <type name="Gst.Element"/> + </property> + <property name="video-sink" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The video sink used for preview. This exposes the +#playsink:video-sink property of the internal #playsink.</doc> + <type name="Gst.Element"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="Gst.Pipeline" c:type="GstPipeline"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="PipelinePrivate" c:type="GESPipelinePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="PipelineClass" c:type="GESPipelineClass" glib:is-gtype-struct-for="Pipeline"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <field name="parent_class" readable="0" private="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.h">parent class</doc> + <type name="Gst.PipelineClass" c:type="GstPipelineClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="PipelineFlags" glib:type-name="GESPipelineFlags" glib:get-type="ges_pipeline_flags_get_type" c:type="GESPipelineFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The various modes a #GESPipeline can be configured to.</doc> + <member name="audio_preview" value="1" c:identifier="GES_PIPELINE_MODE_PREVIEW_AUDIO" glib:nick="audio_preview"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Output the #GESPipeline:timeline's +audio to the soundcard</doc> + </member> + <member name="video_preview" value="2" c:identifier="GES_PIPELINE_MODE_PREVIEW_VIDEO" glib:nick="video_preview"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Output the #GESPipeline:timeline's +video to the screen</doc> + </member> + <member name="full_preview" value="3" c:identifier="GES_PIPELINE_MODE_PREVIEW" glib:nick="full_preview"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Output both the #GESPipeline:timeline's +audio and video to the soundcard and screen (default)</doc> + </member> + <member name="render" value="4" c:identifier="GES_PIPELINE_MODE_RENDER" glib:nick="render"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Render the #GESPipeline:timeline with +forced decoding (the underlying #encodebin has its +#encodebin:avoid-reencoding property set to %FALSE)</doc> + </member> + <member name="smart_render" value="8" c:identifier="GES_PIPELINE_MODE_SMART_RENDER" glib:nick="smart_render"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Render the #GESPipeline:timeline, +avoiding decoding/reencoding (the underlying #encodebin has its +#encodebin:avoid-reencoding property set to %TRUE). +> NOTE: Smart rendering can not work in tracks where #GESTrack:mixing +> is enabled.</doc> + </member> + </bitfield> + <record name="PipelinePrivate" c:type="GESPipelinePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + </record> + <class name="PitiviFormatter" c:symbol-prefix="pitivi_formatter" c:type="GESPitiviFormatter" deprecated="1" deprecated-version="1.0" parent="Formatter" glib:type-name="GESPitiviFormatter" glib:get-type="ges_pitivi_formatter_get_type" glib:type-struct="PitiviFormatterClass"> + <attribute name="doc.skip" value="true"/> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.c">This is a legacy format and you should avoid to use it. The formatter +is really not in good shape and is deprecated.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.h"/> + <implements name="Extractable"/> + <constructor name="new" c:identifier="ges_pitivi_formatter_new"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.h"/> + <return-value transfer-ownership="none"> + <type name="PitiviFormatter" c:type="GESPitiviFormatter*"/> + </return-value> + </constructor> + <field name="parent"> + <type name="Formatter" c:type="GESFormatter"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="PitiviFormatterPrivate" c:type="GESPitiviFormatterPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="PitiviFormatterClass" c:type="GESPitiviFormatterClass" glib:is-gtype-struct-for="PitiviFormatter"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="FormatterClass" c:type="GESFormatterClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="PitiviFormatterPrivate" c:type="GESPitiviFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.h"/> + </record> + <class name="Project" c:symbol-prefix="project" c:type="GESProject" parent="Asset" glib:type-name="GESProject" glib:get-type="ges_project_get_type" glib:type-struct="ProjectClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESProject is used to control a set of #GESAsset and is a +#GESAsset with `GES_TYPE_TIMELINE` as @extractable_type itself. That +means that you can extract #GESTimeline from a project as followed: + +|[ + GESProject *project; + GESTimeline *timeline; + + project = ges_project_new ("file:///path/to/a/valid/project/uri"); + + // Here you can connect to the various signal to get more infos about + // what is happening and recover from errors if possible + ... + + timeline = ges_asset_extract (GES_ASSET (project)); +]| + +The #GESProject class offers a higher level API to handle #GESAsset-s. +It lets you request new asset, and it informs you about new assets through +a set of signals. Also it handles problem such as missing files/missing +#GstElement and lets you try to recover from those. + +## Subprojects + +In order to add a subproject, the only thing to do is to add the subproject +to the main project: + +``` c +ges_project_add_asset (project, GES_ASSET (subproject)); +``` +then the subproject will be serialized in the project files. To use +the subproject in a timeline, you should use a #GESUriClip with the +same subproject URI. + +When loading a project with subproject, subprojects URIs will be temporary +writable local files. If you want to edit the subproject timeline, +you should retrieve the subproject from the parent project asset list and +extract the timeline with ges_asset_extract() and save it at +the same temporary location.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <constructor name="new" c:identifier="ges_project_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Creates a new #GESProject and sets its uri to @uri if provided. Note that +if @uri is not valid or %NULL, the uri of the project will then be set +the first time you save the project. If you then save the project to +other locations, it will never be updated again and the first valid URI is +the URI it will keep refering to.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A newly created #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The uri to be set after creating the project.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="asset_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="asset_loading"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="asset_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="loaded"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="loading" version="1.18"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.h">The self</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.h">The loading timeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="loading_error"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="missing_uri"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="wrong_asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_asset" c:identifier="ges_project_add_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Adds a #GESAsset to @project, the project will keep a reference on +@asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the asset could be added %FALSE it was already +in the project</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESAsset to add to @project</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <method name="add_encoding_profile" c:identifier="ges_project_add_encoding_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Adds @profile to the project. It lets you save in what format +the project has been renders and keep a reference to those formats. +Also, those formats will be saves to the project file when possible.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if @profile could be added, %FALSE otherwize</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GstEncodingProfile to add to the project. If a profile with +the same name already exists, it will be replaced</doc> + <type name="GstPbutils.EncodingProfile" c:type="GstEncodingProfile*"/> + </parameter> + </parameters> + </method> + <method name="add_formatter" c:identifier="ges_project_add_formatter" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Adds a formatter as used to load @project</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The project to add a formatter to</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A formatter used by @project</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + </parameters> + </method> + <method name="create_asset" c:identifier="ges_project_create_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Create and add a #GESAsset to @project. You should connect to the +"asset-added" signal to get the asset when it finally gets added to +@project</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the asset started to be added %FALSE it was already +in the project</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The id of the asset to create and add to @project</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GType of the asset to create</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="create_asset_sync" c:identifier="ges_project_create_asset_sync" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Create and add a #GESAsset to @project. You should connect to the +"asset-added" signal to get the asset when it finally gets added to +@project</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The newly created #GESAsset or %NULL.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The id of the asset to create and add to @project</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GType of the asset to create</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_asset" c:identifier="ges_project_get_asset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESAsset with +@id or %NULL if no asset with @id as an ID</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The id of the asset to retrieve</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The extractable_type of the asset +to retrieve from @object</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_loading_assets" c:identifier="ges_project_get_loading_assets"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Get the assets that are being loaded</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A set of loading asset +that will be added to @project. Note that those Asset are *not* loaded yet, +and thus can not be used</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Asset"/> + </type> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri" c:identifier="ges_project_get_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Retrieve the uri that is currently set on @project</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">a newly allocated string representing uri.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + </parameters> + </method> + <method name="list_assets" c:identifier="ges_project_list_assets"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">List all @asset contained in @project filtering per extractable_type +as defined by @filter. It copies the asset and thus will not be updated +in time.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The list of +#GESAsset the object contains</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Asset"/> + </type> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Type of assets to list, `GES_TYPE_EXTRACTABLE` will list +all assets</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="list_encoding_profiles" c:identifier="ges_project_list_encoding_profiles"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Lists the encoding profile that have been set to @project. The first one +is the latest added.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The +list of #GstEncodingProfile used in @project</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="GstPbutils.EncodingProfile"/> + </type> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + </parameters> + </method> + <method name="load" c:identifier="ges_project_load" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Loads @project into @timeline</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the project could be loaded %FALSE otherwize.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject that has an @uri set already</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A blank timeline to load @project into</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <method name="remove_asset" c:identifier="ges_project_remove_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">remove a @asset to from @project.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the asset could be removed %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESAsset to remove from @project</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <method name="save" c:identifier="ges_project_save" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Save the timeline of @project to @uri. You should make sure that @timeline +is one of the timelines that have been extracted from @project +(using ges_asset_extract (@project);)</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the project could be save, %FALSE otherwize</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject to save</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESTimeline to save, it must have been extracted from @project</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The uri where to save @project and @timeline</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="formatter_asset" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The formatter asset to +use or %NULL. If %NULL, will try to save in the same format as the one +from which the timeline as been loaded or default to the best formatter +as defined in #ges_find_formatter_for_uri</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent"> + <type name="Asset" c:type="GESAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ProjectPrivate" c:type="GESProjectPrivate*"/> + </field> + <field name="__ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="asset-added" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESAsset that has been added to @project</doc> + <type name="Asset"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="asset-loading" when="last" version="1.8"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESAsset that started loading</doc> + <type name="Asset"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="asset-removed" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESAsset that has been removed from @project</doc> + <type name="Asset"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="error-loading" when="last" version="1.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The timeline that failed loading</doc> + <type name="Timeline"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GError defining the error that occured</doc> + <type name="GLib.Error"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="error-loading-asset" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Informs you that a #GESAsset could not be created. In case of +missing GStreamer plugins, the error will be set to #GST_CORE_ERROR +#GST_CORE_ERROR_MISSING_PLUGIN</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GError defining the error that occured, might be %NULL</doc> + <type name="GLib.Error"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The @id of the asset that failed loading</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The @extractable_type of the asset that +failed loading</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="loaded" when="first"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESTimeline that completed loading</doc> + <type name="Timeline"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="loading" when="first" version="1.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESTimeline that started loading</doc> + <type name="Timeline"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="missing-uri" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">|[ +static gchar +source_moved_cb (GESProject *project, GError *error, GESAsset *asset_with_error) +{ + return g_strdup ("file:///the/new/uri.ogg"); +} + +static int +main (int argc, gchar ** argv) +{ + GESTimeline *timeline; + GESProject *project = ges_project_new ("file:///some/uri.xges"); + + g_signal_connect (project, "missing-uri", source_moved_cb, NULL); + timeline = ges_asset_extract (GES_ASSET (project)); +} +]|</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The new URI of @wrong_asset</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The error that happened</doc> + <type name="GLib.Error"/> + </parameter> + <parameter name="wrong_asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The asset with the wrong ID, you should us it and its content +only to find out what the new location is.</doc> + <type name="Asset"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="ProjectClass" c:type="GESProjectClass" glib:is-gtype-struct-for="Project"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <field name="parent_class"> + <type name="AssetClass" c:type="GESAssetClass"/> + </field> + <field name="asset_added"> + <callback name="asset_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="asset_loading"> + <callback name="asset_loading"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="asset_removed"> + <callback name="asset_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="missing_uri"> + <callback name="missing_uri"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="wrong_asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="loading_error"> + <callback name="loading_error"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </callback> + </field> + <field name="loaded"> + <callback name="loaded"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="loading"> + <callback name="loading"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.h">The self</doc> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.h">The loading timeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ProjectPrivate" c:type="GESProjectPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + </record> + <class name="Source" c:symbol-prefix="source" c:type="GESSource" parent="TrackElement" glib:type-name="GESSource" glib:get-type="ges_source_get_type" glib:type-struct="SourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">Base class for single-media sources</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <virtual-method name="create_source" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">Creates the GstElement to put in the source topbin. Other elements will be +queued, like a volume. In the case of a AudioUriSource, for example, the +subclass will return a decodebin, and we will append a volume.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The source element to use.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The #GESAudioSource</doc> + <type name="Source" c:type="GESSource*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="select_pad" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">Check whether @pad should be exposed/used.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">%TRUE if @pad should be used %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The @source for which to check if @pad should be used or not</doc> + <type name="Source" c:type="GESSource*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The pad to check</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </virtual-method> + <field name="parent" readable="0" private="1"> + <type name="TrackElement" c:type="GESTrackElement"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="SourcePrivate" c:type="GESSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="SourceClass" c:type="GESSourceClass" glib:is-gtype-struct-for="Source"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="TrackElementClass" c:type="GESTrackElementClass"/> + </field> + <field name="select_pad"> + <callback name="select_pad"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">%TRUE if @pad should be used %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The @source for which to check if @pad should be used or not</doc> + <type name="Source" c:type="GESSource*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The pad to check</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_source"> + <callback name="create_source"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The source element to use.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The #GESAudioSource</doc> + <type name="Source" c:type="GESSource*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="SourceClip" c:symbol-prefix="source_clip" c:type="GESSourceClip" parent="Clip" glib:type-name="GESSourceClip" glib:get-type="ges_source_clip_get_type" glib:type-struct="SourceClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source-clip.c">#GESSourceClip-s are clips whose core elements are #GESSource-s. + +## Effects + +#GESSourceClip-s can also have #GESBaseEffect-s added as non-core +elements. These effects are applied to the core sources of the clip +that they share a #GESTrack with. See #GESClip for how to add and move +these effects from the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new_time_overlay" c:identifier="ges_source_clip_new_time_overlay" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-time-overlay-clip.c">Creates a new #GESSourceClip that renders a time overlay on top</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-time-overlay-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-time-overlay-clip.c">The newly created #GESSourceClip, +or %NULL if there was an error.</doc> + <type name="SourceClip" c:type="GESSourceClip*"/> + </return-value> + </constructor> + <field name="parent"> + <type name="Clip" c:type="GESClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="SourceClipPrivate" c:type="GESSourceClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <class name="SourceClipAsset" c:symbol-prefix="source_clip_asset" c:type="GESSourceClipAsset" version="1.18" parent="ClipAsset" glib:type-name="GESSourceClipAsset" glib:get-type="ges_source_clip_asset_get_type" glib:type-struct="SourceClipAssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source-clip-asset.h">An asset types from which #GESSourceClip will be extracted</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <field name="parent_instance"> + <type name="ClipAsset" c:type="GESClipAsset"/> + </field> + </class> + <record name="SourceClipAssetClass" c:type="GESSourceClipAssetClass" glib:is-gtype-struct-for="SourceClipAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip-asset.h"/> + <field name="parent_class"> + <type name="ClipAssetClass" c:type="GESClipAssetClass"/> + </field> + </record> + <record name="SourceClipClass" c:type="GESSourceClipClass" glib:is-gtype-struct-for="SourceClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="ClipClass" c:type="GESClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="SourceClipPrivate" c:type="GESSourceClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip.h"/> + </record> + <record name="SourcePrivate" c:type="GESSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + </record> + <function-macro name="TIMELINE_ELEMENT_DURATION" c:identifier="GES_TIMELINE_ELEMENT_DURATION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:duration of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_END" c:identifier="GES_TIMELINE_ELEMENT_END" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The end position of @obj: #GESTimelineElement:start + +#GESTimelineElement:duration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_INPOINT" c:identifier="GES_TIMELINE_ELEMENT_INPOINT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:in-point of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_LAYER_PRIORITY" c:identifier="GES_TIMELINE_ELEMENT_LAYER_PRIORITY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">See #ges_timeline_element_get_layer_priority.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The object to retrieve the layer priority from</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_MAX_DURATION" c:identifier="GES_TIMELINE_ELEMENT_MAX_DURATION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:max-duration of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_NAME" c:identifier="GES_TIMELINE_ELEMENT_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:name of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <constant name="TIMELINE_ELEMENT_NO_LAYER_PRIORITY" value="4294967295" c:type="GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">Layer priority when a timeline element is not in any layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <type name="guint32" c:type="guint32"/> + </constant> + <function-macro name="TIMELINE_ELEMENT_PARENT" c:identifier="GES_TIMELINE_ELEMENT_PARENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:parent of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_PRIORITY" c:identifier="GES_TIMELINE_ELEMENT_PRIORITY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:priority of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_START" c:identifier="GES_TIMELINE_ELEMENT_START" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:start of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_TIMELINE" c:identifier="GES_TIMELINE_ELEMENT_TIMELINE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:timeline of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_GET_LAYERS" c:identifier="GES_TIMELINE_GET_LAYERS" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_GET_TRACKS" c:identifier="GES_TIMELINE_GET_TRACKS" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACK_ELEMENT_CLASS_DEFAULT_HAS_INTERNAL_SOURCE" c:identifier="GES_TRACK_ELEMENT_CLASS_DEFAULT_HAS_INTERNAL_SOURCE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">What the default #GESTrackElement:has-internal-source value should be +for new elements from this class.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <parameters> + <parameter name="klass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">A #GESTrackElementClass</doc> + </parameter> + </parameters> + </function-macro> + <class name="TestClip" c:symbol-prefix="test_clip" c:type="GESTestClip" parent="SourceClip" glib:type-name="GESTestClip" glib:get-type="ges_test_clip_get_type" glib:type-struct="TestClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Useful for testing purposes. + +## Asset + +The default asset ID is GESTestClip, but the framerate and video +size can be overridden using an ID of the form: + +``` +framerate=60/1, width=1920, height=1080, max-duration=5.0 +``` +Note: `max-duration` can be provided in seconds as float, or as GstClockTime +as guint64 or gint.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_test_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Creates a new #GESTestClip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The newly created #GESTestClip, +or %NULL if there was an error.</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </return-value> + </constructor> + <constructor name="new_for_nick" c:identifier="ges_test_clip_new_for_nick"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Creates a new #GESTestClip for the provided @nick.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The newly created #GESTestClip, +or %NULL if there was an error.</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </return-value> + <parameters> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the nickname for which to create the #GESTestClip</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="get_frequency" c:identifier="ges_test_clip_get_frequency"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Get the frequency @self generates.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The frequency @self generates. See audiotestsrc element.</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">a #GESTestClip</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_volume" c:identifier="ges_test_clip_get_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Get the volume of the test audio signal applied on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The volume of the test audio signal applied on @self.</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">a #GESTestClip</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_vpattern" c:identifier="ges_test_clip_get_vpattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Get the #GESVideoTestPattern which is applied on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The #GESVideoTestPattern which is applied on @self.</doc> + <type name="VideoTestPattern" c:type="GESVideoTestPattern"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">a #GESTestClip</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_muted" c:identifier="ges_test_clip_is_muted"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Let you know if the audio track of @self is muted or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Whether the audio track of @self is muted or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">a #GESTestClip</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_frequency" c:identifier="ges_test_clip_set_frequency"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Sets the frequency to generate. See audiotestsrc element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESTestClip to set the frequency on</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + <parameter name="freq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the frequency you want to use on @self</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_mute" c:identifier="ges_test_clip_set_mute"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Sets whether the audio track of this clip is muted or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESTestClip on which to mute or unmute the audio track</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + <parameter name="mute" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">%TRUE to mute the audio track, %FALSE to unmute it</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_volume" c:identifier="ges_test_clip_set_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Sets the volume of the test audio signal.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESTestClip to set the volume on</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + <parameter name="volume" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the volume of the audio signal you want to use on @self</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_vpattern" c:identifier="ges_test_clip_set_vpattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Sets which video pattern to display on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESTestClip to set the pattern on</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + <parameter name="vpattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESVideoTestPattern to use on @self</doc> + <type name="VideoTestPattern" c:type="GESVideoTestPattern"/> + </parameter> + </parameters> + </method> + <property name="freq" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The frequency to generate for audio track elements.</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="mute" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Whether the sound will be played or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="volume" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The volume for the audio track elements.</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="vpattern" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Video pattern to display in video track elements.</doc> + <type name="VideoTestPattern"/> + </property> + <field name="parent"> + <type name="SourceClip" c:type="GESSourceClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TestClipPrivate" c:type="GESTestClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TestClipClass" c:type="GESTestClipClass" glib:is-gtype-struct-for="TestClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClipClass" c:type="GESSourceClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TestClipPrivate" c:type="GESTestClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + </record> + <enumeration name="TextHAlign" glib:type-name="GESTextHAlign" glib:get-type="ges_text_halign_get_type" c:type="GESTextHAlign"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Horizontal alignment of the text.</doc> + <member name="left" value="0" c:identifier="GES_TEXT_HALIGN_LEFT" glib:nick="left"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">align text left</doc> + </member> + <member name="center" value="1" c:identifier="GES_TEXT_HALIGN_CENTER" glib:nick="center"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">align text center</doc> + </member> + <member name="right" value="2" c:identifier="GES_TEXT_HALIGN_RIGHT" glib:nick="right"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">align text right</doc> + </member> + <member name="position" value="4" c:identifier="GES_TEXT_HALIGN_POSITION" glib:nick="position"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">align text on xpos position</doc> + </member> + <member name="absolute" value="5" c:identifier="GES_TEXT_HALIGN_ABSOLUTE" glib:nick="absolute"> + </member> + </enumeration> + <class name="TextOverlay" c:symbol-prefix="text_overlay" c:type="GESTextOverlay" parent="Operation" glib:type-name="GESTextOverlay" glib:get-type="ges_text_overlay_get_type" glib:type-struct="TextOverlayClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_text_overlay_new" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Creates a new #GESTextOverlay.</doc> + <doc-deprecated xml:space="preserve">This should never be called by applications as this will +be created by clips.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The newly created #GESTextOverlay or +%NULL if something went wrong.</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </return-value> + </constructor> + <method name="get_color" c:identifier="ges_text_overlay_get_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the color used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The color used by @source.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_font_desc" c:identifier="ges_text_overlay_get_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the pango font description currently set on @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The pango font description currently set on @source.</doc> + <type name="utf8" c:type="const char*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_halignment" c:identifier="ges_text_overlay_get_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the horizontal aligment used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The horizontal aligment used by @source.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text" c:identifier="ges_text_overlay_get_text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the text currently set on @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The text currently set on @source.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_valignment" c:identifier="ges_text_overlay_get_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the vertical aligment used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The vertical aligment used by @source.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_xpos" c:identifier="ges_text_overlay_get_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the horizontal position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The horizontal position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ypos" c:identifier="ges_text_overlay_get_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the vertical position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The vertical position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_color" c:identifier="ges_text_overlay_set_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the color of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_font_desc" c:identifier="ges_text_overlay_set_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the pango font description of the text this track element +will render.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the pango font description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_halignment" c:identifier="ges_text_overlay_set_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the horizontal aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set text on</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="halign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The #GESTextHAlign defining the horizontal alignment +of the text render by @self.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </parameter> + </parameters> + </method> + <method name="set_text" c:identifier="ges_text_overlay_set_text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the text this track element will render.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set text on</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the text to render. an internal copy of this text will be +made.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_valignment" c:identifier="ges_text_overlay_set_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the vertical aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set text on</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="valign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The #GESTextVAlign defining the vertical alignment +of the text render by @self.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </parameter> + </parameters> + </method> + <method name="set_xpos" c:identifier="ges_text_overlay_set_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the horizontal position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The horizontal position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_ypos" c:identifier="ges_text_overlay_set_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the vertical position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The vertical position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="Operation" c:type="GESOperation"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TextOverlayPrivate" c:type="GESTextOverlayPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TextOverlayClass" c:type="GESTextOverlayClass" glib:is-gtype-struct-for="TextOverlay"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <field name="parent_class"> + <type name="OperationClass" c:type="GESOperationClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="TextOverlayClip" c:symbol-prefix="text_overlay_clip" c:type="GESTextOverlayClip" parent="OverlayClip" glib:type-name="GESTextOverlayClip" glib:get-type="ges_text_overlay_clip_get_type" glib:type-struct="TextOverlayClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Renders text onto the next lower priority stream using textrender.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_text_overlay_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Creates a new #GESTextOverlayClip</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The newly created +#GESTextOverlayClip, or %NULL if there was an error.</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </return-value> + </constructor> + <method name="get_color" c:identifier="ges_text_overlay_clip_get_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the color used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The color used by @source.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_font_desc" c:identifier="ges_text_overlay_clip_get_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the pango font description used by @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The pango font description used by @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_halignment" c:identifier="ges_text_overlay_clip_get_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the horizontal aligment used by @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The horizontal aligment used by @self.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text" c:identifier="ges_text_overlay_clip_get_text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the text currently set on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The text currently set on @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_valignment" c:identifier="ges_text_overlay_clip_get_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the vertical aligment used by @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The vertical aligment used by @self.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_xpos" c:identifier="ges_text_overlay_clip_get_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the horizontal position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The horizontal position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ypos" c:identifier="ges_text_overlay_clip_get_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the vertical position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The vertical position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_color" c:identifier="ges_text_overlay_clip_set_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the color of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_font_desc" c:identifier="ges_text_overlay_clip_set_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the pango font description of the text</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip*</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the pango font description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_halign" c:identifier="ges_text_overlay_clip_set_halign"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the horizontal aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set horizontal alignement of text on</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="halign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">#GESTextHAlign</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </parameter> + </parameters> + </method> + <method name="set_text" c:identifier="ges_text_overlay_clip_set_text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the text this clip will render.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set text on</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the text to render. an internal copy of this text will be +made.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_valign" c:identifier="ges_text_overlay_clip_set_valign"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the vertical aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set vertical alignement of text on</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="valign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">#GESTextVAlign</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </parameter> + </parameters> + </method> + <method name="set_xpos" c:identifier="ges_text_overlay_clip_set_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the horizontal position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The horizontal position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_ypos" c:identifier="ges_text_overlay_clip_set_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the vertical position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The vertical position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <property name="color" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The color of the text</doc> + <type name="guint" c:type="guint"/> + </property> + <property name="font-desc" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Pango font description string</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="halignment" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Horizontal alignment of the text</doc> + <type name="TextHAlign"/> + </property> + <property name="text" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The text to diplay</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="valignment" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Vertical alignent of the text</doc> + <type name="TextVAlign"/> + </property> + <property name="xpos" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The horizontal position of the text</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="ypos" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The vertical position of the text</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <field name="parent"> + <type name="OverlayClip" c:type="GESOverlayClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TextOverlayClipPrivate" c:type="GESTextOverlayClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TextOverlayClipClass" c:type="GESTextOverlayClipClass" glib:is-gtype-struct-for="TextOverlayClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="OverlayClipClass" c:type="GESOverlayClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TextOverlayClipPrivate" c:type="GESTextOverlayClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + </record> + <record name="TextOverlayPrivate" c:type="GESTextOverlayPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + </record> + <enumeration name="TextVAlign" glib:type-name="GESTextVAlign" glib:get-type="ges_text_valign_get_type" c:type="GESTextVAlign"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Vertical alignment of the text.</doc> + <member name="baseline" value="0" c:identifier="GES_TEXT_VALIGN_BASELINE" glib:nick="baseline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on the baseline</doc> + </member> + <member name="bottom" value="1" c:identifier="GES_TEXT_VALIGN_BOTTOM" glib:nick="bottom"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on the bottom</doc> + </member> + <member name="top" value="2" c:identifier="GES_TEXT_VALIGN_TOP" glib:nick="top"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on top</doc> + </member> + <member name="position" value="3" c:identifier="GES_TEXT_VALIGN_POSITION" glib:nick="position"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on ypos position</doc> + </member> + <member name="center" value="4" c:identifier="GES_TEXT_VALIGN_CENTER" glib:nick="center"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on the center</doc> + </member> + <member name="absolute" value="5" c:identifier="GES_TEXT_VALIGN_ABSOLUTE" glib:nick="absolute"> + </member> + </enumeration> + <class name="Timeline" c:symbol-prefix="timeline" c:type="GESTimeline" parent="Gst.Bin" glib:type-name="GESTimeline" glib:get-type="ges_timeline_get_type" glib:type-struct="TimelineClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">#GESTimeline is the central object for any multimedia timeline. + +A timeline is composed of a set of #GESTrack-s and a set of +#GESLayer-s, which are added to the timeline using +ges_timeline_add_track() and ges_timeline_append_layer(), respectively. + +The contained tracks define the supported types of the timeline +and provide the media output. Essentially, each track provides an +additional source #GstPad. + +Most usage of a timeline will likely only need a single #GESAudioTrack +and/or a single #GESVideoTrack. You can create such a timeline with +ges_timeline_new_audio_video(). After this, you are unlikely to need to +work with the tracks directly. + +A timeline's layers contain #GESClip-s, which in turn control the +creation of #GESTrackElement-s, which are added to the timeline's +tracks. See #GESTimeline::select-tracks-for-object if you wish to have +more control over which track a clip's elements are added to. + +The layers are ordered, with higher priority layers having their +content prioritised in the tracks. This ordering can be changed using +ges_timeline_move_layer(). + +## Editing + +See #GESTimelineElement for the various ways the elements of a timeline +can be edited. + +If you change the timing or ordering of a timeline's +#GESTimelineElement-s, then these changes will not actually be taken +into account in the output of the timeline's tracks until the +ges_timeline_commit() method is called. This allows you to move its +elements around, say, in response to an end user's mouse dragging, with +little expense before finalising their effect on the produced data. + +## Overlaps and Auto-Transitions + +There are certain restrictions placed on how #GESSource-s may overlap +in a #GESTrack that belongs to a timeline. These will be enforced by +GES, so the user will not need to keep track of them, but they should +be aware that certain edits will be refused as a result if the overlap +rules would be broken. + +Consider two #GESSource-s, `A` and `B`, with start times `startA` and +`startB`, and end times `endA` and `endB`, respectively. The start +time refers to their #GESTimelineElement:start, and the end time is +their #GESTimelineElement:start + #GESTimelineElement:duration. These +two sources *overlap* if: + ++ they share the same #GESTrackElement:track (non %NULL), which belongs + to the timeline; ++ they share the same #GES_TIMELINE_ELEMENT_LAYER_PRIORITY; and ++ `startA < endB` and `startB < endA `. + +Note that when `startA = endB` or `startB = endA` then the two sources +will *touch* at their edges, but are not considered overlapping. + +If, in addition, `startA < startB < endA`, then we can say that the +end of `A` overlaps the start of `B`. + +If, instead, `startA <= startB` and `endA >= endB`, then we can say +that `A` fully overlaps `B`. + +The overlap rules for a timeline are that: + +1. One source cannot fully overlap another source. +2. A source can only overlap the end of up to one other source at its + start. +3. A source can only overlap the start of up to one other source at its + end. + +The last two rules combined essentially mean that at any given timeline +position, only up to two #GESSource-s may overlap at that position. So +triple or more overlaps are not allowed. + +If you switch on #GESTimeline:auto-transition, then at any moment when +the end of one source (the first source) overlaps the start of another +(the second source), a #GESTransitionClip will be automatically created +for the pair in the same layer and it will cover their overlap. If the +two elements are edited in a way such that the end of the first source +no longer overlaps the start of the second, the transition will be +automatically removed from the timeline. However, if the two sources +still overlap at the same edges after the edit, then the same +transition object will be kept, but with its timing and layer adjusted +accordingly. + +NOTE: if you know what you are doing and want to be in full control of the +timeline layout, you can disable the edit APIs with +#ges_timeline_disable_edit_apis. + +## Saving + +To save/load a timeline, you can use the ges_timeline_load_from_uri() +and ges_timeline_save_to_uri() methods that use the default format. + +## Playing + +A timeline is a #GstBin with a source #GstPad for each of its +tracks, which you can fetch with ges_timeline_get_pad_for_track(). You +will likely want to link these to some compatible sink #GstElement-s to +be able to play or capture the content of the timeline. + +You can use a #GESPipeline to easily preview/play the timeline's +content, or render it to a file.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <implements name="Gst.ChildProxy"/> + <constructor name="new" c:identifier="ges_timeline_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Creates a new empty timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The new timeline.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + </constructor> + <constructor name="new_audio_video" c:identifier="ges_timeline_new_audio_video"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-utils.c">Creates a new timeline containing a single #GESAudioTrack and a +single #GESVideoTrack.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-utils.c">The new timeline.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + </constructor> + <constructor name="new_from_uri" c:identifier="ges_timeline_new_from_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Creates a timeline from the given URI.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A new timeline if the uri was loaded +successfully, or %NULL if the uri could not be loaded.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The URI to load from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="group_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="group" transfer-ownership="none"> + <type name="Group" c:type="GESGroup*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="group_removed" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="group" transfer-ownership="none"> + <type name="Group" c:type="GESGroup*"/> + </parameter> + <parameter name="children" transfer-ownership="none"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="layer_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="layer_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="track_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="track_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_layer" c:identifier="ges_timeline_add_layer" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Add a layer to the timeline. + +If the layer contains #GESClip-s, then this may trigger the creation of +their core track element children for the timeline's tracks, and the +placement of the clip's children in the tracks of the timeline using +#GESTimeline::select-tracks-for-object. Some errors may occur if this +would break one of the configuration rules of the timeline in one of +its tracks. In such cases, some track elements would fail to be added +to their tracks, but this method would still return %TRUE. As such, it +is advised that you only add clips to layers that already part of a +timeline. In such situations, ges_layer_add_clip() is able to fail if +adding the clip would cause such an error.</doc> + <doc-deprecated xml:space="preserve">This method requires you to ensure the layer's +#GESLayer:priority will be unique to the timeline. Use +ges_timeline_append_layer() and ges_timeline_move_layer() instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @layer was properly added.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer to add</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </method> + <method name="add_track" c:identifier="ges_timeline_add_track"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Add a track to the timeline. + +If the timeline already contains clips, then this may trigger the +creation of their core track element children for the track, and the +placement of the clip's children in the track of the timeline using +#GESTimeline::select-tracks-for-object. Some errors may occur if this +would break one of the configuration rules for the timeline in the +track. In such cases, some track elements would fail to be added to the +track, but this method would still return %TRUE. As such, it is advised +that you avoid adding tracks to timelines that already contain clips.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @track was properly added.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track to add</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="append_layer" c:identifier="ges_timeline_append_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Append a newly created layer to the timeline. The layer will +be added at the lowest #GESLayer:priority (numerically, the highest).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The newly created layer.</doc> + <type name="Layer" c:type="GESLayer*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="commit" c:identifier="ges_timeline_commit"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Commit all the pending changes of the clips contained in the +timeline. + +When changes happen in a timeline, they are not immediately executed +internally, in a way that effects the output data of the timeline. You +should call this method when you are done with a set of changes and you +want them to be executed. + +Any pending changes will be executed in the backend. The +#GESTimeline::commited signal will be emitted once this has completed. +You should not try to change the state of the timeline, seek it or add +tracks to it before receiving this signal. You can use +ges_timeline_commit_sync() if you do not want to perform other tasks in +the mean time. + +Note that all the pending changes will automatically be executed when +the timeline goes from #GST_STATE_READY to #GST_STATE_PAUSED, which is +usually triggered by a corresponding state changes in a containing +#GESPipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if pending changes were committed, or %FALSE if nothing +needed to be committed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="commit_sync" c:identifier="ges_timeline_commit_sync"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Commit all the pending changes of the clips contained in the +timeline and wait for the changes to complete. + +See ges_timeline_commit().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if pending changes were committed, or %FALSE if nothing +needed to be committed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="disable_edit_apis" c:identifier="ges_timeline_disable_edit_apis" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">WARNING: When using that mode, GES won't guarantee the coherence of the +timeline. You need to ensure that the rules described in the [Overlaps and +auto transitions](#overlaps-and-autotransitions) section are respected any time +the timeline is [commited](ges_timeline_commit) (otherwise playback will most +probably fail in different ways). + +When disabling editing APIs, GES won't be able to enforce the rules that +makes the timeline overall state to be valid but some feature won't be +usable: + * #GESTimeline:snapping-distance + * #GESTimeline:auto-transition</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="disable_edit_apis" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE to disable all the edit APIs so the user is in full +control of ensuring timeline state validity %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="freeze_commit" c:identifier="ges_timeline_freeze_commit" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Freezes the timeline from being committed. This is usually needed while the +timeline is being rendered to ensure that not change to the timeline are +taken into account during that moment. Once the rendering is done, you +should call #ges_timeline_thaw_commit so that committing becomes possible +again and any call to `commit()` that happened during the rendering is +actually taken into account.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_auto_transition" c:identifier="ges_timeline_get_auto_transition"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Gets #GESTimeline:auto-transition for the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The auto-transition of @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="ges_timeline_get_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Get the current #GESTimeline:duration of the timeline</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The current duration of @timeline.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_edit_apis_disabled" c:identifier="ges_timeline_get_edit_apis_disabled" version="1.22"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if edit APIs are disabled, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_element" c:identifier="ges_timeline_get_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Gets the element contained in the timeline with the given name.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The timeline element in @timeline +with the given @name, or %NULL if it was not found.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The name of the element to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_frame_at" c:identifier="ges_timeline_get_frame_at" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">This method allows you to convert a timeline #GstClockTime into its +corresponding #GESFrameNumber in the timeline's output.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The frame number @timestamp corresponds to.</doc> + <type name="FrameNumber" c:type="GESFrameNumber"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The timestamp to get the corresponding frame number of</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_frame_time" c:identifier="ges_timeline_get_frame_time" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">This method allows you to convert a timeline output frame number into a +timeline #GstClockTime. For example, this time could be used to seek to a +particular frame in the timeline's output, or as the edit position for +an element within the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The timestamp corresponding to @frame_number in the output of @self.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The self on which to retrieve the timestamp for @frame_number</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="frame_number" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The frame number to get the corresponding timestamp of in the + timeline coordinates</doc> + <type name="FrameNumber" c:type="GESFrameNumber"/> + </parameter> + </parameters> + </method> + <method name="get_groups" c:identifier="ges_timeline_get_groups"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Get the list of #GESGroup-s present in the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The list of +groups that contain clips present in @timeline's layers. +Must not be changed.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Group"/> + </type> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_layer" c:identifier="ges_timeline_get_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Retrieve the layer whose index in the timeline matches the given +priority.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer with the given +@priority, or %NULL if none was found. + +Since 1.6</doc> + <type name="Layer" c:type="GESLayer*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline to retrieve a layer from</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The priority/index of the layer to find</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_layers" c:identifier="ges_timeline_get_layers"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Get the list of #GESLayer-s present in the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The list of +layers present in @timeline sorted by priority.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pad_for_track" c:identifier="ges_timeline_get_pad_for_track"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Search for the #GstPad corresponding to the given timeline's track. +You can link to this pad to receive the output data of the given track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The pad corresponding to @track, +or %NULL if there is an error.</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A track</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="get_snapping_distance" c:identifier="ges_timeline_get_snapping_distance"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Gets the #GESTimeline:snapping-distance for the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The snapping distance (in nanoseconds) of @timeline.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_track_for_pad" c:identifier="ges_timeline_get_track_for_pad"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Search for the #GESTrack corresponding to the given timeline's pad.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track corresponding to @pad, +or %NULL if there is an error.</doc> + <type name="Track" c:type="GESTrack*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A pad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="get_tracks" c:identifier="ges_timeline_get_tracks"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Get the list of #GESTrack-s used by the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The list of tracks +used by @timeline.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Track"/> + </type> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_empty" c:identifier="ges_timeline_is_empty"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Check whether the timeline is empty or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @timeline is empty.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="load_from_uri" c:identifier="ges_timeline_load_from_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Loads the contents of URI into the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if the timeline was loaded successfully from @uri.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">An empty #GESTimeline into which to load the formatter</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The URI to load from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="move_layer" c:identifier="ges_timeline_move_layer" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Moves a layer within the timeline to the index given by +@new_layer_priority. +An index of 0 corresponds to the layer with the highest priority in a +timeline. If @new_layer_priority is greater than the number of layers +present in the timeline, it will become the lowest priority layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A layer within @timeline, whose priority should be changed</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The new index for @layer</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="paste_element" c:identifier="ges_timeline_paste_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Paste an element inside the timeline. @element **must** be the return of +ges_timeline_element_copy() with `deep=TRUE`, +and it should not be changed before pasting. @element itself is not +placed in the timeline, instead a new element is created, alike to the +originally copied element. Note that the originally copied element must +also lie within @timeline, at both the point of copying and pasting. + +Pasting may fail if it would place the timeline in an unsupported +configuration. + +After calling this function @element should not be used. In particular, +@element can **not** be pasted again. Instead, you can copy the +returned element and paste that copy (although, this is only possible +if the paste was successful). + +See also ges_timeline_element_paste().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The newly created element, or +%NULL if pasting fails.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline onto which @element should be pasted</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The element to paste</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The position in the timeline @element should be pasted to, +i.e. the #GESTimelineElement:start value for the pasted element.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer into which the element should be pasted. +-1 means paste to the same layer from which @element has been copied from</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="remove_layer" c:identifier="ges_timeline_remove_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Removes a layer from the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @layer was properly removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer to remove</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </method> + <method name="remove_track" c:identifier="ges_timeline_remove_track"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Remove a track from the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @track was properly removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track to remove</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="save_to_uri" c:identifier="ges_timeline_save_to_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Saves the timeline to the given location. If @formatter_asset is %NULL, +the method will attempt to save in the same format the timeline was +loaded from, before defaulting to the formatter with highest rank.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @timeline was successfully saved to @uri.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The location to save to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="formatter_asset" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The formatter asset to use, or %NULL</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_auto_transition" c:identifier="ges_timeline_set_auto_transition"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Sets #GESTimeline:auto-transition for the timeline. This will also set +the corresponding #GESLayer:auto-transition for all of the timeline's +layers to the same value. See ges_layer_set_auto_transition() if you +wish to set the layer's #GESLayer:auto-transition individually.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="auto_transition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Whether transitions should be automatically added +to @timeline's layers</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_snapping_distance" c:identifier="ges_timeline_set_snapping_distance"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Sets #GESTimeline:snapping-distance for the timeline. This new value +will only effect future snappings and will not be used to snap the +current element positions within the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="snapping_distance" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The snapping distance to use (in nanoseconds)</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="thaw_commit" c:identifier="ges_timeline_thaw_commit" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Thaw the timeline so that comiting becomes possible +again and any call to `commit()` that happened during the rendering is +actually taken into account.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <property name="auto-transition" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Whether to automatically create a transition whenever two +#GESSource-s overlap in a track of the timeline. See +#GESLayer:auto-transition if you want this to only happen in some +layers.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The current duration (in nanoseconds) of the timeline. A timeline +'starts' at time 0, so this is the maximum end time of all of its +#GESTimelineElement-s.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="snapping-distance" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The distance (in nanoseconds) at which a #GESTimelineElement being +moved within the timeline should snap one of its #GESSource-s with +another #GESSource-s edge. See #GESEditMode for which edges can +snap during an edit. 0 means no snapping.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <field name="parent"> + <type name="Gst.Bin" c:type="GstBin"/> + </field> + <field name="layers"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">A list of #GESLayer-s sorted by +priority. NOTE: Do not modify.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </field> + <field name="tracks"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">Deprecated:1.10: (element-type GES.Track): This is not thread +safe, use #ges_timeline_get_tracks instead.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </field> + <field name="priv" readable="0" private="1"> + <type name="TimelinePrivate" c:type="GESTimelinePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="commited" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">This signal will be emitted once the changes initiated by +ges_timeline_commit() have been executed in the backend. Use +ges_timeline_commit_sync() if you do not want to have to connect +to this signal.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="group-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the group is added to to the timeline. This can +happen when grouping with `ges_container_group`, or by adding +containers to a newly created group. + +Note that this should not be emitted whilst a timeline is being +loaded from its #GESProject asset. You should connect to the +project's #GESProject::loaded signal if you want to know which groups +were created for the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="group" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The group that was added to @timeline</doc> + <type name="Group"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="group-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the group is removed from the timeline through +`ges_container_ungroup`. Note that @group will no longer contain its +former children, these are held in @children. + +Note that if a group is emptied, then it will no longer belong to the +timeline, but this signal will **not** be emitted in such a case.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="group" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The group that was removed from @timeline</doc> + <type name="Group"/> + </parameter> + <parameter name="children" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A list +of #GESContainer-s that _were_ the children of the removed @group</doc> + <array name="GLib.PtrArray"> + <type name="Container"/> + </array> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="layer-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the layer is added to the timeline. + +Note that this should not be emitted whilst a timeline is being +loaded from its #GESProject asset. You should connect to the +project's #GESProject::loaded signal if you want to know which +layers were created for the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer that was added to @timeline</doc> + <type name="Layer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="layer-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the layer is removed from the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer that was removed from @timeline</doc> + <type name="Layer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="select-element-track" when="last" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Simplified version of #GESTimeline::select-tracks-for-object which only +allows @track_element to be added to a single #GESTrack.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A track to put @track_element into, or %NULL if +it should be discarded.</doc> + <type name="Track"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The clip that @track_element is being added to</doc> + <type name="Clip"/> + </parameter> + <parameter name="track_element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The element being added</doc> + <type name="TrackElement"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="select-tracks-for-object" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">This will be emitted whenever the timeline needs to determine which +tracks a clip's children should be added to. The track element will +be added to each of the tracks given in the return. If a track +element is selected to go into multiple tracks, it will be copied +into the additional tracks, under the same clip. Note that the copy +will *not* keep its properties or state in sync with the original. + +Connect to this signal once if you wish to control which element +should be added to which track. Doing so will overwrite the default +behaviour, which adds @track_element to all tracks whose +#GESTrack:track-type includes the @track_element's +#GESTrackElement:track-type. + +Note that under the default track selection, if a clip would produce +multiple core children of the same #GESTrackType, it will choose +one of the core children arbitrarily to place in the corresponding +tracks, with a warning for the other core children that are not +placed in the track. For example, this would happen for a #GESUriClip +that points to a file that contains multiple audio streams. If you +wish to choose the stream, you could connect to this signal, and use, +say, ges_uri_source_asset_get_stream_info() to choose which core +source to add. + +When a clip is first added to a timeline, its core elements will +be created for the current tracks in the timeline if they have not +already been created. Then this will be emitted for each of these +core children to select which tracks, if any, they should be added +to. It will then be called for any non-core children in the clip. + +In addition, if a new track element is ever added to a clip in a +timeline (and it is not already part of a track) this will be emitted +to select which tracks the element should be added to. + +Finally, as a special case, if a track is added to the timeline +*after* it already contains clips, then it will request the creation +of the clips' core elements of the corresponding type, if they have +not already been created, and this signal will be emitted for each of +these newly created elements. In addition, this will also be released +for all other track elements in the timeline's clips that have not +yet been assigned a track. However, in this final case, the timeline +will only check whether the newly added track appears in the track +list. If it does appear, the track element will be added to the newly +added track. All other tracks in the returned track list are ignored. + +In this latter case, track elements that are already part of a track +will not be asked if they want to be copied into the new track. If +you wish to do this, you can use ges_clip_add_child_to_track(). + +Note that the returned #GPtrArray should own a new reference to each +of its contained #GESTrack. The timeline will set the #GDestroyNotify +free function on the #GPtrArray to dereference the elements.</doc> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">An array of +#GESTrack-s that @track_element should be added to, or %NULL to +not add the element to any track.</doc> + <array name="GLib.PtrArray"> + <type name="Track"/> + </array> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The clip that @track_element is being added to</doc> + <type name="Clip"/> + </parameter> + <parameter name="track_element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The element being added</doc> + <type name="TrackElement"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="snapping-ended" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted whenever a snapping event ends. After a snap event +has started (see #GESTimeline::snapping-started), it can later end +because either another timeline edit has occurred (which may or may +not have created a new snapping event), or because the timeline has +been committed.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="obj1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The first element that was snapping</doc> + <type name="TrackElement"/> + </parameter> + <parameter name="obj2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The second element that was snapping</doc> + <type name="TrackElement"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The position where the two objects were to be snapped to</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="snapping-started" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted whenever an element's movement invokes a snapping +event during an edit (usually of one of its ancestors) because its +start or end point lies within the #GESTimeline:snapping-distance of +another element's start or end point. + +See #GESEditMode to see what can snap during an edit. + +Note that only up to one snapping-started signal will be emitted per +element edit within a timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="obj1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The first element that is snapping</doc> + <type name="TrackElement"/> + </parameter> + <parameter name="obj2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The second element that is snapping</doc> + <type name="TrackElement"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The position where the two objects will snap to</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="track-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the track is added to the timeline. + +Note that this should not be emitted whilst a timeline is being +loaded from its #GESProject asset. You should connect to the +project's #GESProject::loaded signal if you want to know which +tracks were created for the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track that was added to @timeline</doc> + <type name="Track"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="track-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the track is removed from the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track that was removed from @timeline</doc> + <type name="Track"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="TimelineClass" c:type="GESTimelineClass" glib:is-gtype-struct-for="Timeline"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">parent class</doc> + <type name="Gst.BinClass" c:type="GstBinClass"/> + </field> + <field name="track_added"> + <callback name="track_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="track_removed"> + <callback name="track_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="layer_added"> + <callback name="layer_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="layer_removed"> + <callback name="layer_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="group_added"> + <callback name="group_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="group" transfer-ownership="none"> + <type name="Group" c:type="GESGroup*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="group_removed" introspectable="0"> + <callback name="group_removed" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="group" transfer-ownership="none"> + <type name="Group" c:type="GESGroup*"/> + </parameter> + <parameter name="children" transfer-ownership="none"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="TimelineElement" c:symbol-prefix="timeline_element" c:type="GESTimelineElement" parent="GObject.InitiallyUnowned" abstract="1" glib:type-name="GESTimelineElement" glib:get-type="ges_timeline_element_get_type" glib:type-struct="TimelineElementClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement will have some temporal extent in its +corresponding #GESTimelineElement:timeline, controlled by its +#GESTimelineElement:start and #GESTimelineElement:duration. This +determines when its content will be displayed, or its effect applied, +in the timeline. Several objects may overlap within a given +#GESTimeline, in which case their #GESTimelineElement:priority is used +to determine their ordering in the timeline. Priority is mostly handled +internally by #GESLayer-s and #GESClip-s. + +A timeline element can have a #GESTimelineElement:parent, +such as a #GESClip, which is responsible for controlling its timing. + +## Editing + +Elements can be moved around in their #GESTimelineElement:timeline by +setting their #GESTimelineElement:start and +#GESTimelineElement:duration using ges_timeline_element_set_start() +and ges_timeline_element_set_duration(). Additionally, which parts of +the underlying content are played in the timeline can be adjusted by +setting the #GESTimelineElement:in-point using +ges_timeline_element_set_inpoint(). The library also provides +ges_timeline_element_edit(), with various #GESEditMode-s, which can +adjust these properties in a convenient way, as well as introduce +similar changes in neighbouring or later elements in the timeline. + +However, a timeline may refuse a change in these properties if they +would place the timeline in an unsupported configuration. See +#GESTimeline for its overlap rules. + +Additionally, an edit may be refused if it would place one of the +timing properties out of bounds (such as a negative time value for +#GESTimelineElement:start, or having insufficient internal +content to last for the desired #GESTimelineElement:duration). + +## Time Coordinates + +There are three main sets of time coordinates to consider when using +timeline elements: + ++ Timeline coordinates: these are the time coordinates used in the + output of the timeline in its #GESTrack-s. Each track share the same + coordinates, so there is only one set of coordinates for the + timeline. These extend indefinitely from 0. The times used for + editing (including setting #GESTimelineElement:start and + #GESTimelineElement:duration) use these coordinates, since these + define when an element is present and for how long the element lasts + for in the timeline. ++ Internal source coordinates: these are the time coordinates used + internally at the element's output. This is only really defined for + #GESTrackElement-s, where it refers to time coordinates used at the + final source pad of the wrapped #GstElement-s. However, these + coordinates may also be used in a #GESClip in reference to its + children. In particular, these are the coordinates used for + #GESTimelineElement:in-point and #GESTimelineElement:max-duration. ++ Internal sink coordinates: these are the time coordinates used + internally at the element's input. A #GESSource has no input, so + these would be undefined. Otherwise, for most #GESTrackElement-s + these will be the same set of coordinates as the internal source + coordinates because the element does not change the timing + internally. Only #GESBaseEffect can support elements where these + are different. See #GESBaseEffect for more information. + +You can determine the timeline time for a given internal source time +in a #GESTrack in a #GESClip using +ges_clip_get_timeline_time_from_internal_time(), and vice versa using +ges_clip_get_internal_time_from_timeline_time(), for the purposes of +editing and setting timings properties. + +## Children Properties + +If a timeline element owns another #GstObject and wishes to expose +some of its properties, it can do so by registering the property as one +of the timeline element's children properties using +ges_timeline_element_add_child_property(). The registered property of +the child can then be read and set using the +ges_timeline_element_get_child_property() and +ges_timeline_element_set_child_property() methods, respectively. Some +sub-classed objects will be created with pre-registered children +properties; for example, to expose part of an underlying #GstElement +that is used internally. The registered properties can be listed with +ges_timeline_element_list_children_properties().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <virtual-method name="deep_copy"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="copy" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_layer_priority" invoker="get_layer_priority" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the priority of the layer the element is in. A #GESGroup may span +several layers, so this would return the highest priority (numerically, +the smallest) amongst them.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of the layer @self is in, or +#GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY if @self does not exist in a +layer.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_natural_framerate" invoker="get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Get the "natural" framerate of @self. This is to say, for example +for a #GESVideoUriSource the framerate of the source. + +Note that a #GESAudioSource may also have a natural framerate if it derives +from the same #GESSourceClip asset as a #GESVideoSource, and its value will +be that of the video source. For example, if the uri of a #GESUriClip points +to a file that contains both a video and audio stream, then the corresponding +#GESAudioUriSource will share the natural framerate of the corresponding +#GESVideoUriSource.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether @self has a natural framerate or not, @framerate_n +and @framerate_d will be set to, respectively, 0 and -1 if it is +not the case.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to get "natural" framerate from</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_track_types" invoker="get_track_types" version="1.6.0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the track types that the element can interact with, i.e. the type +of #GESTrack it can exist in, or will create #GESTrackElement-s for.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The track types that @self supports.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="list_children_properties" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="n_properties" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="lookup_child" invoker="lookup_child"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Looks up a child property of the element. + +@prop_name can either be in the format "prop-name" or +"TypeName::prop-name", where "prop-name" is the name of the property +to look up (as used in g_object_get()), and "TypeName" is the type name +of the child (as returned by G_OBJECT_TYPE_NAME()). The latter format is +useful when two children of different types share the same property +name. + +The first child found with the given "prop-name" property that was +registered with ges_timeline_element_add_child_property() (and of the +type "TypeName", if it was given) will be passed to @child, and the +registered specification of this property will be passed to @pspec.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if a child corresponding to the property was found, in +which case @child and @pspec are set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of a child property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="child" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +found child</doc> + <type name="GObject.Object" c:type="GObject**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +specification of the child property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="paste" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="ref_element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="paste_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="ripple" invoker="ripple"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in ripple mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_RIPPLE and +#GES_EDGE_NONE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in ripple mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="ripple_end" invoker="ripple_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the end time of an element within its timeline in ripple mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_RIPPLE and +#GES_EDGE_END.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in ripple mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="roll_end" invoker="roll_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the end time of an element within its timeline in roll mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_ROLL and +#GES_EDGE_END.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in roll mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="roll_start" invoker="roll_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in roll mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_ROLL and +#GES_EDGE_START.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in roll mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_child_property" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">Method for setting the child property given by +@pspec on @child to @value. Default implementation will use +g_object_set_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_child_property_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">Similar to @set_child_property, except setting can fail, with the @error +being optionally set. Default implementation will call @set_child_property +and return %TRUE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_duration" invoker="set_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:duration for the element. + +Whilst the element is part of a #GESTimeline, this is the same as +editing the element with ges_timeline_element_edit() under +#GES_EDIT_MODE_TRIM with #GES_EDGE_END. In particular, the +#GESTimelineElement:duration of the element may be snapped to a +different timeline time difference from the one given. In addition, +setting may fail if it would place the timeline in an unsupported +configuration, or the element does not have enough internal content to +last the desired duration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @duration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired duration in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_inpoint" invoker="set_inpoint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:in-point for the element. If the new in-point +is above the current #GESTimelineElement:max-duration of the element, +this method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @inpoint could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The in-point, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_max_duration" invoker="set_max_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:max-duration for the element. If the new +maximum duration is below the current #GESTimelineElement:in-point of +the element, this method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @maxduration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="maxduration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The maximum duration, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_parent" invoker="set_parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the #GESTimelineElement:parent for the element. + +This is used internally and you should normally not call this. A +#GESContainer will set the #GESTimelineElement:parent of its children +in ges_container_add() and ges_container_remove(). + +Note, if @parent is not %NULL, @self must not already have a parent +set. Therefore, if you wish to switch parents, you will need to call +this function twice: first to set the parent to %NULL, and then to the +new parent. + +If @parent is not %NULL, you must ensure it already has a +(non-floating) reference to @self before calling this.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @parent could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement +@parent (nullable): New parent of @self</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_priority" invoker="set_priority" deprecated="1" deprecated-version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the priority of the element within the containing layer.</doc> + <doc-deprecated xml:space="preserve">All priority management is done by GES itself now. +To set #GESEffect priorities #ges_clip_set_top_effect_index should +be used.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @priority could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_start" invoker="set_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:start for the element. If the element has a +parent, this will also move its siblings with the same shift. + +Whilst the element is part of a #GESTimeline, this is the same as +editing the element with ges_timeline_element_edit() under +#GES_EDIT_MODE_NORMAL with #GES_EDGE_NONE. In particular, the +#GESTimelineElement:start of the element may be snapped to a different +timeline time from the one given. In addition, setting may fail if it +would place the timeline in an unsupported configuration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @start could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired start position of the element in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="trim" invoker="trim"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in trim mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_TRIM and +#GES_EDGE_START.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the trim edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to trim</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in trim mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_child_property" c:identifier="ges_timeline_element_add_child_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Register a property of a child of the element to allow it to be +written with ges_timeline_element_set_child_property() and read with +ges_timeline_element_get_child_property(). A change in the property +will also appear in the #GESTimelineElement::deep-notify signal. + +@pspec should be unique from other children properties that have been +registered on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was successfully registered.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property to add</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GstObject who the property belongs to</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="ges_timeline_element_copy"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Create a copy of @self. All the properties of @self are copied into +a new element, with the exception of #GESTimelineElement:parent, +#GESTimelineElement:timeline and #GESTimelineElement:name. Other data, +such the list of a #GESContainer's children, is **not** copied. + +If @deep is %TRUE, then the new element is prepared so that it can be +used in ges_timeline_element_paste() or ges_timeline_paste_element(). +In the case of copying a #GESContainer, this ensures that the children +of @self will also be pasted. The new element should not be used for +anything else and can only be used **once** in a pasting operation. In +particular, the new element itself is not an actual 'deep' copy of +@self, but should be thought of as an intermediate object used for a +single paste operation.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The newly create element, copied from @self.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to copy</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="deep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether the copy is needed for pasting</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="edit" c:identifier="ges_timeline_element_edit" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">See ges_timeline_element_edit_full(), which also gives an error. + +Note that the @layers argument is currently ignored, so you should +just pass %NULL.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to edit</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority/index of the layer @self should be +moved to. -1 means no move</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edge of @self where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edit position: a new location for the edge of @self +(in nanoseconds) in the timeline coordinates</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="edit_full" c:identifier="ges_timeline_element_edit_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the element within its timeline by adjusting its +#GESTimelineElement:start, #GESTimelineElement:duration or +#GESTimelineElement:in-point, and potentially doing the same for +other elements in the timeline. See #GESEditMode for details about each +edit mode. An edit may fail if it would place one of these properties +out of bounds, or if it would place the timeline in an unsupported +configuration. + +Note that if you act on a #GESTrackElement, this will edit its parent +#GESClip instead. Moreover, for any #GESTimelineElement, if you select +#GES_EDGE_NONE for #GES_EDIT_MODE_NORMAL or #GES_EDIT_MODE_RIPPLE, this +will edit the toplevel instead, but still in such a way as to make the +#GESTimelineElement:start of @self reach the edit @position. + +Note that if the element's timeline has a +#GESTimeline:snapping-distance set, then the edit position may be +snapped to the edge of some element under the edited element. + +@new_layer_priority can be used to switch @self, and other elements +moved by the edit, to a new layer. New layers may be be created if the +the corresponding layer priority/index does not yet exist for the +timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to edit</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority/index of the layer @self should be +moved to. -1 means no move</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edge of @self where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edit position: a new location for the edge of @self +(in nanoseconds) in the timeline coordinates</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="get_child_properties" c:identifier="ges_timeline_element_get_child_properties" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets several of the children properties of the element. See +ges_timeline_element_get_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the first child property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the first property, followed +optionally by more name/return location pairs, followed by %NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="get_child_property" c:identifier="ges_timeline_element_get_child_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the property of a child of the element. + +@property_name can either be in the format "prop-name" or +"TypeName::prop-name", where "prop-name" is the name of the property +to get (as used in g_object_get()), and "TypeName" is the type name of +the child (as returned by G_OBJECT_TYPE_NAME()). The latter format is +useful when two children of different types share the same property +name. + +The first child found with the given "prop-name" property that was +registered with ges_timeline_element_add_child_property() (and of the +type "TypeName", if it was given) will have the corresponding +property copied into @value. + +Note that ges_timeline_element_get_child_properties() may be more +convenient for C programming.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was found and copied to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the child property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_child_property_by_pspec" c:identifier="ges_timeline_element_get_child_property_by_pspec"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the property of a child of the element. Specifically, the property +corresponding to the @pspec used in +ges_timeline_element_add_child_property() is copied into @value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification of a registered child property to get</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_child_property_valist" c:identifier="ges_timeline_element_get_child_property_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets several of the children properties of the element. See +ges_timeline_element_get_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the first child property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the first property, followed +optionally by more name/return location pairs, followed by %NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="ges_timeline_element_get_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:duration for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The duration of @self (in nanoseconds).</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_inpoint" c:identifier="ges_timeline_element_get_inpoint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:in-point for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The in-point of @self (in nanoseconds).</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_layer_priority" c:identifier="ges_timeline_element_get_layer_priority" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the priority of the layer the element is in. A #GESGroup may span +several layers, so this would return the highest priority (numerically, +the smallest) amongst them.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of the layer @self is in, or +#GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY if @self does not exist in a +layer.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_duration" c:identifier="ges_timeline_element_get_max_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:max-duration for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The max-duration of @self (in nanoseconds).</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_name" c:identifier="ges_timeline_element_get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:name for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of @self.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_natural_framerate" c:identifier="ges_timeline_element_get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Get the "natural" framerate of @self. This is to say, for example +for a #GESVideoUriSource the framerate of the source. + +Note that a #GESAudioSource may also have a natural framerate if it derives +from the same #GESSourceClip asset as a #GESVideoSource, and its value will +be that of the video source. For example, if the uri of a #GESUriClip points +to a file that contains both a video and audio stream, then the corresponding +#GESAudioUriSource will share the natural framerate of the corresponding +#GESVideoUriSource.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether @self has a natural framerate or not, @framerate_n +and @framerate_d will be set to, respectively, 0 and -1 if it is +not the case.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to get "natural" framerate from</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_parent" c:identifier="ges_timeline_element_get_parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:parent for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The parent of @self, or %NULL if +@self has no parent.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_priority" c:identifier="ges_timeline_element_get_priority"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:priority for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of @self.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_start" c:identifier="ges_timeline_element_get_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:start for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The start of @self (in nanoseconds).</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timeline" c:identifier="ges_timeline_element_get_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:timeline for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The timeline of @self, or %NULL +if @self has no timeline.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_toplevel_parent" c:identifier="ges_timeline_element_get_toplevel_parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the toplevel #GESTimelineElement:parent of the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The toplevel parent of @self.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to get the toplevel parent from</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_track_types" c:identifier="ges_timeline_element_get_track_types" version="1.6.0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the track types that the element can interact with, i.e. the type +of #GESTrack it can exist in, or will create #GESTrackElement-s for.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The track types that @self supports.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="list_children_properties" c:identifier="ges_timeline_element_list_children_properties"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Get a list of children properties of the element, which is a list of +all the specifications passed to +ges_timeline_element_add_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">An array of +#GParamSpec corresponding to the child properties of @self, or %NULL if +something went wrong.</doc> + <array length="0" zero-terminated="0" c:type="GParamSpec**"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </array> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="n_properties" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the length of the +returned array</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="lookup_child" c:identifier="ges_timeline_element_lookup_child"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Looks up a child property of the element. + +@prop_name can either be in the format "prop-name" or +"TypeName::prop-name", where "prop-name" is the name of the property +to look up (as used in g_object_get()), and "TypeName" is the type name +of the child (as returned by G_OBJECT_TYPE_NAME()). The latter format is +useful when two children of different types share the same property +name. + +The first child found with the given "prop-name" property that was +registered with ges_timeline_element_add_child_property() (and of the +type "TypeName", if it was given) will be passed to @child, and the +registered specification of this property will be passed to @pspec.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if a child corresponding to the property was found, in +which case @child and @pspec are set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of a child property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="child" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +found child</doc> + <type name="GObject.Object" c:type="GObject**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +specification of the child property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </method> + <method name="paste" c:identifier="ges_timeline_element_paste" version="1.6.0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Paste an element inside the same timeline and layer as @self. @self +**must** be the return of ges_timeline_element_copy() with `deep=TRUE`, +and it should not be changed before pasting. +@self is not placed in the timeline, instead a new element is created, +alike to the originally copied element. Note that the originally +copied element must stay within the same timeline and layer, at both +the point of copying and pasting. + +Pasting may fail if it would place the timeline in an unsupported +configuration. + +After calling this function @element should not be used. In particular, +@element can **not** be pasted again. Instead, you can copy the +returned element and paste that copy (although, this is only possible +if the paste was successful). + +See also ges_timeline_paste_element().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The newly created element, or +%NULL if pasting fails.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to paste</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="paste_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The position in the timeline @element should be pasted +to, i.e. the #GESTimelineElement:start value for the pasted element.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="remove_child_property" c:identifier="ges_timeline_element_remove_child_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Remove a child property from the element. @pspec should be a +specification that was passed to +ges_timeline_element_add_child_property(). The corresponding property +will no longer be registered as a child property for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was successfully un-registered for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property to remove</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </method> + <method name="ripple" c:identifier="ges_timeline_element_ripple"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in ripple mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_RIPPLE and +#GES_EDGE_NONE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in ripple mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="ripple_end" c:identifier="ges_timeline_element_ripple_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the end time of an element within its timeline in ripple mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_RIPPLE and +#GES_EDGE_END.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in ripple mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="roll_end" c:identifier="ges_timeline_element_roll_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the end time of an element within its timeline in roll mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_ROLL and +#GES_EDGE_END.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in roll mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="roll_start" c:identifier="ges_timeline_element_roll_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in roll mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_ROLL and +#GES_EDGE_START.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in roll mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_child_properties" c:identifier="ges_timeline_element_set_child_properties" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets several of the children properties of the element. See +ges_timeline_element_set_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the first child property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value for the first property, followed optionally by more +name/value pairs, followed by %NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_child_property" c:identifier="ges_timeline_element_set_child_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">See ges_timeline_element_set_child_property_full(), which also gives an +error. + +Note that ges_timeline_element_set_child_properties() may be more +convenient for C programming.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was found and set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the child property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value to set the property to</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_by_pspec" c:identifier="ges_timeline_element_set_child_property_by_pspec"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the property of a child of the element. Specifically, the property +corresponding to the @pspec used in +ges_timeline_element_add_child_property() is set to @value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification of a registered child property to set</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value to set the property to</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_full" c:identifier="ges_timeline_element_set_child_property_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the property of a child of the element. + +@property_name can either be in the format "prop-name" or +"TypeName::prop-name", where "prop-name" is the name of the property +to set (as used in g_object_set()), and "TypeName" is the type name of +the child (as returned by G_OBJECT_TYPE_NAME()). The latter format is +useful when two children of different types share the same property +name. + +The first child found with the given "prop-name" property that was +registered with ges_timeline_element_add_child_property() (and of the +type "TypeName", if it was given) will have the corresponding +property set to @value. Other children that may have also matched the +property name (and type name) are left unchanged!</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was found and set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the child property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value to set the property to</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_valist" c:identifier="ges_timeline_element_set_child_property_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets several of the children properties of the element. See +ges_timeline_element_set_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the first child property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value for the first property, followed optionally by more +name/value pairs, followed by %NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="set_duration" c:identifier="ges_timeline_element_set_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:duration for the element. + +Whilst the element is part of a #GESTimeline, this is the same as +editing the element with ges_timeline_element_edit() under +#GES_EDIT_MODE_TRIM with #GES_EDGE_END. In particular, the +#GESTimelineElement:duration of the element may be snapped to a +different timeline time difference from the one given. In addition, +setting may fail if it would place the timeline in an unsupported +configuration, or the element does not have enough internal content to +last the desired duration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @duration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired duration in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_inpoint" c:identifier="ges_timeline_element_set_inpoint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:in-point for the element. If the new in-point +is above the current #GESTimelineElement:max-duration of the element, +this method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @inpoint could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The in-point, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_max_duration" c:identifier="ges_timeline_element_set_max_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:max-duration for the element. If the new +maximum duration is below the current #GESTimelineElement:in-point of +the element, this method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @maxduration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="maxduration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The maximum duration, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_name" c:identifier="ges_timeline_element_set_name"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the #GESTimelineElement:name for the element. If %NULL is given +for @name, then the library will instead generate a new name based on +the type name of the element, such as the name "uriclip3" for a +#GESUriClip, and will set that name instead. + +If @self already has a #GESTimelineElement:timeline, you should not +call this function with @name set to %NULL. + +You should ensure that, within each #GESTimeline, every element has a +unique name. If you call this function with @name as %NULL, then +the library should ensure that the set generated name is unique from +previously **generated** names. However, if you choose a @name that +interferes with the naming conventions of the library, the library will +attempt to ensure that the generated names will not conflict with the +chosen name, which may lead to a different name being set instead, but +the uniqueness between generated and user-chosen names is not +guaranteed.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @name or a generated name for @self could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name @self should take</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_parent" c:identifier="ges_timeline_element_set_parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the #GESTimelineElement:parent for the element. + +This is used internally and you should normally not call this. A +#GESContainer will set the #GESTimelineElement:parent of its children +in ges_container_add() and ges_container_remove(). + +Note, if @parent is not %NULL, @self must not already have a parent +set. Therefore, if you wish to switch parents, you will need to call +this function twice: first to set the parent to %NULL, and then to the +new parent. + +If @parent is not %NULL, you must ensure it already has a +(non-floating) reference to @self before calling this.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @parent could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement +@parent (nullable): New parent of @self</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </method> + <method name="set_priority" c:identifier="ges_timeline_element_set_priority" deprecated="1" deprecated-version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the priority of the element within the containing layer.</doc> + <doc-deprecated xml:space="preserve">All priority management is done by GES itself now. +To set #GESEffect priorities #ges_clip_set_top_effect_index should +be used.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @priority could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_start" c:identifier="ges_timeline_element_set_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:start for the element. If the element has a +parent, this will also move its siblings with the same shift. + +Whilst the element is part of a #GESTimeline, this is the same as +editing the element with ges_timeline_element_edit() under +#GES_EDIT_MODE_NORMAL with #GES_EDGE_NONE. In particular, the +#GESTimelineElement:start of the element may be snapped to a different +timeline time from the one given. In addition, setting may fail if it +would place the timeline in an unsupported configuration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @start could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired start position of the element in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_timeline" c:identifier="ges_timeline_element_set_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the #GESTimelineElement:timeline of the element. + +This is used internally and you should normally not call this. A +#GESClip will have its #GESTimelineElement:timeline set through its +#GESLayer. A #GESTrack will similarly take care of setting the +#GESTimelineElement:timeline of its #GESTrackElement-s. A #GESGroup +will adopt the same #GESTimelineElement:timeline as its children. + +If @timeline is %NULL, this will stop its current +#GESTimelineElement:timeline from tracking it, otherwise @timeline will +start tracking @self. Note, in the latter case, @self must not already +have a timeline set. Therefore, if you wish to switch timelines, you +will need to call this function twice: first to set the timeline to +%NULL, and then to the new timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @timeline could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement +@timeline (nullable): The #GESTimeline @self should be in</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <method name="trim" c:identifier="ges_timeline_element_trim"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in trim mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_TRIM and +#GES_EDGE_START.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the trim edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to trim</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in trim mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <property name="duration" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The duration that the element is in effect for in the timeline (a +time difference in nanoseconds using the time coordinates of the +timeline). For example, for a source element, this would determine +for how long it should output its internal content for. For an +operation element, this would determine for how long its effect +should be applied to any source content.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="in-point" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The initial offset to use internally when outputting content (in +nanoseconds, but in the time coordinates of the internal content). + +For example, for a #GESVideoUriSource that references some media +file, the "internal content" is the media file data, and the +in-point would correspond to some timestamp in the media file. +When playing the timeline, and when the element is first reached at +timeline-time #GESTimelineElement:start, it will begin outputting the +data from the timestamp in-point **onwards**, until it reaches the +end of its #GESTimelineElement:duration in the timeline. + +For elements that have no internal content, this should be kept +as 0.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="max-duration" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The full duration of internal content that is available (a time +difference in nanoseconds using the time coordinates of the internal +content). + +This will act as a cap on the #GESTimelineElement:in-point of the +element (which is in the same time coordinates), and will sometimes +be used to limit the #GESTimelineElement:duration of the element in +the timeline. + +For example, for a #GESVideoUriSource that references some media +file, this would be the length of the media file. + +For elements that have no internal content, or whose content is +indefinite, this should be kept as #GST_CLOCK_TIME_NONE.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="name" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the element. This should be unique within its timeline.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="parent" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The parent container of the element.</doc> + <type name="TimelineElement"/> + </property> + <property name="priority" deprecated="1" deprecated-version="1.10" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of the element.</doc> + <doc-deprecated xml:space="preserve">Priority management is now done by GES itself.</doc-deprecated> + <type name="guint" c:type="guint"/> + </property> + <property name="serialize" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether the element should be serialized.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="start" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The starting position of the element in the timeline (in nanoseconds +and in the time coordinates of the timeline). For example, for a +source element, this would determine the time at which it should +start outputting its internal content. For an operation element, this +would determine the time at which it should start applying its effect +to any source content.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="timeline" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The timeline that the element lies within.</doc> + <type name="Timeline"/> + </property> + <field name="parent_instance"> + <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> + </field> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:parent of the element</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </field> + <field name="asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESAsset from which the object has been extracted</doc> + <type name="Asset" c:type="GESAsset*"/> + </field> + <field name="start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:start of the element</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="inpoint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:in-point of the element</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:duration of the element</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="maxduration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:max-duration of the element</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="priority"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:priority of the element</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:timeline of the element</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </field> + <field name="name"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:name of the element</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TimelineElementPrivate" c:type="GESTimelineElementPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="child-property-added" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Emitted when the element has a new child property registered. See +ges_timeline_element_add_child_property(). + +Note that some GES elements will be automatically created with +pre-registered children properties. You can use +ges_timeline_element_list_children_properties() to list these.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="prop_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The child whose property has been registered</doc> + <type name="GObject.Object"/> + </parameter> + <parameter name="prop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property that has been registered</doc> + <type name="GObject.ParamSpec"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="child-property-removed" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Emitted when the element has a child property unregistered. See +ges_timeline_element_remove_child_property().</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="prop_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The child whose property has been unregistered</doc> + <type name="GObject.Object"/> + </parameter> + <parameter name="prop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property that has been unregistered</doc> + <type name="GObject.ParamSpec"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="deep-notify" when="first" no-recurse="1" detailed="1" no-hooks="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Emitted when a child of the element has one of its registered +properties set. See ges_timeline_element_add_child_property(). +Note that unlike #GObject::notify, a child property name can not be +used as a signal detail.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="prop_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The child whose property has been set</doc> + <type name="GObject.Object"/> + </parameter> + <parameter name="prop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property that been set</doc> + <type name="GObject.ParamSpec"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="TimelineElementClass" c:type="GESTimelineElementClass" glib:is-gtype-struct-for="TimelineElement"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement base class. Subclasses should override at least +@set_start @set_inpoint @set_duration @ripple @ripple_end @roll_start +@roll_end and @trim. + +Vmethods in subclasses should apply all the operation they need to but +the real method implementation is in charge of setting the proper field, +and emitting the notify signal.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <field name="parent_class"> + <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> + </field> + <field name="set_parent"> + <callback name="set_parent"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @parent could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement +@parent (nullable): New parent of @self</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="parent" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_start"> + <callback name="set_start"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @start could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired start position of the element in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_inpoint"> + <callback name="set_inpoint"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @inpoint could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The in-point, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_duration"> + <callback name="set_duration"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @duration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired duration in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_max_duration"> + <callback name="set_max_duration"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @maxduration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="maxduration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The maximum duration, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_priority"> + <callback name="set_priority"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @priority could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </callback> + </field> + <field name="ripple"> + <callback name="ripple"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in ripple mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="ripple_end"> + <callback name="ripple_end"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in ripple mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="roll_start"> + <callback name="roll_start"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in roll mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="roll_end"> + <callback name="roll_end"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in roll mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="trim"> + <callback name="trim"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the trim edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to trim</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in trim mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="deep_copy"> + <callback name="deep_copy"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="copy" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="paste" introspectable="0"> + <callback name="paste" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="ref_element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="paste_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="list_children_properties" introspectable="0"> + <callback name="list_children_properties" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="n_properties" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="lookup_child"> + <callback name="lookup_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if a child corresponding to the property was found, in +which case @child and @pspec are set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of a child property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="child" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +found child</doc> + <type name="GObject.Object" c:type="GObject**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +specification of the child property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_track_types"> + <callback name="get_track_types"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The track types that @self supports.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_child_property"> + <callback name="set_child_property"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_layer_priority"> + <callback name="get_layer_priority"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of the layer @self is in, or +#GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY if @self does not exist in a +layer.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_natural_framerate"> + <callback name="get_natural_framerate"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether @self has a natural framerate or not, @framerate_n +and @framerate_d will be set to, respectively, 0 and -1 if it is +not the case.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to get "natural" framerate from</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_child_property_full"> + <callback name="set_child_property_full" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="14"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TimelineElementPrivate" c:type="GESTimelineElementPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + </record> + <record name="TimelinePrivate" c:type="GESTimelinePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + </record> + <class name="TitleClip" c:symbol-prefix="title_clip" c:type="GESTitleClip" parent="SourceClip" glib:type-name="GESTitleClip" glib:get-type="ges_title_clip_get_type" glib:type-struct="TitleClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Renders the given text in the specified font, at specified position, and +with the specified background pattern.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_title_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Creates a new #GESTitleClip</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The newly created #GESTitleClip, +or %NULL if there was an error.</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </return-value> + </constructor> + <method name="get_background_color" c:identifier="ges_title_clip_get_background_color" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the background used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color used by @self.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_font_desc" c:identifier="ges_title_clip_get_font_desc" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the pango font description used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The pango font description used by @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_halignment" c:identifier="ges_title_clip_get_halignment" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the horizontal aligment used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The horizontal aligment used by @self.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text" c:identifier="ges_title_clip_get_text" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the text currently set on @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The text currently set on @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text_color" c:identifier="ges_title_clip_get_text_color" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the color used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color used by @self.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_valignment" c:identifier="ges_title_clip_get_valignment" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the vertical aligment used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The vertical aligment used by @self.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_xpos" c:identifier="ges_title_clip_get_xpos" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the horizontal position used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The horizontal position used by @self.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ypos" c:identifier="ges_title_clip_get_ypos" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the vertical position used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_property instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The vertical position used by @self.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_background" c:identifier="ges_title_clip_set_background" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the background of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="background" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_color" c:identifier="ges_title_clip_set_color" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the color of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_font_desc" c:identifier="ges_title_clip_set_font_desc" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the pango font description of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip*</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the pango font description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_halignment" c:identifier="ges_title_clip_set_halignment" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the horizontal aligment of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set horizontal alignement of text on</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="halign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">#GESTextHAlign</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </parameter> + </parameters> + </method> + <method name="set_text" c:identifier="ges_title_clip_set_text" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the text this clip will render.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set text on</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the text to render. an internal copy of this text will be +made.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_valignment" c:identifier="ges_title_clip_set_valignment" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the vertical aligment of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set vertical alignement of text on</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="valign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">#GESTextVAlign</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </parameter> + </parameters> + </method> + <method name="set_xpos" c:identifier="ges_title_clip_set_xpos" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the horizontal position of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The horizontal position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_ypos" c:identifier="ges_title_clip_set_ypos" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the vertical position of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The vertical position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <property name="background" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The background of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="guint" c:type="guint"/> + </property> + <property name="color" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="guint" c:type="guint"/> + </property> + <property name="font-desc" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Pango font description string</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="halignment" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Horizontal alignment of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="TextHAlign"/> + </property> + <property name="text" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The text to diplay</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="valignment" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Vertical alignent of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="TextVAlign"/> + </property> + <property name="xpos" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The horizontal position of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="ypos" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The vertical position of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="gdouble" c:type="gdouble"/> + </property> + <field name="parent"> + <type name="SourceClip" c:type="GESSourceClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TitleClipPrivate" c:type="GESTitleClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TitleClipClass" c:type="GESTitleClipClass" glib:is-gtype-struct-for="TitleClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClipClass" c:type="GESSourceClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TitleClipPrivate" c:type="GESTitleClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + </record> + <class name="TitleSource" c:symbol-prefix="title_source" c:type="GESTitleSource" parent="VideoSource" glib:type-name="GESTitleSource" glib:get-type="ges_title_source_get_type" glib:type-struct="TitleSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">#GESTitleSource is a GESTimelineElement that implements the notion +of titles in GES.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="get_background_color" c:identifier="ges_title_source_get_background_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the background used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The background used by @source.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_font_desc" c:identifier="ges_title_source_get_font_desc" deprecated="1" deprecated-version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the pango font description used by @source.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_get_child_property instead +(this actually returns a newly allocated string)</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The pango font description used by this +@source.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_halignment" c:identifier="ges_title_source_get_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the horizontal aligment used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The horizontal aligment used by @source.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text" c:identifier="ges_title_source_get_text" deprecated="1" deprecated-version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the text currently set on the @source.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_get_child_property instead +(this actually returns a newly allocated string)</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The text currently set on the @source.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text_color" c:identifier="ges_title_source_get_text_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the color used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The color used by @source.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_valignment" c:identifier="ges_title_source_get_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the vertical aligment used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The vertical aligment used by @source.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_xpos" c:identifier="ges_title_source_get_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the horizontal position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The horizontal position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ypos" c:identifier="ges_title_source_get_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the vertical position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The vertical position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_background_color" c:identifier="ges_title_source_set_background_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the color of the background</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_font_desc" c:identifier="ges_title_source_set_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Set the pango font description this source will use to render +the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the pango font description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_halignment" c:identifier="ges_title_source_set_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the vertical aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set text on</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="halign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">#GESTextHAlign</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </parameter> + </parameters> + </method> + <method name="set_text" c:identifier="ges_title_source_set_text" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the text this track element will render.</doc> + <doc-deprecated xml:space="preserve">use ges_track_element_get/set_children_properties on the +GESTrackElement instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set text on</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the text to render. an internal copy of this text will be +made.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_text_color" c:identifier="ges_title_source_set_text_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the color of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_valignment" c:identifier="ges_title_source_set_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the vertical aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set text on</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="valign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">#GESTextVAlign</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </parameter> + </parameters> + </method> + <method name="set_xpos" c:identifier="ges_title_source_set_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the horizontal position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the horizontal position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_ypos" c:identifier="ges_title_source_set_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the vertical position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the color @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TitleSourcePrivate" c:type="GESTitleSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TitleSourceClass" c:type="GESTitleSourceClass" glib:is-gtype-struct-for="TitleSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.h">parent class</doc> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TitleSourcePrivate" c:type="GESTitleSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + </record> + <class name="Track" c:symbol-prefix="track" c:type="GESTrack" parent="Gst.Bin" glib:type-name="GESTrack" glib:get-type="ges_track_get_type" glib:type-struct="TrackClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack acts an output source for a #GESTimeline. Each one +essentially provides an additional #GstPad for the timeline, with +#GESTrack:restriction-caps capabilities. Internally, a track +wraps an #nlecomposition filtered by a #capsfilter. + +A track will contain a number of #GESTrackElement-s, and its role is +to select and activate these elements according to their timings when +the timeline in played. For example, a track would activate a +#GESSource when its #GESTimelineElement:start is reached by outputting +its data for its #GESTimelineElement:duration. Similarly, a +#GESOperation would be activated by applying its effect to the source +data, starting from its #GESTimelineElement:start time and lasting for +its #GESTimelineElement:duration. + +For most users, it will usually be sufficient to add newly created +tracks to a timeline, but never directly add an element to a track. +Whenever a #GESClip is added to a timeline, the clip adds its +elements to the timeline's tracks and assumes responsibility for +updating them.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <implements name="MetaContainer"/> + <implements name="Gst.ChildProxy"/> + <constructor name="new" c:identifier="ges_track_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Creates a new track with the given track-type and caps. + +If @type is #GES_TRACK_TYPE_VIDEO, and @caps is a subset of +"video/x-raw(ANY)", then a #GESVideoTrack is created. This will +automatically choose a gap creation method suitable for video data. You +will likely want to set #GESTrack:restriction-caps separately. You may +prefer to use the ges_video_track_new() method instead. + +If @type is #GES_TRACK_TYPE_AUDIO, and @caps is a subset of +"audio/x-raw(ANY)", then a #GESAudioTrack is created. This will +automatically choose a gap creation method suitable for audio data, and +will set the #GESTrack:restriction-caps to the default for +#GESAudioTrack. You may prefer to use the ges_audio_track_new() method +instead. + +Otherwise, a plain #GESTrack is returned. You will likely want to set +the #GESTrack:restriction-caps and call +ges_track_set_create_element_for_gap_func() on the returned track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A new track.</doc> + <type name="Track" c:type="GESTrack*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The #GESTrack:track-type for the track</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + <parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The #GESTrack:caps for the track</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="get_mixing_element" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="add_element" c:identifier="ges_track_add_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">See ges_track_add_element(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if @object was successfully added to @track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element to add</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </method> + <method name="add_element_full" c:identifier="ges_track_add_element_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Adds the given track element to the track, which takes ownership of the +element. + +Note that this can fail if it would break a configuration rule of the +track's #GESTimeline. + +Note that a #GESTrackElement can only be added to one track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if @object was successfully added to @track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element to add</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </method> + <method name="commit" c:identifier="ges_track_commit"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Commits all the pending changes for the elements contained in the +track. + +When changes are made to the timing or priority of elements within a +track, they are not directly executed for the underlying +#nlecomposition and its children. This method will finally execute +these changes so they are reflected in the data output of the track. + +Any pending changes will be executed in the backend. The +#GESTimeline::commited signal will be emitted once this has completed. + +Note that ges_timeline_commit() will call this method on all of its +tracks, so you are unlikely to need to use this directly.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if pending changes were committed, or %FALSE if nothing +needed to be committed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_caps" c:identifier="ges_track_get_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Get the #GESTrack:caps of the track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The caps of @track.</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_elements" c:identifier="ges_track_get_elements"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Gets the track elements contained in the track. The returned list is +sorted by the element's #GESTimelineElement:priority and +#GESTimelineElement:start.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A list of +all the #GESTrackElement-s in @track.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_mixing" c:identifier="ges_track_get_mixing"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Gets the #GESTrack:mixing of the track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Whether @track is mixing.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_restriction_caps" c:identifier="ges_track_get_restriction_caps" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Gets the #GESTrack:restriction-caps of the track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The restriction-caps of @track.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timeline" c:identifier="ges_track_get_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Get the timeline this track belongs to.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The timeline that @track belongs to, or %NULL if +it does not belong to a timeline.</doc> + <type name="Timeline" c:type="const GESTimeline*"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_element" c:identifier="ges_track_remove_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">See ges_track_remove_element_full(), which also returns an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if @object was successfully removed from @track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element to remove</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </method> + <method name="remove_element_full" c:identifier="ges_track_remove_element_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Removes the given track element from the track, which revokes +ownership of the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if @object was successfully removed from @track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element to remove</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </method> + <method name="set_create_element_for_gap_func" c:identifier="ges_track_set_create_element_for_gap_func" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Sets the function that will be used to create a #GstElement that can be +used as a source to fill the gaps of the track. A gap is a timeline +region where the track has no #GESTrackElement sources. Therefore, you +are likely to want the #GstElement returned by the function to always +produce 'empty' content, defined relative to the stream type, such as +transparent frames for a video, or mute samples for audio. + +#GESAudioTrack and #GESVideoTrack objects are created with such a +function already set appropriately.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="notified"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The function to be used to create a source +#GstElement that can fill gaps in @track</doc> + <type name="CreateElementForGapFunc" c:type="GESCreateElementForGapFunc"/> + </parameter> + </parameters> + </method> + <method name="set_mixing" c:identifier="ges_track_set_mixing"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Sets the #GESTrack:mixing for the track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="mixing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Whether @track should be mixing</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_restriction_caps" c:identifier="ges_track_set_restriction_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Sets the #GESTrack:restriction-caps for the track. + +> **NOTE**: Restriction caps are **not** taken into account when +> using #GESPipeline:mode=#GES_PIPELINE_MODE_SMART_RENDER.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The new restriction-caps for @track</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_timeline" c:identifier="ges_track_set_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Informs the track that it belongs to the given timeline. Calling this +does not actually add the track to the timeline. For that, you should +use ges_timeline_add_track(), which will also take care of informing +the track that it belongs to the timeline. As such, there is no need +for you to call this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack +@timeline (nullable): A #GESTimeline</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <method name="update_restriction_caps" c:identifier="ges_track_update_restriction_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Updates the #GESTrack:restriction-caps of the track using the fields +found in the given caps. Each of the #GstStructure-s in @caps is +compared against the existing structure with the same index in the +current #GESTrack:restriction-caps. If there is no corresponding +existing structure at that index, then the new structure is simply +copied to that index. Otherwise, any fields in the new structure are +copied into the existing structure. This will replace existing values, +and may introduce new ones, but any fields 'missing' in the new +structure are left unchanged in the existing structure. + +For example, if the existing #GESTrack:restriction-caps are +"video/x-raw, width=480, height=360", and the updating caps is +"video/x-raw, format=I420, width=500; video/x-bayer, width=400", then +the new #GESTrack:restriction-caps after calling this will be +"video/x-raw, width=500, height=360, format=I420; video/x-bayer, +width=400".</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The caps to update the restriction-caps with</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <property name="caps" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The capabilities used to choose the output of the #GESTrack's +elements. Internally, this is used to select output streams when +several may be available, by determining whether its #GstPad is +compatible (see #NleObject:caps for #nlecomposition). As such, +this is used as a weaker indication of the desired output type of the +track, **before** the #GESTrack:restriction-caps is applied. +Therefore, this should be set to a *generic* superset of the +#GESTrack:restriction-caps, such as "video/x-raw(ANY)". In addition, +it should match with the track's #GESTrack:track-type. + +Note that when you set this property, the #GstCapsFeatures of all its +#GstStructure-s will be automatically set to #GST_CAPS_FEATURES_ANY. + +Once a track has been added to a #GESTimeline, you should not change +this. + +Default value: #GST_CAPS_ANY.</doc> + <type name="Gst.Caps"/> + </property> + <property name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Current duration of the track + +Default value: O</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="id" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The #nlecomposition:id of the underlying #nlecomposition.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="mixing" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Whether the track should support the mixing of #GESLayer data, such +as composing the video data of each layer (when part of the video +data is transparent, the next layer will become visible) or adding +together the audio data. As such, for audio and video tracks, you'll +likely want to keep this set to %TRUE.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="restriction-caps" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The capabilities that specifies the final output format of the +#GESTrack. For example, for a video track, it would specify the +height, width, framerate and other properties of the stream. + +You may change this property after the track has been added to a +#GESTimeline, but it must remain compatible with the track's +#GESTrack:caps. + +Default value: #GST_CAPS_ANY.</doc> + <type name="Gst.Caps"/> + </property> + <property name="track-type" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The track type of the track. This controls the type of +#GESTrackElement-s that can be added to the track. This should +match with the track's #GESTrack:caps. + +Once a track has been added to a #GESTimeline, you should not change +this.</doc> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="Gst.Bin" c:type="GstBin"/> + </field> + <field name="type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.h">The #GESTrack:track-type of the track</doc> + <type name="TrackType" c:type="GESTrackType"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TrackPrivate" c:type="GESTrackPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="commited" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">This signal will be emitted once the changes initiated by +ges_track_commit() have been executed in the backend. In particular, +this will be emitted whenever the underlying #nlecomposition has been +committed (see #nlecomposition::commited).</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="track-element-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Will be emitted after a track element is added to the track.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element that was added</doc> + <type name="TrackElement"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="track-element-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Will be emitted after a track element is removed from the track.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element that was removed</doc> + <type name="TrackElement"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="TrackClass" c:type="GESTrackClass" glib:is-gtype-struct-for="Track"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="Gst.BinClass" c:type="GstBinClass"/> + </field> + <field name="get_mixing_element" introspectable="0"> + <callback name="get_mixing_element" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="TrackElement" c:symbol-prefix="track_element" c:type="GESTrackElement" parent="TimelineElement" abstract="1" glib:type-name="GESTrackElement" glib:get-type="ges_track_element_get_type" glib:type-struct="TrackElementClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement is a #GESTimelineElement that specifically belongs +to a single #GESTrack of its #GESTimelineElement:timeline. Its +#GESTimelineElement:start and #GESTimelineElement:duration specify its +temporal extent in the track. Specifically, a track element wraps some +nleobject, such as an #nlesource or #nleoperation, which can be +retrieved with ges_track_element_get_nleobject(), and its +#GESTimelineElement:start, #GESTimelineElement:duration, +#GESTimelineElement:in-point, #GESTimelineElement:priority and +#GESTrackElement:active properties expose the corresponding nleobject +properties. When a track element is added to a track, its nleobject is +added to the corresponding #nlecomposition that the track wraps. + +Most users will not have to work directly with track elements since a +#GESClip will automatically create track elements for its timeline's +tracks and take responsibility for updating them. The only track +elements that are not automatically created by clips, but a user is +likely to want to create, are #GESEffect-s. + +## Control Bindings for Children Properties + +You can set up control bindings for a track element child property +using ges_track_element_set_control_source(). A +#GstTimedValueControlSource should specify the timed values using the +internal source coordinates (see #GESTimelineElement). By default, +these will be updated to lie between the #GESTimelineElement:in-point +and out-point of the element. This can be switched off by setting +#GESTrackElement:auto-clamp-control-sources to %FALSE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <virtual-method name="active_changed"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">Notify when the #GESTrackElement:active property changes</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">Whether the element is active or not inside the #nlecomposition</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="changed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="create_element"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">the #GstElement that the underlying nleobject +controls.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="create_gnl_object"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">the #NLEObject to use in the #nlecomposition</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="list_children_properties" introspectable="0" deprecated="1" deprecated-version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">Listing children properties is handled by +ges_timeline_element_list_children_properties() instead.</doc> + <doc-deprecated xml:space="preserve">Use #GESTimelineElementClass::list_children_properties +instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="n_properties" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="lookup_child" invoker="lookup_child" deprecated="1" deprecated-version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Looks up which @element and @pspec would be effected by the given @name. If various +contained elements have this property name you will get the first one, unless you +specify the class name in @name.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_lookup_child</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">TRUE if @element and @pspec could be found. FALSE otherwise. In that +case the values for @pspec and @element are not modified. Unref @element after +usage.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Object to lookup the property in</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Name of the property to look up. You can specify the name of the + class as such: "ClassName::property-name", to guarantee that you get the + proper GParamSpec in case various GstElement-s contain the same property + name. If you don't do so, you will get the first element found, having + this property and the and the corresponding GParamSpec.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to a #GstElement that + takes the real object to set property on</doc> + <type name="Gst.Element" c:type="GstElement**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to take the specification + describing the property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_children_props" c:identifier="ges_track_element_add_children_props"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Adds all the properties of a #GstElement that match the criteria as +children properties of the track element. If the name of @element's +#GstElementFactory is not in @blacklist, and the factory's +#GST_ELEMENT_METADATA_KLASS contains at least one member of +@wanted_categories (e.g. #GST_ELEMENT_FACTORY_KLASS_DECODER), then +all the properties of @element that are also in @whitelist are added as +child properties of @self using +ges_timeline_element_add_child_property(). + +This is intended to be used by subclasses when constructing.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The child object to retrieve properties from</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="wanted_categories" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c"> +An array of element factory "klass" categories to whitelist, or %NULL +to accept all categories</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="blacklist" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A +blacklist of element factory names, or %NULL to not blacklist any +element factory</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="whitelist" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A +whitelist of element property names, or %NULL to whitelist all +writeable properties</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </method> + <method name="clamp_control_source" c:identifier="ges_track_element_clamp_control_source" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Clamp the #GstTimedValueControlSource for the specified child property +to lie between the #GESTimelineElement:in-point and out-point of the +element. The out-point is the #GES_TIMELINE_ELEMENT_END of the element +translated from the timeline coordinates to the internal source +coordinates of the element. + +If the property does not have a #GstTimedValueControlSource set by +ges_track_element_set_control_source(), nothing happens. Otherwise, if +a timed value for the control source lies before the in-point of the +element, or after its out-point, then it will be removed. At the +in-point and out-point times, a new interpolated value will be placed.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the child property to clamp the control +source of</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="edit" c:identifier="ges_track_element_edit" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Edits the element within its track.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_edit instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the edit of @object completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement to edit</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The edge of @object where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The edit position: a new location for the edge of @object +(in nanoseconds)</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="get_all_control_bindings" c:identifier="ges_track_element_get_all_control_bindings"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get all the control bindings that have been created for the children +properties of the track element using +ges_track_element_set_control_source(). The keys used in the returned +hash table are the child property names that were passed to +ges_track_element_set_control_source(), and their values are the +corresponding created #GstControlBinding.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A +hash table containing all child-property-name/control-binding pairs +for @trackelement.</doc> + <type name="GLib.HashTable" c:type="GHashTable*"> + <type name="utf8"/> + <type name="Gst.ControlBinding"/> + </type> + </return-value> + <parameters> + <instance-parameter name="trackelement" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_auto_clamp_control_sources" c:identifier="ges_track_element_get_auto_clamp_control_sources" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets #GESTrackElement:auto-clamp-control-sources.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether the control sources for the child properties of +@object are automatically clamped.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_child_properties" c:identifier="ges_track_element_get_child_properties" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets properties of a child of @object.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_get_child_properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The origin #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the first property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">return location for the first property, followed optionally by more +name/return location pairs, followed by NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="get_child_property" c:identifier="ges_track_element_get_child_property" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">In general, a copy is made of the property contents and +the caller is responsible for freeing the memory by calling +g_value_unset(). + +Gets a property of a GstElement contained in @object. + +Note that #ges_track_element_get_child_property is really +intended for language bindings, #ges_track_element_get_child_properties +is much more convenient for C programming.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_get_child_property</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the property was found, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The origin #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">return location for the property value, it will +be initialized if it is initialized with 0</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_child_property_by_pspec" c:identifier="ges_track_element_get_child_property_by_pspec" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets a property of a child of @object.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_get_child_property_by_pspec</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GParamSpec that specifies the property you want to get</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">return location for the value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_child_property_valist" c:identifier="ges_track_element_get_child_property_valist" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets a property of a child of @object. If there are various child elements +that have the same property name, you can distinguish them using the following +syntax: 'ClasseName::property_name' as property name. If you don't, the +corresponding property of the first element found will be set.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_get_child_property_valist</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement parent object</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the first property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Value for the first property, followed optionally by more +name/return location pairs, followed by NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="get_control_binding" c:identifier="ges_track_element_get_control_binding"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets the control binding that was created for the specified child +property of the track element using +ges_track_element_set_control_source(). The given @property_name must +be the same name of the child property that was passed to +ges_track_element_set_control_source().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The control binding that was +created for the specified child property of @object, or %NULL if +@property_name does not correspond to any control binding.</doc> + <type name="Gst.ControlBinding" c:type="GstControlBinding*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the child property to return the control +binding of</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_element" c:identifier="ges_track_element_get_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get the #GstElement that the track element's underlying nleobject +controls.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GstElement being controlled by the +nleobject that @object wraps.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_gnlobject" c:identifier="ges_track_element_get_gnlobject" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get the GNonLin object this object is controlling.</doc> + <doc-deprecated xml:space="preserve">use #ges_track_element_get_nleobject instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The GNonLin object this object is controlling.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_nleobject" c:identifier="ges_track_element_get_nleobject" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get the nleobject that this element wraps.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The nleobject that @object wraps.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_track" c:identifier="ges_track_element_get_track"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get the #GESTrackElement:track for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The track that @object belongs to, +or %NULL if it does not belong to a track.</doc> + <type name="Track" c:type="GESTrack*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_track_type" c:identifier="ges_track_element_get_track_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets the #GESTrackElement:track-type for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The track-type of @object.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_internal_source" c:identifier="ges_track_element_has_internal_source" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets #GESTrackElement:has-internal-source for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if @object can have its 'internal time' properties set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_active" c:identifier="ges_track_element_is_active"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets #GESTrackElement:active for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if @object is active in its track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_core" c:identifier="ges_track_element_is_core" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get whether the given track element is a core track element. That is, +it was created by the @create_track_elements #GESClipClass method for +some #GESClip. + +Note that such a track element can only be added to a clip that shares +the same #GESAsset as the clip that created it. For example, you are +allowed to move core children between clips that resulted from +ges_container_ungroup(), but you could not move the core child from a +#GESUriClip to a #GESTitleClip or another #GESUriClip with a different +#GESUriClip:uri. + +Moreover, if a core track element is added to a clip, it will always be +added as a core child. Therefore, if this returns %TRUE, then @element +will be a core child of its parent clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if @element is a core track element.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="list_children_properties" c:identifier="ges_track_element_list_children_properties" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets an array of #GParamSpec* for all configurable properties of the +children of @object.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_list_children_properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">An array of #GParamSpec* which should be freed after use or +%NULL if something went wrong.</doc> + <array length="0" zero-terminated="0" c:type="GParamSpec**"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </array> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement to get the list of children properties from</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="n_properties" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">return location for the length of the returned array</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="lookup_child" c:identifier="ges_track_element_lookup_child" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Looks up which @element and @pspec would be effected by the given @name. If various +contained elements have this property name you will get the first one, unless you +specify the class name in @name.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_lookup_child</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">TRUE if @element and @pspec could be found. FALSE otherwise. In that +case the values for @pspec and @element are not modified. Unref @element after +usage.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Object to lookup the property in</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Name of the property to look up. You can specify the name of the + class as such: "ClassName::property-name", to guarantee that you get the + proper GParamSpec in case various GstElement-s contain the same property + name. If you don't do so, you will get the first element found, having + this property and the and the corresponding GParamSpec.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to a #GstElement that + takes the real object to set property on</doc> + <type name="Gst.Element" c:type="GstElement**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to take the specification + describing the property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </method> + <method name="remove_control_binding" c:identifier="ges_track_element_remove_control_binding"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Removes the #GstControlBinding that was created for the specified child +property of the track element using +ges_track_element_set_control_source(). The given @property_name must +be the same name of the child property that was passed to +ges_track_element_set_control_source().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the control binding was removed from the specified +child property of @object, or %FALSE if an error occurred.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the child property to remove the control +binding from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_active" c:identifier="ges_track_element_set_active"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets #GESTrackElement:active for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the property was *toggled*.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether @object should be active in its track</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_auto_clamp_control_sources" c:identifier="ges_track_element_set_auto_clamp_control_sources" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets #GESTrackElement:auto-clamp-control-sources. If set to %TRUE, this +will immediately clamp all the control sources.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="auto_clamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether to automatically clamp the control sources for the +child properties of @object</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_child_properties" c:identifier="ges_track_element_set_child_properties" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets a property of a child of @object. If there are various child elements +that have the same property name, you can distinguish them using the following +syntax: 'ClasseName::property_name' as property name. If you don't, the +corresponding property of the first element found will be set.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_set_child_properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement parent object</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the first property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">value for the first property, followed optionally by more +name/return location pairs, followed by NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_child_property" c:identifier="ges_track_element_set_child_property" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets a property of a GstElement contained in @object. + +Note that #ges_track_element_set_child_property is really +intended for language bindings, #ges_track_element_set_child_properties +is much more convenient for C programming.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_child_property instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the property was set, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The origin #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_by_pspec" c:identifier="ges_track_element_set_child_property_by_pspec" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets a property of a child of @object.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_set_child_property_by_spec</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GParamSpec that specifies the property you want to set</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_valist" c:identifier="ges_track_element_set_child_property_valist" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets a property of a child of @object. If there are various child elements +that have the same property name, you can distinguish them using the following +syntax: 'ClasseName::property_name' as property name. If you don't, the +corresponding property of the first element found will be set.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_set_child_property_valist</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement parent object</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the first property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Value for the first property, followed optionally by more +name/return location pairs, followed by NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="set_control_source" c:identifier="ges_track_element_set_control_source"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Creates a #GstControlBinding for the specified child property of the +track element using the given control source. The given @property_name +should refer to an existing child property of the track element, as +used in ges_timeline_element_lookup_child(). + +If @binding_type is "direct", then the control binding is created with +gst_direct_control_binding_new() using the given control source. If +@binding_type is "direct-absolute", it is created with +gst_direct_control_binding_new_absolute() instead.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the specified child property could be bound to +@source, or %FALSE if an error occurred.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The control source to bind the child property to</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the child property to control</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="binding_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The type of binding to create ("direct" or +"direct-absolute")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_has_internal_source" c:identifier="ges_track_element_set_has_internal_source" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets #GESTrackElement:has-internal-source for the element. If this is +set to %FALSE, this method will also set the +#GESTimelineElement:in-point of the element to 0 and its +#GESTimelineElement:max-duration to #GST_CLOCK_TIME_NONE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%FALSE if @has_internal_source is forbidden for @object and +%TRUE in any other case.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="has_internal_source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether the @object should be allowed to have its +'internal time' properties set.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_track_type" c:identifier="ges_track_element_set_track_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets the #GESTrackElement:track-type for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <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" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The new track-type for @object</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <property name="active" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether the effect of the element should be applied in its +#GESTrackElement:track. If set to %FALSE, it will not be used in +the output of the track.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="auto-clamp-control-sources" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether the control sources on the element (see +ges_track_element_set_control_source()) will be automatically +updated whenever the #GESTimelineElement:in-point or out-point of the +element change in value. + +See ges_track_element_clamp_control_source() for how this is done +per control source. + +Default value: %TRUE</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="has-internal-source" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">This property is used to determine whether the 'internal time' +properties of the element have any meaning. In particular, unless +this is set to %TRUE, the #GESTimelineElement:in-point and +#GESTimelineElement:max-duration can not be set to any value other +than the default 0 and #GST_CLOCK_TIME_NONE, respectively. + +If an element has some *internal* *timed* source #GstElement that it +reads stream data from as part of its function in a #GESTrack, then +you'll likely want to set this to %TRUE to allow the +#GESTimelineElement:in-point and #GESTimelineElement:max-duration to +be set. + +The default value is determined by the #GESTrackElementClass +@default_has_internal_source class property. For most +#GESSourceClass-es, this will be %TRUE, with the exception of those +that have a potentially *static* source, such as #GESImageSourceClass +and #GESTitleSourceClass. Otherwise, this will usually be %FALSE. + +For most #GESOperation-s you will likely want to leave this set to +%FALSE. The exception may be for an operation that reads some stream +data from some private internal source as part of manipulating the +input data from the usual linked upstream #GESTrackElement. + +For example, you may want to set this to %TRUE for a +#GES_TRACK_TYPE_VIDEO operation that wraps a #textoverlay that reads +from a subtitle file and places its text on top of the received video +data. The #GESTimelineElement:in-point of the element would be used +to shift the initial seek time on the #textoverlay away from 0, and +the #GESTimelineElement:max-duration could be set to reflect the +time at which the subtitle file runs out of data. + +Note that GES can not support track elements that have both internal +content and manipulate the timing of their data streams (time +effects).</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The track that this element belongs to, or %NULL if it does not +belong to a track.</doc> + <type name="Track"/> + </property> + <property name="track-type" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The track type of the element, which determines the type of track the +element can be added to (see #GESTrack:track-type). This should +correspond to the type of data that the element can produce or +process.</doc> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="TimelineElement" c:type="GESTimelineElement"/> + </field> + <field name="active" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TrackElementPrivate" c:type="GESTrackElementPrivate*"/> + </field> + <field name="asset" readable="0" private="1"> + <type name="Asset" c:type="GESAsset*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="control-binding-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">This is emitted when a control binding is added to a child property +of the track element.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="control_binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The control binding that has been added</doc> + <type name="Gst.ControlBinding"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="control-binding-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">This is emitted when a control binding is removed from a child +property of the track element.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="control_binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The control binding that has been removed</doc> + <type name="Gst.ControlBinding"/> + </parameter> + </parameters> + </glib:signal> + </class> + <class name="TrackElementAsset" c:symbol-prefix="track_element_asset" c:type="GESTrackElementAsset" parent="Asset" glib:type-name="GESTrackElementAsset" glib:get-type="ges_track_element_asset_get_type" glib:type-struct="TrackElementAssetClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <virtual-method name="get_natural_framerate" invoker="get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">Result: %TRUE if @self has a natural framerate %FALSE otherwise</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h">%TRUE if @self has a natural framerate @FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_natural_framerate" c:identifier="ges_track_element_asset_get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">Result: %TRUE if @self has a natural framerate %FALSE otherwise</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_track_type" c:identifier="ges_track_element_asset_get_track_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">Get the GESAssetTrackType the #GESTrackElement extracted from @self +should get into</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">a #GESTrackType</doc> + <type name="TrackType" c:type="const GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_track_type" c:identifier="ges_track_element_asset_set_track_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">Set the #GESTrackType the #GESTrackElement extracted from @self +should get into</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESTrackType</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <property name="track-type" writable="1" construct="1" transfer-ownership="none"> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="Asset" c:type="GESAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TrackElementAssetPrivate" c:type="GESTrackElementAssetPrivate*"/> + </field> + <field name="__ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TrackElementAssetClass" c:type="GESTrackElementAssetClass" glib:is-gtype-struct-for="TrackElementAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <field name="parent_class"> + <type name="AssetClass" c:type="GESAssetClass"/> + </field> + <field name="get_natural_framerate"> + <callback name="get_natural_framerate"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h">%TRUE if @self has a natural framerate @FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TrackElementAssetPrivate" c:type="GESTrackElementAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + </record> + <record name="TrackElementClass" c:type="GESTrackElementClass" glib:is-gtype-struct-for="TrackElement"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="TimelineElementClass" c:type="GESTimelineElementClass"/> + </field> + <field name="nleobject_factorytype"> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="create_gnl_object"> + <callback name="create_gnl_object"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">the #NLEObject to use in the #nlecomposition</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_element"> + <callback name="create_element"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">the #GstElement that the underlying nleobject +controls.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="active_changed"> + <callback name="active_changed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">Whether the element is active or not inside the #nlecomposition</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="changed"> + <callback name="changed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="list_children_properties" introspectable="0"> + <callback name="list_children_properties" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="n_properties" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="lookup_child"> + <callback name="lookup_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">TRUE if @element and @pspec could be found. FALSE otherwise. In that +case the values for @pspec and @element are not modified. Unref @element after +usage.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Object to lookup the property in</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Name of the property to look up. You can specify the name of the + class as such: "ClassName::property-name", to guarantee that you get the + proper GParamSpec in case various GstElement-s contain the same property + name. If you don't do so, you will get the first element found, having + this property and the and the corresponding GParamSpec.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to a #GstElement that + takes the real object to set property on</doc> + <type name="Gst.Element" c:type="GstElement**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to take the specification + describing the property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </callback> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <field name="_ges_reserved" writable="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <field name="default_has_internal_source" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="default_track_type" writable="1"> + <type name="TrackType" c:type="GESTrackType"/> + </field> + </record> + </union> + </record> + <record name="TrackElementPrivate" c:type="GESTrackElementPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + </record> + <record name="TrackPrivate" c:type="GESTrackPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + </record> + <bitfield name="TrackType" glib:type-name="GESTrackType" glib:get-type="ges_track_type_get_type" c:type="GESTrackType"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Types of content handled by a track. If the content is not one of +@GES_TRACK_TYPE_AUDIO, @GES_TRACK_TYPE_VIDEO or @GES_TRACK_TYPE_TEXT, +the user of the #GESTrack must set the type to @GES_TRACK_TYPE_CUSTOM. + +@GES_TRACK_TYPE_UNKNOWN is for internal purposes and should not be used +by users</doc> + <member name="unknown" value="1" c:identifier="GES_TRACK_TYPE_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A track of unknown type (i.e. invalid)</doc> + </member> + <member name="audio" value="2" c:identifier="GES_TRACK_TYPE_AUDIO" glib:nick="audio"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">An audio track</doc> + </member> + <member name="video" value="4" c:identifier="GES_TRACK_TYPE_VIDEO" glib:nick="video"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A video track</doc> + </member> + <member name="text" value="8" c:identifier="GES_TRACK_TYPE_TEXT" glib:nick="text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A text (subtitle) track</doc> + </member> + <member name="custom" value="16" c:identifier="GES_TRACK_TYPE_CUSTOM" glib:nick="custom"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A custom-content track</doc> + </member> + <function name="name" c:identifier="ges_track_type_name"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </function> + </bitfield> + <class name="Transition" c:symbol-prefix="transition" c:type="GESTransition" parent="Operation" abstract="1" glib:type-name="GESTransition" glib:get-type="ges_transition_get_type" glib:type-struct="TransitionClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition.h">Base class for media transitions.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="Operation" c:type="GESOperation"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TransitionPrivate" c:type="GESTransitionPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TransitionClass" c:type="GESTransitionClass" glib:is-gtype-struct-for="Transition"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="OperationClass" c:type="GESOperationClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="TransitionClip" c:symbol-prefix="transition_clip" c:type="GESTransitionClip" parent="BaseTransitionClip" glib:type-name="GESTransitionClip" glib:get-type="ges_transition_clip_get_type" glib:type-struct="TransitionClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">Creates an object that mixes together the two underlying objects, A and B. +The A object is assumed to have a higher prioirity (lower number) than the +B object. At the transition in point, only A will be visible, and by the +end only B will be visible. + +The shape of the video transition depends on the value of the "vtype" +property. The default value is "crossfade". For audio, only "crossfade" is +supported. + +The ID of the ExtractableType is the nickname of the vtype property value. Note +that this value can be changed after creation and the GESExtractable.asset value +will be updated when needed.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_transition_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">Creates a new #GESTransitionClip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">a newly created #GESTransitionClip, +or %NULL if something went wrong.</doc> + <type name="TransitionClip" c:type="GESTransitionClip*"/> + </return-value> + <parameters> + <parameter name="vtype" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">the type of transition to create</doc> + <type name="VideoStandardTransitionType" c:type="GESVideoStandardTransitionType"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_for_nick" c:identifier="ges_transition_clip_new_for_nick"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">Creates a new #GESTransitionClip for the provided @nick.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">The newly created #GESTransitionClip, +or %NULL if something went wrong</doc> + <type name="TransitionClip" c:type="GESTransitionClip*"/> + </return-value> + <parameters> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">a string representing the type of transition to create</doc> + <type name="utf8" c:type="char*"/> + </parameter> + </parameters> + </constructor> + <property name="vtype" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">a #GESVideoStandardTransitionType representing the wipe to use</doc> + <type name="VideoStandardTransitionType"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="BaseTransitionClip" c:type="GESBaseTransitionClip"/> + </field> + <field name="vtype"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h">a #GESVideoStandardTransitionType indicating the type of video transition +to apply.</doc> + <type name="VideoStandardTransitionType" c:type="GESVideoStandardTransitionType"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TransitionClipPrivate" c:type="GESTransitionClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TransitionClipClass" c:type="GESTransitionClipClass" glib:is-gtype-struct-for="TransitionClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="BaseTransitionClipClass" c:type="GESBaseTransitionClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TransitionClipPrivate" c:type="GESTransitionClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + </record> + <record name="TransitionPrivate" c:type="GESTransitionPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition.h"/> + </record> + <class name="UriClip" c:symbol-prefix="uri_clip" c:type="GESUriClip" parent="SourceClip" glib:type-name="GESUriClip" glib:get-type="ges_uri_clip_get_type" glib:type-struct="UriClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Represents all the output streams from a particular uri. It is assumed that +the URI points to a file of some type.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_uri_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Creates a new #GESUriClip for the provided @uri. + +> **WARNING**: This function might 'discover` @uri **synchrounously**, it is +> an IO and processing intensive task that you probably don't want to run in +> an application mainloop. Have a look at #ges_asset_request_async to see how +> to make that operation happen **asynchronously**.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">The newly created #GESUriClip, or +%NULL if there was an error.</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the URI the source should control</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="get_uri" c:identifier="ges_uri_clip_get_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Get the location of the resource.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">The location of the resource.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_image" c:identifier="ges_uri_clip_is_image"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Lets you know if @self is an image or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">%TRUE if @self is a still image %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_muted" c:identifier="ges_uri_clip_is_muted"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Lets you know if the audio track of @self is muted or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">%TRUE if the audio track of @self is muted, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_is_image" c:identifier="ges_uri_clip_set_is_image"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Sets whether the clip is a still image or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + <parameter name="is_image" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">%TRUE if @self is a still image, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_mute" c:identifier="ges_uri_clip_set_mute"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Sets whether the audio track of this clip is muted or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip on which to mute or unmute the audio track</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + <parameter name="mute" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">%TRUE to mute @self audio track, %FALSE to unmute it</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="is-image" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Whether this uri clip represents a still image or not. This must be set +before create_track_elements is called.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="mute" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Whether the sound will be played or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="supported-formats" writable="1" construct="1" transfer-ownership="none"> + <type name="TrackType"/> + </property> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">The location of the file/resource to use.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent"> + <type name="SourceClip" c:type="GESSourceClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriClipPrivate" c:type="GESUriClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <class name="UriClipAsset" c:symbol-prefix="uri_clip_asset" c:type="GESUriClipAsset" parent="SourceClipAsset" glib:type-name="GESUriClipAsset" glib:get-type="ges_uri_clip_asset_get_type" glib:type-struct="UriClipAssetClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <function name="finish" c:identifier="ges_uri_clip_asset_finish" version="1.16" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Finalize the request of an async #GESUriClipAsset</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The #GESUriClipAsset previously requested</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </return-value> + <parameters> + <parameter name="res" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The #GAsyncResult from which to get the newly created #GESUriClipAsset</doc> + <type name="Gio.AsyncResult" c:type="GAsyncResult*"/> + </parameter> + </parameters> + </function> + <function name="new" c:identifier="ges_uri_clip_asset_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Creates a #GESUriClipAsset for @uri + +Example of request of a GESUriClipAsset: +|[ +// The request callback +static void +filesource_asset_loaded_cb (GESAsset * source, GAsyncResult * res, gpointer user_data) +{ + GError *error = NULL; + GESUriClipAsset *filesource_asset; + + filesource_asset = ges_uri_clip_asset_finish (res, &error); + if (filesource_asset) { + gst_print ("The file: %s is usable as a FileSource, it is%s an image and lasts %" GST_TIME_FORMAT, + ges_asset_get_id (GES_ASSET (filesource_asset)) + ges_uri_clip_asset_is_image (filesource_asset) ? "" : " not", + GST_TIME_ARGS (ges_uri_clip_asset_get_duration (filesource_asset)); + } else { + gst_print ("The file: %s is *not* usable as a FileSource because: %s", + ges_asset_get_id (source), error->message); + } + + gst_object_unref (mfs); +} + +// The request: +ges_uri_clip_asset_new (uri, (GAsyncReadyCallback) filesource_asset_loaded_cb, user_data); +]|</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The URI of the file for which to create a #GESUriClipAsset</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">optional %GCancellable object, %NULL to ignore.</doc> + <type name="Gio.Cancellable" c:type="GCancellable*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GAsyncReadyCallback to call when the initialization is finished</doc> + <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The user data to pass when @callback is called</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="request_sync" c:identifier="ges_uri_clip_asset_request_sync" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Creates a #GESUriClipAsset for @uri syncronously. You should avoid +to use it in application, and rather create #GESUriClipAsset asynchronously</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A reference to the requested asset or %NULL if +an error happened</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The URI of the file for which to create a #GESUriClipAsset. +You can also use multi file uris for #GESMultiFileSource.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <method name="get_duration" c:identifier="ges_uri_clip_asset_get_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Gets duration of the file represented by @self</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The duration of @self</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_info" c:identifier="ges_uri_clip_asset_get_info"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Gets #GstDiscovererInfo about the file</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">#GstDiscovererInfo of specified asset</doc> + <type name="GstPbutils.DiscovererInfo" c:type="GstDiscovererInfo*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Target asset</doc> + <type name="UriClipAsset" c:type="const GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_duration" c:identifier="ges_uri_clip_asset_get_max_duration" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Gets maximum duration of the file represented by @self, +it is usually the same as GESUriClipAsset::duration, +but in the case of nested timelines, for example, they +are different as those can be extended 'infinitely'.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The maximum duration of @self</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_assets" c:identifier="ges_uri_clip_asset_get_stream_assets"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Get the GESUriSourceAsset @self containes</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a +#GList of #GESUriSourceAsset</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="UriSourceAsset"/> + </type> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_image" c:identifier="ges_uri_clip_asset_is_image" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Gets Whether the file represented by @self is an image or not</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Whether the file represented by @self is an image or not</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <property name="duration" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The duration (in nanoseconds) of the media file</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="is-nested-timeline" version="1.18" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The duration (in nanoseconds) of the media file</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="parent"> + <type name="SourceClipAsset" c:type="GESSourceClipAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriClipAssetPrivate" c:type="GESUriClipAssetPrivate*"/> + </field> + <field name="__ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="UriClipAssetClass" c:type="GESUriClipAssetClass" glib:is-gtype-struct-for="UriClipAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <field name="parent_class"> + <type name="SourceClipAssetClass" c:type="GESSourceClipAssetClass"/> + </field> + <field name="discoverer" readable="0" private="1"> + <type name="GstPbutils.Discoverer" c:type="GstDiscoverer*"/> + </field> + <field name="sync_discoverer" readable="0" private="1"> + <type name="GstPbutils.Discoverer" c:type="GstDiscoverer*"/> + </field> + <field name="discovered"> + <callback name="discovered"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="discoverer" transfer-ownership="none"> + <type name="GstPbutils.Discoverer" c:type="GstDiscoverer*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <type name="GstPbutils.DiscovererInfo" c:type="GstDiscovererInfo*"/> + </parameter> + <parameter name="err" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="set_timeout" c:identifier="ges_uri_clip_asset_class_set_timeout"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Sets the timeout of #GESUriClipAsset loading</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The #GESUriClipAssetClass on which to set the discoverer timeout</doc> + <type name="UriClipAssetClass" c:type="GESUriClipAssetClass*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The timeout to set</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + </record> + <record name="UriClipAssetPrivate" c:type="GESUriClipAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + </record> + <record name="UriClipClass" c:type="GESUriClipClass" glib:is-gtype-struct-for="UriClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClipClass" c:type="GESSourceClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="UriClipPrivate" c:type="GESUriClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + </record> + <record name="UriSource" c:type="GESUriSource" disguised="1"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h"/> + </record> + <class name="UriSourceAsset" c:symbol-prefix="uri_source_asset" c:type="GESUriSourceAsset" parent="TrackElementAsset" glib:type-name="GESUriSourceAsset" glib:get-type="ges_uri_source_asset_get_type" glib:type-struct="UriSourceAssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h">Asset to create a stream specific #GESSource for a media file. + +NOTE: You should never request such a #GESAsset as they will be created automatically +by #GESUriClipAsset-s.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <method name="get_filesource_asset" c:identifier="ges_uri_source_asset_get_filesource_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Get the #GESUriClipAsset @self is contained in</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="const GESUriClipAsset*"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A #GESUriClipAsset</doc> + <type name="UriSourceAsset" c:type="GESUriSourceAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_info" c:identifier="ges_uri_source_asset_get_stream_info"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Get the #GstDiscovererStreamInfo user by @asset</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="GstPbutils.DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A #GESUriClipAsset</doc> + <type name="UriSourceAsset" c:type="GESUriSourceAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_uri" c:identifier="ges_uri_source_asset_get_stream_uri"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <type name="UriSourceAsset" c:type="GESUriSourceAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_image" c:identifier="ges_uri_source_asset_is_image" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Check if @asset contains a single image</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">%TRUE if the video stream corresponds to an image (i.e. only +contains one frame)</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A #GESUriClipAsset</doc> + <type name="UriSourceAsset" c:type="GESUriSourceAsset*"/> + </instance-parameter> + </parameters> + </method> + <field name="parent"> + <type name="TrackElementAsset" c:type="GESTrackElementAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriSourceAssetPrivate" c:type="GESUriSourceAssetPrivate*"/> + </field> + <field name="__ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="UriSourceAssetClass" c:type="GESUriSourceAssetClass" glib:is-gtype-struct-for="UriSourceAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <field name="parent_class"> + <type name="TrackElementAssetClass" c:type="GESTrackElementAssetClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="UriSourceAssetPrivate" c:type="GESUriSourceAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + </record> + <constant name="VERSION_MAJOR" value="1" c:type="GES_VERSION_MAJOR"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_MICRO" value="0" c:type="GES_VERSION_MICRO"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_MINOR" value="23" c:type="GES_VERSION_MINOR"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_NANO" value="1" c:type="GES_VERSION_NANO"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/> + <type name="gint" c:type="gint"/> + </constant> + <class name="VideoSource" c:symbol-prefix="video_source" c:type="GESVideoSource" parent="Source" abstract="1" glib:type-name="GESVideoSource" glib:get-type="ges_video_source_get_type" glib:type-struct="VideoSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.h">Base class for video sources</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="get_natural_size" c:identifier="ges_video_source_get_natural_size" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">Retrieves the natural size of the video stream. The natural size, is +the size at which it will be displayed if no scaling is being applied. + +NOTE: The sources take into account the potential video rotation applied +by the #videoflip element that is inside the source, effects applied on +the clip which potentially also rotate the element are not taken into +account.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">%TRUE if the object has a natural size, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">A #GESVideoSource</doc> + <type name="VideoSource" c:type="GESVideoSource*"/> + </instance-parameter> + <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">The natural width of the underlying source</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">The natural height of the underlying source</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="Source" c:type="GESSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="VideoSourcePrivate" c:type="GESVideoSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoSourceClass" c:type="GESVideoSourceClass" glib:is-gtype-struct-for="VideoSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClass" c:type="GESSourceClass"/> + </field> + <field name="create_source" introspectable="0"> + <callback name="create_source" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <field name="_ges_reserved" writable="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <field name="disable_scale_in_compositor" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="needs_converters"> + <callback name="needs_converters"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="VideoSource" c:type="GESVideoSource*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_natural_size"> + <callback name="get_natural_size"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="VideoSource" c:type="GESVideoSource*"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_filters" introspectable="0"> + <callback name="create_filters" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="VideoSource" c:type="GESVideoSource*"/> + </parameter> + <parameter name="filters" transfer-ownership="none"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + <parameter name="needs_converters" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + </record> + </union> + </record> + <record name="VideoSourcePrivate" c:type="GESVideoSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + </record> + <enumeration name="VideoStandardTransitionType" glib:type-name="GESVideoStandardTransitionType" glib:get-type="ges_video_standard_transition_type_get_type" c:type="GESVideoStandardTransitionType"> + <member name="none" value="0" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Transition type has not been set,</doc> + </member> + <member name="bar_wipe_lr" value="1" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR" glib:nick="bar-wipe-lr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A bar moves from left to right,</doc> + </member> + <member name="bar_wipe_tb" value="2" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB" glib:nick="bar-wipe-tb"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A bar moves from top to bottom,</doc> + </member> + <member name="box_wipe_tl" value="3" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL" glib:nick="box-wipe-tl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the upper-left corner to the lower-right corner,</doc> + </member> + <member name="box_wipe_tr" value="4" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR" glib:nick="box-wipe-tr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the upper-right corner to the lower-left corner,</doc> + </member> + <member name="box_wipe_br" value="5" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR" glib:nick="box-wipe-br"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the lower-right corner to the upper-left corner,</doc> + </member> + <member name="box_wipe_bl" value="6" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL" glib:nick="box-wipe-bl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the lower-left corner to the upper-right corner,</doc> + </member> + <member name="four_box_wipe_ci" value="7" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI" glib:nick="four-box-wipe-ci"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box shape expands from each of the four corners toward the center,</doc> + </member> + <member name="four_box_wipe_co" value="8" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO" glib:nick="four-box-wipe-co"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box shape expands from the center of each quadrant toward the corners of each quadrant,</doc> + </member> + <member name="barndoor_v" value="21" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V" glib:nick="barndoor-v"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A central, vertical line splits and expands toward the left and right edges,</doc> + </member> + <member name="barndoor_h" value="22" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H" glib:nick="barndoor-h"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A central, horizontal line splits and expands toward the top and bottom edges,</doc> + </member> + <member name="box_wipe_tc" value="23" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC" glib:nick="box-wipe-tc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the top edge's midpoint to the bottom corners,</doc> + </member> + <member name="box_wipe_rc" value="24" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC" glib:nick="box-wipe-rc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the right edge's midpoint to the left corners,</doc> + </member> + <member name="box_wipe_bc" value="25" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC" glib:nick="box-wipe-bc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the bottom edge's midpoint to the top corners,</doc> + </member> + <member name="box_wipe_lc" value="26" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC" glib:nick="box-wipe-lc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the left edge's midpoint to the right corners,</doc> + </member> + <member name="diagonal_tl" value="41" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL" glib:nick="diagonal-tl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diagonal line moves from the upper-left corner to the lower-right corner,</doc> + </member> + <member name="diagonal_tr" value="42" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR" glib:nick="diagonal-tr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diagonal line moves from the upper right corner to the lower-left corner,</doc> + </member> + <member name="bowtie_v" value="43" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V" glib:nick="bowtie-v"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two wedge shapes slide in from the top and bottom edges toward the center,</doc> + </member> + <member name="bowtie_h" value="44" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H" glib:nick="bowtie-h"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two wedge shapes slide in from the left and right edges toward the center,</doc> + </member> + <member name="barndoor_dbl" value="45" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL" glib:nick="barndoor-dbl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diagonal line from the lower-left to upper-right corners splits and expands toward the opposite corners,</doc> + </member> + <member name="barndoor_dtl" value="46" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL" glib:nick="barndoor-dtl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diagonal line from upper-left to lower-right corners splits and expands toward the opposite corners,</doc> + </member> + <member name="misc_diagonal_dbd" value="47" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD" glib:nick="misc-diagonal-dbd"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Four wedge shapes split from the center and retract toward the four edges,</doc> + </member> + <member name="misc_diagonal_dd" value="48" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD" glib:nick="misc-diagonal-dd"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diamond connecting the four edge midpoints simultaneously contracts toward the center and expands toward the edges,</doc> + </member> + <member name="vee_d" value="61" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D" glib:nick="vee-d"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A wedge shape moves from top to bottom,</doc> + </member> + <member name="vee_l" value="62" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L" glib:nick="vee-l"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A wedge shape moves from right to left,</doc> + </member> + <member name="vee_u" value="63" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U" glib:nick="vee-u"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A wedge shape moves from bottom to top,</doc> + </member> + <member name="vee_r" value="64" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R" glib:nick="vee-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A wedge shape moves from left to right,</doc> + </member> + <member name="barnvee_d" value="65" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D" glib:nick="barnvee-d"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A 'V' shape extending from the bottom edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,</doc> + </member> + <member name="barnvee_l" value="66" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L" glib:nick="barnvee-l"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A 'V' shape extending from the left edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,</doc> + </member> + <member name="barnvee_u" value="67" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U" glib:nick="barnvee-u"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A 'V' shape extending from the top edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,</doc> + </member> + <member name="barnvee_r" value="68" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R" glib:nick="barnvee-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A 'V' shape extending from the right edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,</doc> + </member> + <member name="iris_rect" value="101" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT" glib:nick="iris-rect"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A rectangle expands from the center.,</doc> + </member> + <member name="clock_cw12" value="201" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12" glib:nick="clock-cw12"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the twelve o'clock position,</doc> + </member> + <member name="clock_cw3" value="202" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3" glib:nick="clock-cw3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the three o'clock position,</doc> + </member> + <member name="clock_cw6" value="203" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6" glib:nick="clock-cw6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the six o'clock position,</doc> + </member> + <member name="clock_cw9" value="204" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9" glib:nick="clock-cw9"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the nine o'clock position,</doc> + </member> + <member name="pinwheel_tbv" value="205" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV" glib:nick="pinwheel-tbv"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands sweep clockwise from the twelve and six o'clock positions,</doc> + </member> + <member name="pinwheel_tbh" value="206" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH" glib:nick="pinwheel-tbh"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands sweep clockwise from the nine and three o'clock positions,</doc> + </member> + <member name="pinwheel_fb" value="207" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB" glib:nick="pinwheel-fb"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Four radial hands sweep clockwise,</doc> + </member> + <member name="fan_ct" value="211" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT" glib:nick="fan-ct"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the top edge, the fan axis at the center,</doc> + </member> + <member name="fan_cr" value="212" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR" glib:nick="fan-cr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the right edge, the fan axis at the center,</doc> + </member> + <member name="doublefan_fov" value="213" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV" glib:nick="doublefan-fov"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two fans, their axes at the center, unfold from the top and bottom,</doc> + </member> + <member name="doublefan_foh" value="214" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH" glib:nick="doublefan-foh"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two fans, their axes at the center, unfold from the left and right,</doc> + </member> + <member name="singlesweep_cwt" value="221" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT" glib:nick="singlesweep-cwt"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the top edge's midpoint,</doc> + </member> + <member name="singlesweep_cwr" value="222" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR" glib:nick="singlesweep-cwr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the right edge's midpoint,</doc> + </member> + <member name="singlesweep_cwb" value="223" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB" glib:nick="singlesweep-cwb"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the bottom edge's midpoint,</doc> + </member> + <member name="singlesweep_cwl" value="224" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL" glib:nick="singlesweep-cwl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the left edge's midpoint,</doc> + </member> + <member name="doublesweep_pv" value="225" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV" glib:nick="doublesweep-pv"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands sweep clockwise and counter-clockwise from the top and bottom edges' midpoints,</doc> + </member> + <member name="doublesweep_pd" value="226" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD" glib:nick="doublesweep-pd"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands sweep clockwise and counter-clockwise from the left and right edges' midpoints,</doc> + </member> + <member name="doublesweep_ov" value="227" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV" glib:nick="doublesweep-ov"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the top and bottom edges' midpoints sweep from right to left,</doc> + </member> + <member name="doublesweep_oh" value="228" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH" glib:nick="doublesweep-oh"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the left and right edges' midpoints sweep from top to bottom,</doc> + </member> + <member name="fan_t" value="231" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T" glib:nick="fan-t"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the bottom, the fan axis at the top edge's midpoint,</doc> + </member> + <member name="fan_r" value="232" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R" glib:nick="fan-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the left, the fan axis at the right edge's midpoint,</doc> + </member> + <member name="fan_b" value="233" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B" glib:nick="fan-b"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the top, the fan axis at the bottom edge's midpoint,</doc> + </member> + <member name="fan_l" value="234" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L" glib:nick="fan-l"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the right, the fan axis at the left edge's midpoint,</doc> + </member> + <member name="doublefan_fiv" value="235" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV" glib:nick="doublefan-fiv"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two fans, their axes at the top and bottom, unfold from the center,</doc> + </member> + <member name="doublefan_fih" value="236" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH" glib:nick="doublefan-fih"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two fans, their axes at the left and right, unfold from the center,</doc> + </member> + <member name="singlesweep_cwtl" value="241" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL" glib:nick="singlesweep-cwtl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the upper-left corner,</doc> + </member> + <member name="singlesweep_cwbl" value="242" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL" glib:nick="singlesweep-cwbl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps counter-clockwise from the lower-left corner.,</doc> + </member> + <member name="singlesweep_cwbr" value="243" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR" glib:nick="singlesweep-cwbr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the lower-right corner,</doc> + </member> + <member name="singlesweep_cwtr" value="244" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR" glib:nick="singlesweep-cwtr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps counter-clockwise from the upper-right corner,</doc> + </member> + <member name="doublesweep_pdtl" value="245" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL" glib:nick="doublesweep-pdtl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the upper-left and lower-right corners sweep down and up,</doc> + </member> + <member name="doublesweep_pdbl" value="246" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL" glib:nick="doublesweep-pdbl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the lower-left and upper-right corners sweep down and up,</doc> + </member> + <member name="saloondoor_t" value="251" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T" glib:nick="saloondoor-t"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the upper-left and upper-right corners sweep down,</doc> + </member> + <member name="saloondoor_l" value="252" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L" glib:nick="saloondoor-l"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the upper-left and lower-left corners sweep to the right,</doc> + </member> + <member name="saloondoor_b" value="253" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B" glib:nick="saloondoor-b"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the lower-left and lower-right corners sweep up,</doc> + </member> + <member name="saloondoor_r" value="254" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R" glib:nick="saloondoor-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the upper-right and lower-right corners sweep to the left,</doc> + </member> + <member name="windshield_r" value="261" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R" glib:nick="windshield-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the midpoints of the top and bottom halves sweep from right to left,</doc> + </member> + <member name="windshield_u" value="262" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U" glib:nick="windshield-u"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the midpoints of the left and right halves sweep from top to bottom,</doc> + </member> + <member name="windshield_v" value="263" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V" glib:nick="windshield-v"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two sets of radial hands attached at the midpoints of the top and bottom halves sweep from top to bottom and bottom to top,</doc> + </member> + <member name="windshield_h" value="264" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H" glib:nick="windshield-h"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two sets of radial hands attached at the midpoints of the left and right halves sweep from left to right and right to left,</doc> + </member> + <member name="crossfade" value="512" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE" glib:nick="crossfade"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Crossfade</doc> + </member> + <member name="fade_in" value="513" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN" glib:nick="fade-in"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Similar to crossfade, but fade in the front video without fading out the background one (Since: 1.22)</doc> + </member> + </enumeration> + <enumeration name="VideoTestPattern" glib:type-name="GESVideoTestPattern" glib:get-type="ges_video_test_pattern_get_type" c:type="GESVideoTestPattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The test pattern to produce</doc> + <member name="smpte" value="0" c:identifier="GES_VIDEO_TEST_PATTERN_SMPTE" glib:nick="smpte"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A standard SMPTE test pattern</doc> + </member> + <member name="snow" value="1" c:identifier="GES_VIDEO_TEST_PATTERN_SNOW" glib:nick="snow"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Random noise</doc> + </member> + <member name="black" value="2" c:identifier="GES_VIDEO_TEST_PATTERN_BLACK" glib:nick="black"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A black image</doc> + </member> + <member name="white" value="3" c:identifier="GES_VIDEO_TEST_PATTERN_WHITE" glib:nick="white"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A white image</doc> + </member> + <member name="red" value="4" c:identifier="GES_VIDEO_TEST_PATTERN_RED" glib:nick="red"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A red image</doc> + </member> + <member name="green" value="5" c:identifier="GES_VIDEO_TEST_PATTERN_GREEN" glib:nick="green"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A green image</doc> + </member> + <member name="blue" value="6" c:identifier="GES_VIDEO_TEST_PATTERN_BLUE" glib:nick="blue"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A blue image</doc> + </member> + <member name="checkers_1" value="7" c:identifier="GES_VIDEO_TEST_PATTERN_CHECKERS1" glib:nick="checkers-1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Checkers pattern (1px)</doc> + </member> + <member name="checkers_2" value="8" c:identifier="GES_VIDEO_TEST_PATTERN_CHECKERS2" glib:nick="checkers-2"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Checkers pattern (2px)</doc> + </member> + <member name="checkers_4" value="9" c:identifier="GES_VIDEO_TEST_PATTERN_CHECKERS4" glib:nick="checkers-4"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Checkers pattern (4px)</doc> + </member> + <member name="checkers_8" value="10" c:identifier="GES_VIDEO_TEST_PATTERN_CHECKERS8" glib:nick="checkers-8"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Checkers pattern (8px)</doc> + </member> + <member name="circular" value="11" c:identifier="GES_VIDEO_TEST_PATTERN_CIRCULAR" glib:nick="circular"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Circular pattern</doc> + </member> + <member name="blink" value="12" c:identifier="GES_VIDEO_TEST_PATTERN_BLINK" glib:nick="blink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Alternate between black and white</doc> + </member> + <member name="smpte75" value="13" c:identifier="GES_VIDEO_TEST_PATTERN_SMPTE75" glib:nick="smpte75"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">SMPTE test pattern (75% color bars)</doc> + </member> + <member name="zone_plate" value="14" c:identifier="GES_VIDEO_TEST_ZONE_PLATE" glib:nick="zone-plate"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Zone plate</doc> + </member> + <member name="gamut" value="15" c:identifier="GES_VIDEO_TEST_GAMUT" glib:nick="gamut"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Gamut checkers</doc> + </member> + <member name="chroma_zone_plate" value="16" c:identifier="GES_VIDEO_TEST_CHROMA_ZONE_PLATE" glib:nick="chroma-zone-plate"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Chroma zone plate</doc> + </member> + <member name="solid_color" value="17" c:identifier="GES_VIDEO_TEST_PATTERN_SOLID" glib:nick="solid-color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Solid color</doc> + </member> + </enumeration> + <class name="VideoTestSource" c:symbol-prefix="video_test_source" c:type="GESVideoTestSource" parent="VideoSource" glib:type-name="GESVideoTestSource" glib:get-type="ges_video_test_source_get_type" glib:type-struct="VideoTestSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h">### Children Properties + + {{ libs/GESVideoTestSource-children-props.md }}</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="get_pattern" c:identifier="ges_video_test_source_get_pattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">Get the video pattern used by the @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">The video pattern used by the @source.</doc> + <type name="VideoTestPattern" c:type="GESVideoTestPattern"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">a #GESVideoTestPattern</doc> + <type name="VideoTestSource" c:type="GESVideoTestSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_pattern" c:identifier="ges_video_test_source_set_pattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">Sets the source to use the given @pattern.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">a #GESVideoTestSource</doc> + <type name="VideoTestSource" c:type="GESVideoTestSource*"/> + </instance-parameter> + <parameter name="pattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">a #GESVideoTestPattern</doc> + <type name="VideoTestPattern" c:type="GESVideoTestPattern"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="VideoTestSourcePrivate" c:type="GESVideoTestSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoTestSourceClass" c:type="GESVideoTestSourceClass" glib:is-gtype-struct-for="VideoTestSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + <field name="parent_class"> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="VideoTestSourcePrivate" c:type="GESVideoTestSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + </record> + <class name="VideoTrack" c:symbol-prefix="video_track" c:type="GESVideoTrack" parent="Track" glib:type-name="GESVideoTrack" glib:get-type="ges_video_track_get_type" glib:type-struct="VideoTrackClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-track.c">A #GESVideoTrack is a default video #GESTrack, with a +#GES_TRACK_TYPE_VIDEO #GESTrack:track-type and "video/x-raw(ANY)" +#GESTrack:caps. + +By default, a video track will have its #GESTrack:restriction-caps +set to "video/x-raw" with the following properties: + +- width: 1280 +- height: 720 +- framerate: 30/1 + +These fields are needed for negotiation purposes, but you can change +their values if you wish. It is advised that you do so using +ges_track_update_restriction_caps() with new values for the fields you +wish to change, and any additional fields you may want to add. Unlike +using ges_track_set_restriction_caps(), this will ensure that these +default fields will at least have some value set.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-track.h"/> + <implements name="MetaContainer"/> + <implements name="Gst.ChildProxy"/> + <constructor name="new" c:identifier="ges_video_track_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-track.c">Creates a new video track, with a #GES_TRACK_TYPE_VIDEO +#GESTrack:track-type and "video/x-raw(ANY)" #GESTrack:caps, and +"video/x-raw" #GESTrack:restriction-caps with the properties: + +- width: 1280 +- height: 720 +- framerate: 30/1 + +You should use ges_track_update_restriction_caps() if you wish to +modify these fields, or add additional ones.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-track.c">The newly created video track.</doc> + <type name="VideoTrack" c:type="GESVideoTrack*"/> + </return-value> + </constructor> + <field name="parent_instance"> + <type name="Track" c:type="GESTrack"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="VideoTrackPrivate" c:type="GESVideoTrackPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoTrackClass" c:type="GESVideoTrackClass" glib:is-gtype-struct-for="VideoTrack"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-track.h"/> + <field name="parent_class"> + <type name="TrackClass" c:type="GESTrackClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="VideoTrackPrivate" c:type="GESVideoTrackPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-track.h"/> + </record> + <class name="VideoTransition" c:symbol-prefix="video_transition" c:type="GESVideoTransition" parent="Transition" glib:type-name="GESVideoTransition" glib:get-type="ges_video_transition_get_type" glib:type-struct="VideoTransitionClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_video_transition_new"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </return-value> + </constructor> + <method name="get_border" c:identifier="ges_video_transition_get_border" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Get the border property of @self, this value represents +the border width of the transition.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_get_child_property instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The border values of @self or -1 if not meaningful +(this will happen when not using a smpte transition).</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The #GESVideoTransition to get the border from</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_transition_type" c:identifier="ges_video_transition_get_transition_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Get the transition type used by @trans.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The transition type used by @trans.</doc> + <type name="VideoStandardTransitionType" c:type="GESVideoStandardTransitionType"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">a #GESVideoTransition</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_inverted" c:identifier="ges_video_transition_is_inverted" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Get the invert property of @self, this value represents +the direction of the transition.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_get_child_property instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The invert value of @self</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The #GESVideoTransition to get the inversion from</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_border" c:identifier="ges_video_transition_set_border" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Set the border property of @self, this value represents +the border width of the transition. In case this value does +not make sense for the current transition type, it is cached +for later use.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_set_child_property instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The #GESVideoTransition to set the border to</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The value of the border to set on @object</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_inverted" c:identifier="ges_video_transition_set_inverted" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Set the invert property of @self, this value represents +the direction of the transition. In case this value does +not make sense for the current transition type, it is cached +for later use.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_set_child_property instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The #GESVideoTransition to set invert on</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + <parameter name="inverted" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">%TRUE if the transition should be inverted %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_transition_type" c:identifier="ges_video_transition_set_transition_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Sets the transition being used to @type.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">%TRUE if the transition type was properly changed, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">a #GESVideoTransition</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">a #GESVideoStandardTransitionType</doc> + <type name="VideoStandardTransitionType" c:type="GESVideoStandardTransitionType"/> + </parameter> + </parameters> + </method> + <property name="border" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">This value represents the border width of the transition.</doc> + <type name="guint" c:type="guint"/> + </property> + <property name="invert" deprecated="1" deprecated-version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">This value represents the direction of the transition.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_[sg]et_child_property instead.</doc-deprecated> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="transition-type" writable="1" transfer-ownership="none"> + <type name="VideoStandardTransitionType"/> + </property> + <field name="parent"> + <type name="Transition" c:type="GESTransition"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="VideoTransitionPrivate" c:type="GESVideoTransitionPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoTransitionClass" c:type="GESVideoTransitionClass" glib:is-gtype-struct-for="VideoTransition"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.h">parent class</doc> + <type name="TransitionClass" c:type="GESTransitionClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="VideoTransitionPrivate" c:type="GESVideoTransitionPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + </record> + <class name="VideoUriSource" c:symbol-prefix="video_uri_source" c:type="GESVideoUriSource" parent="VideoSource" glib:type-name="GESVideoUriSource" glib:get-type="ges_video_uri_source_get_type" glib:type-struct="VideoUriSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h">### Children Properties + + {{ libs/GESVideoUriSource-children-props.md }}</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.c">The location of the file/resource to use.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="uri" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriSource" c:type="GESUriSource*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoUriSourceClass" c:type="GESVideoUriSourceClass" glib:is-gtype-struct-for="VideoUriSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="VideoUriSourcePrivate" c:type="GESVideoUriSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h"/> + </record> + <class name="XmlFormatter" c:symbol-prefix="xml_formatter" c:type="GESXmlFormatter" parent="BaseXmlFormatter" glib:type-name="GESXmlFormatter" glib:get-type="ges_xml_formatter_get_type" glib:type-struct="XmlFormatterClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-xml-formatter.h"/> + <implements name="Extractable"/> + <field name="parent"> + <type name="BaseXmlFormatter" c:type="GESBaseXmlFormatter"/> + </field> + <field name="priv"> + <type name="XmlFormatterPrivate" c:type="GESXmlFormatterPrivate*"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="XmlFormatterClass" c:type="GESXmlFormatterClass" glib:is-gtype-struct-for="XmlFormatter"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-xml-formatter.h"/> + <field name="parent"> + <type name="BaseXmlFormatterClass" c:type="GESBaseXmlFormatterClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="XmlFormatterPrivate" c:type="GESXmlFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-xml-formatter.h"/> + </record> + <function name="add_missing_uri_relocation_uri" c:identifier="ges_add_missing_uri_relocation_uri"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="recurse" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="deinit" c:identifier="ges_deinit"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Clean up any resources created by GES in ges_init(). + +It is normally not needed to call this function in a normal application as the +resources will automatically be freed when the program terminates. +This function is therefore mostly used by testsuites and other memory profiling tools. +This function should be called from the thread where ges_init() was called. + +After this call GES should not be used until another ges_init() call.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="edge_name" c:identifier="ges_edge_name" moved-to="Edge.name" version="1.16"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.c">A human friendly name for @edge</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.c">The #GESEdge to get the name of</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + </parameters> + </function> + <function name="edit_mode_name" c:identifier="ges_edit_mode_name" moved-to="EditMode.name" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Return a string representation of @mode.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">a string representation of @mode.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">a #GESEditMode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + </parameters> + </function> + <function name="find_formatter_for_uri" c:identifier="ges_find_formatter_for_uri" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Get the best formatter for @uri. It tries to find a formatter +compatible with @uri extension, if none is found, it returns the default +formatter asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The #GESAsset for the best formatter to save to @uri</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="init" c:identifier="ges_init"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Initialize the GStreamer Editing Service. Call this before any usage of +GES. You should take care of initilizing GStreamer before calling this +function. + +MT safety. +GStreamer Editing Services do not guarantee MT safety. +An application is required to use GES APIs (including ges_deinit()) +in the thread where ges_init() was called.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="init_check" c:identifier="ges_init_check" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Initializes the GStreamer Editing Services library, setting up internal path lists, +and loading evrything needed. + +This function will return %FALSE if GES could not be initialized +for some reason.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">%TRUE if GES could be initialized.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="argc" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to application's argc</doc> + <type name="gint" c:type="int*"/> + </parameter> + <parameter name="argv" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to application's argv</doc> + <array length="0" zero-terminated="0" c:type="char***"> + <type name="utf8" c:type="char**"/> + </array> + </parameter> + </parameters> + </function> + <function name="init_get_option_group" c:identifier="ges_init_get_option_group" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Returns a #GOptionGroup with GES's argument specifications. The +group is set up to use standard GOption callbacks, so when using this +group in combination with GOption parsing methods, all argument parsing +and initialization is automated. + +This function is useful if you want to integrate GES with other +libraries that use GOption (see g_option_context_add_group() ). + +If you use this function, you should make sure you initialise the GStreamer +as one of the very first things in your program. That means you need to +use gst_init_get_option_group() and add it to the option context before +using the ges_init_get_option_group() result.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">a pointer to GES's option group.</doc> + <type name="GLib.OptionGroup" c:type="GOptionGroup*"/> + </return-value> + </function> + <function name="is_initialized" c:identifier="ges_is_initialized" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Use this function to check if GES has been initialized with ges_init() +or ges_init_check().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">%TRUE if initialization has been done, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="list_assets" c:identifier="ges_list_assets"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">List all the assets in the current cache whose +#GESAsset:extractable-type are of the given type (including +subclasses). + +Note that, since only a #GESExtractable can be extracted from an asset, +using `GES_TYPE_EXTRACTABLE` as @filter will return all the assets in +the current cache.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A list of all +#GESAsset-s currently in the cache whose #GESAsset:extractable-type is +of the @filter type.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Asset"/> + </type> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The type of object that can be extracted from the asset</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + <function name="play_sink_convert_frame" c:identifier="ges_play_sink_convert_frame" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-screenshot.c">Get the last buffer @playsink showed</doc> + <doc-deprecated xml:space="preserve">Use the "convert-sample" action signal of +#playsink instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-screenshot.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-screenshot.c">A #GstSample containing the last frame from +@playsink in the format defined by the @caps</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <parameter name="playsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-screenshot.c">The playsink to get last frame from</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-screenshot.c">The caps defining the format the return value will have</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pspec_equal" c:identifier="ges_pspec_equal"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-utils.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="key_spec_1" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + <parameter name="key_spec_2" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + </parameters> + </function> + <function name="pspec_hash" c:identifier="ges_pspec_hash"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-utils.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="key_spec" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + </parameters> + </function> + <function-macro name="timeline_get_project" c:identifier="ges_timeline_get_project" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">Helper macro to retrieve the project from which @obj was extracted</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">The #GESTimeline from which to retrieve the project</doc> + </parameter> + </parameters> + </function-macro> + <function name="track_type_name" c:identifier="ges_track_type_name" moved-to="TrackType.name"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </function> + <function name="validate_register_action_types" c:identifier="ges_validate_register_action_types"> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="version" c:identifier="ges_version"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Gets the version number of the GStreamer Editing Services library.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to a guint to store the major version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to a guint to store the minor version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="micro" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to a guint to store the micro version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="nano" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to a guint to store the nano version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/Gst-1.0.gir b/girs/Gst-1.0.gir new file mode 100644 index 0000000000..effa21f91c --- /dev/null +++ b/girs/Gst-1.0.gir @@ -0,0 +1,55081 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <package name="gstreamer-1.0"/> + <c:include name="gst/gst.h"/> + <namespace name="Gst" version="1.0" shared-library="libgstreamer-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <alias name="BufferMapInfo" c:type="GstBufferMapInfo" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Alias for #GstMapInfo to be used with g_auto(): +```c +void my_func(GstBuffer *buf) +{ + g_auto(GstBufferMapInfo) map = GST_MAP_INFO_INIT; + if (!gst_buffer_map(buf, &map, GST_MAP_READWRITE)) + return; + ... + // No need to call gst_buffer_unmap() +} +``` + +#GstMapInfo cannot be used with g_auto() because it is ambiguous whether it +needs to be unmapped using gst_buffer_unmap() or gst_memory_unmap(). + +See also #GstMemoryMapInfo.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <type name="MapInfo" c:type="GstMapInfo"/> + </alias> + <alias name="ClockID" c:type="GstClockID"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">A datatype to hold the handle to an outstanding sync or async clock callback.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="gpointer" c:type="gpointer"/> + </alias> + <alias name="ClockTime" c:type="GstClockTime"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">A datatype to hold a time, measured in nanoseconds.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="guint64" c:type="guint64"/> + </alias> + <alias name="ClockTimeDiff" c:type="GstClockTimeDiff"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">A datatype to hold a time difference, measured in nanoseconds.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="gint64" c:type="gint64"/> + </alias> + <alias name="ElementFactoryListType" c:type="GstElementFactoryListType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.h">A type defining the type of an element factory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="guint64" c:type="guint64"/> + </alias> + <alias name="MemoryMapInfo" c:type="GstMemoryMapInfo" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Alias for #GstMapInfo to be used with g_auto(): +```c +void my_func(GstMemory *mem) +{ + g_auto(GstMemoryMapInfo) map = GST_MAP_INFO_INIT; + if (!gst_memory_map(mem, &map, GST_MAP_READWRITE)) + return; + ... + // No need to call gst_memory_unmap() +} +``` + +#GstMapInfo cannot be used with g_auto() because it is ambiguous whether it +needs to be unmapped using gst_buffer_unmap() or gst_memory_unmap(). + +See also #GstBufferMapInfo.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <type name="MapInfo" c:type="GstMapInfo"/> + </alias> + <function-macro name="ALLOCATOR" c:identifier="GST_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ALLOCATOR_CAST" c:identifier="GST_ALLOCATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ALLOCATOR_CLASS" c:identifier="GST_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ALLOCATOR_GET_CLASS" c:identifier="GST_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="ALLOCATOR_SYSMEM" value="SystemMemory" c:type="GST_ALLOCATOR_SYSMEM"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">The allocator name for the default system memory allocator</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <record name="AllocationParams" c:type="GstAllocationParams" glib:type-name="GstAllocationParams" glib:get-type="gst_allocation_params_get_type" c:symbol-prefix="allocation_params"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">Parameters to control the allocation of memory</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">flags to control allocation</doc> + <type name="MemoryFlags" c:type="GstMemoryFlags"/> + </field> + <field name="align" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the desired alignment of the memory</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="prefix" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the desired prefix</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="padding" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the desired padding</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <constructor name="new" c:identifier="gst_allocation_params_new" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Create a new #GstAllocationParams on the heap. This function is for +use in GStreamer language bindings. In your own code, you can just +declare a #GstAllocationParams on the stack or in a struct, and +call gst_allocation_params_init() to initialize it. + +You do not need to call gst_allocation_params_init() on the instance +returned by this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a new #GstAllocationParams</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </return-value> + </constructor> + <method name="copy" c:identifier="gst_allocation_params_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Create a copy of @params.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a new #GstAllocationParams.</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </return-value> + <parameters> + <instance-parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocationParams</doc> + <type name="AllocationParams" c:type="const GstAllocationParams*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_allocation_params_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Free @params</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="params" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocationParams</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_allocation_params_init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Initialize @params to its default values</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocationParams</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </instance-parameter> + </parameters> + </method> + </record> + <class name="Allocator" c:symbol-prefix="allocator" c:type="GstAllocator" parent="Object" abstract="1" glib:type-name="GstAllocator" glib:get-type="gst_allocator_get_type" glib:type-struct="AllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Memory is usually created by allocators with a gst_allocator_alloc() +method call. When %NULL is used as the allocator, the default allocator will +be used. + +New allocators can be registered with gst_allocator_register(). +Allocators are identified by name and can be retrieved with +gst_allocator_find(). gst_allocator_set_default() can be used to change the +default allocator. + +New memory can be created with gst_memory_new_wrapped() that wraps the memory +allocated elsewhere.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <function name="find" c:identifier="gst_allocator_find"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Find a previously registered allocator with @name. When @name is %NULL, the +default allocator will be returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocator or %NULL when +the allocator with @name was not registered.</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">the name of the allocator</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="register" c:identifier="gst_allocator_register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Registers the memory @allocator with @name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">the name of the allocator</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="allocator" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">#GstAllocator</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </parameter> + </parameters> + </function> + <virtual-method name="alloc" invoker="alloc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Use @allocator to allocate a new memory block with memory that is at least +@size big. + +The optional @params can specify the prefix and padding for the memory. If +%NULL is passed, no flags, no extra prefix/padding and a default alignment is +used. + +The prefix/padding will be filled with 0 if flags contains +#GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively. + +When @allocator is %NULL, the default allocator will be used. + +The alignment in @params is given as a bitmask so that @align + 1 equals +the amount of bytes to align to. For example, to align to 8 bytes, +use an alignment of 7.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a new #GstMemory.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocator to use</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">size of the visible memory area</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">optional parameters</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="free" invoker="free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Free @memory that was previously allocated with gst_allocator_alloc().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocator to use</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </instance-parameter> + <parameter name="memory" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">the memory to free</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </virtual-method> + <method name="alloc" c:identifier="gst_allocator_alloc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Use @allocator to allocate a new memory block with memory that is at least +@size big. + +The optional @params can specify the prefix and padding for the memory. If +%NULL is passed, no flags, no extra prefix/padding and a default alignment is +used. + +The prefix/padding will be filled with 0 if flags contains +#GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively. + +When @allocator is %NULL, the default allocator will be used. + +The alignment in @params is given as a bitmask so that @align + 1 equals +the amount of bytes to align to. For example, to align to 8 bytes, +use an alignment of 7.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a new #GstMemory.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocator to use</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">size of the visible memory area</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">optional parameters</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_allocator_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Free @memory that was previously allocated with gst_allocator_alloc().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocator to use</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </instance-parameter> + <parameter name="memory" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">the memory to free</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </method> + <method name="set_default" c:identifier="gst_allocator_set_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Set the default allocator.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocator</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </instance-parameter> + </parameters> + </method> + <field name="object"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="mem_type"> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="mem_map"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the implementation of the GstMemoryMapFunction</doc> + <type name="MemoryMapFunction" c:type="GstMemoryMapFunction"/> + </field> + <field name="mem_unmap"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the implementation of the GstMemoryUnmapFunction</doc> + <type name="MemoryUnmapFunction" c:type="GstMemoryUnmapFunction"/> + </field> + <field name="mem_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the implementation of the GstMemoryCopyFunction</doc> + <type name="MemoryCopyFunction" c:type="GstMemoryCopyFunction"/> + </field> + <field name="mem_share"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the implementation of the GstMemoryShareFunction</doc> + <type name="MemoryShareFunction" c:type="GstMemoryShareFunction"/> + </field> + <field name="mem_is_span"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the implementation of the GstMemoryIsSpanFunction</doc> + <type name="MemoryIsSpanFunction" c:type="GstMemoryIsSpanFunction"/> + </field> + <field name="mem_map_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the implementation of the GstMemoryMapFullFunction. + Will be used instead of @mem_map if present. (Since: 1.6)</doc> + <type name="MemoryMapFullFunction" c:type="GstMemoryMapFullFunction"/> + </field> + <field name="mem_unmap_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">the implementation of the GstMemoryUnmapFullFunction. + Will be used instead of @mem_unmap if present. (Since: 1.6)</doc> + <type name="MemoryUnmapFullFunction" c:type="GstMemoryUnmapFullFunction"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="priv" readable="0" private="1"> + <type name="AllocatorPrivate" c:type="GstAllocatorPrivate*"/> + </field> + </class> + <record name="AllocatorClass" c:type="GstAllocatorClass" glib:is-gtype-struct-for="Allocator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">The #GstAllocator is used to create new memory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <field name="object_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">Object parent class</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="alloc"> + <callback name="alloc"> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a new #GstMemory.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocator to use</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">size of the visible memory area</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">optional parameters</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="free"> + <callback name="free"> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a #GstAllocator to use</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="memory" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">the memory to free</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="AllocatorFlags" glib:type-name="GstAllocatorFlags" glib:get-type="gst_allocator_flags_get_type" c:type="GstAllocatorFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">Flags for allocators.</doc> + <member name="custom_alloc" value="16" c:identifier="GST_ALLOCATOR_FLAG_CUSTOM_ALLOC" glib:nick="custom-alloc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">The allocator has a custom alloc function.</doc> + </member> + <member name="last" value="1048576" c:identifier="GST_ALLOCATOR_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.h">first flag that can be used for custom purposes</doc> + </member> + </bitfield> + <record name="AllocatorPrivate" c:type="GstAllocatorPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + </record> + <record name="AtomicQueue" c:type="GstAtomicQueue" glib:type-name="GstAtomicQueue" glib:get-type="gst_atomic_queue_get_type" c:symbol-prefix="atomic_queue"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">The #GstAtomicQueue object implements a queue that can be used from multiple +threads without performing any blocking operations.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstatomicqueue.h"/> + <constructor name="new" c:identifier="gst_atomic_queue_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">Create a new atomic queue instance. @initial_size will be rounded up to the +nearest power of 2 and used as the initial size of the queue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstatomicqueue.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">a new #GstAtomicQueue</doc> + <type name="AtomicQueue" c:type="GstAtomicQueue*"/> + </return-value> + <parameters> + <parameter name="initial_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">initial queue size</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <method name="length" c:identifier="gst_atomic_queue_length"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">Get the amount of items in the queue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstatomicqueue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">the number of elements in the queue.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">a #GstAtomicQueue</doc> + <type name="AtomicQueue" c:type="GstAtomicQueue*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek" c:identifier="gst_atomic_queue_peek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">Peek the head element of the queue without removing it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstatomicqueue.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">the head element of @queue or +%NULL when the queue is empty.</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">a #GstAtomicQueue</doc> + <type name="AtomicQueue" c:type="GstAtomicQueue*"/> + </instance-parameter> + </parameters> + </method> + <method name="pop" c:identifier="gst_atomic_queue_pop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">Get the head element of the queue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstatomicqueue.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">the head element of @queue or %NULL when +the queue is empty.</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">a #GstAtomicQueue</doc> + <type name="AtomicQueue" c:type="GstAtomicQueue*"/> + </instance-parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_atomic_queue_push"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">Append @data to the tail of the queue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstatomicqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">a #GstAtomicQueue</doc> + <type name="AtomicQueue" c:type="GstAtomicQueue*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">the data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_atomic_queue_ref"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">Increase the refcount of @queue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstatomicqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">a #GstAtomicQueue</doc> + <type name="AtomicQueue" c:type="GstAtomicQueue*"/> + </instance-parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_atomic_queue_unref"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">Unref @queue and free the memory when the refcount reaches 0.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstatomicqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstatomicqueue.c">a #GstAtomicQueue</doc> + <type name="AtomicQueue" c:type="GstAtomicQueue*"/> + </instance-parameter> + </parameters> + </method> + </record> + <function-macro name="BIN" c:identifier="GST_BIN" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIN_CAST" c:identifier="GST_BIN_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIN_CHILDREN" c:identifier="GST_BIN_CHILDREN" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Gets the list of children in a bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="bin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">a #GstBin</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIN_CHILDREN_COOKIE" c:identifier="GST_BIN_CHILDREN_COOKIE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Gets the children cookie that watches the children list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="bin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">a #GstBin</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIN_CLASS" c:identifier="GST_BIN_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIN_GET_CLASS" c:identifier="GST_BIN_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIN_IS_NO_RESYNC" c:identifier="GST_BIN_IS_NO_RESYNC" version="1.0.5" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Check if @bin will resync its state change when elements are added and +removed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="bin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">A #GstBin</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIN_NUMCHILDREN" c:identifier="GST_BIN_NUMCHILDREN" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Gets the number of children in a bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="bin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">a #GstBin</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER" c:identifier="GST_BUFFER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_CAST" c:identifier="GST_BUFFER_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="BUFFER_COPY_ALL" value="15" c:type="GST_BUFFER_COPY_ALL"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Combination of all possible fields that can be copied with +gst_buffer_copy_into().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/> + </constant> + <constant name="BUFFER_COPY_METADATA" value="7" c:type="GST_BUFFER_COPY_METADATA"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Combination of all possible metadata fields that can be copied with +gst_buffer_copy_into().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/> + </constant> + <function-macro name="BUFFER_DTS" c:identifier="GST_BUFFER_DTS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Gets the decoding timestamp (dts) in nanoseconds (as a #GstClockTime) +of the data in the buffer. This is the timestamp when the media should be +decoded or processed otherwise. + +Value will be %GST_CLOCK_TIME_NONE if the dts is unknown.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_DTS_IS_VALID" c:identifier="GST_BUFFER_DTS_IS_VALID" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Tests if the dts is known.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_DTS_OR_PTS" c:identifier="GST_BUFFER_DTS_OR_PTS" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Returns the buffer decoding timestamp (dts) if valid, else the buffer +presentation time (pts)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_DURATION" c:identifier="GST_BUFFER_DURATION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Gets the duration in nanoseconds (as a #GstClockTime) of the data in the buffer. + +Value will be %GST_CLOCK_TIME_NONE if the duration is unknown.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_DURATION_IS_VALID" c:identifier="GST_BUFFER_DURATION_IS_VALID" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Tests if the duration is known.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_FLAGS" c:identifier="GST_BUFFER_FLAGS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Returns a flags word containing #GstBufferFlags flags set on this buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_FLAG_IS_SET" c:identifier="GST_BUFFER_FLAG_IS_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Gives the status of a specific flag on a buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the #GstBufferFlags flag to check.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_FLAG_SET" c:identifier="GST_BUFFER_FLAG_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Sets a buffer flag on a buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the #GstBufferFlags flag to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_FLAG_UNSET" c:identifier="GST_BUFFER_FLAG_UNSET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Clears a buffer flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the #GstBufferFlags flag to clear.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_IS_DISCONT" c:identifier="GST_BUFFER_IS_DISCONT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Tests if the buffer marks a discontinuity in the stream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_LIST" c:identifier="GST_BUFFER_LIST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_LIST_CAST" c:identifier="GST_BUFFER_LIST_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_OFFSET" c:identifier="GST_BUFFER_OFFSET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Gets the offset in the source file of the beginning of this buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_OFFSET_END" c:identifier="GST_BUFFER_OFFSET_END" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Gets the offset in the source file of the end of this buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_OFFSET_END_IS_VALID" c:identifier="GST_BUFFER_OFFSET_END_IS_VALID" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Tests if the end offset is known.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_OFFSET_IS_VALID" c:identifier="GST_BUFFER_OFFSET_IS_VALID" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Tests if the start offset is known.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <constant name="BUFFER_OFFSET_NONE" value="18446744073709551615" c:type="GST_BUFFER_OFFSET_NONE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Constant for no-offset return results.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <type name="guint64" c:type="guint64"/> + </constant> + <function-macro name="BUFFER_POOL" c:identifier="GST_BUFFER_POOL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_POOL_CAST" c:identifier="GST_BUFFER_POOL_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_POOL_CLASS" c:identifier="GST_BUFFER_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_POOL_GET_CLASS" c:identifier="GST_BUFFER_POOL_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_POOL_IS_FLUSHING" c:identifier="GST_BUFFER_POOL_IS_FLUSHING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Check if the bufferpool is flushing. Subclasses might want to check the +state of the pool in the acquire function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <parameters> + <parameter name="pool"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">a GstBufferPool</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_PTS" c:identifier="GST_BUFFER_PTS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Gets the presentation timestamp (pts) in nanoseconds (as a #GstClockTime) +of the data in the buffer. This is the timestamp when the media should be +presented to the user. + +Value will be %GST_CLOCK_TIME_NONE if the pts is unknown.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer.:</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUFFER_PTS_IS_VALID" c:identifier="GST_BUFFER_PTS_IS_VALID" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Tests if the pts is known.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUS" c:identifier="GST_BUS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <parameters> + <parameter name="bus"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUS_CAST" c:identifier="GST_BUS_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <parameters> + <parameter name="bus"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUS_CLASS" c:identifier="GST_BUS_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <parameters> + <parameter name="bclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BUS_GET_CLASS" c:identifier="GST_BUS_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <parameters> + <parameter name="bus"> + </parameter> + </parameters> + </function-macro> + <class name="Bin" c:symbol-prefix="bin" c:type="GstBin" parent="Element" glib:type-name="GstBin" glib:get-type="gst_bin_get_type" glib:type-struct="BinClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">#GstBin is an element that can contain other #GstElement, allowing them to be +managed as a group. +Pads from the child elements can be ghosted to the bin, see #GstGhostPad. +This makes the bin look like any other elements and enables creation of +higher-level abstraction elements. + +A new #GstBin is created with gst_bin_new(). Use a #GstPipeline instead if you +want to create a toplevel bin because a normal bin doesn't have a bus or +handle clock distribution of its own. + +After the bin has been created you will typically add elements to it with +gst_bin_add(). You can remove elements with gst_bin_remove(). + +An element can be retrieved from a bin with gst_bin_get_by_name(), using the +elements name. gst_bin_get_by_name_recurse_up() is mainly used for internal +purposes and will query the parent bins when the element is not found in the +current bin. + +An iterator of elements in a bin can be retrieved with +gst_bin_iterate_elements(). Various other iterators exist to retrieve the +elements in a bin. + +gst_object_unref() is used to drop your reference to the bin. + +The #GstBin::element-added signal is fired whenever a new element is added to +the bin. Likewise the #GstBin::element-removed signal is fired whenever an +element is removed from the bin. + +A #GstBin internally intercepts every #GstMessage posted by its children and +implements the following default behaviour for each of them: + +* %GST_MESSAGE_EOS: This message is only posted by sinks in the PLAYING +state. If all sinks posted the EOS message, this bin will post and EOS +message upwards. + +* %GST_MESSAGE_SEGMENT_START: Just collected and never forwarded upwards. + The messages are used to decide when all elements have completed playback + of their segment. + +* %GST_MESSAGE_SEGMENT_DONE: Is posted by #GstBin when all elements that posted + a SEGMENT_START have posted a SEGMENT_DONE. + +* %GST_MESSAGE_DURATION_CHANGED: Is posted by an element that detected a change + in the stream duration. The duration change is posted to the + application so that it can refetch the new duration with a duration + query. + + Note that these messages can be posted before the bin is prerolled, in which + case the duration query might fail. + + Note also that there might be a discrepancy (due to internal buffering/queueing) + between the stream being currently displayed and the returned duration query. + + Applications might want to also query for duration (and changes) by + listening to the %GST_MESSAGE_STREAM_START message, signaling the active start + of a (new) stream. + +* %GST_MESSAGE_CLOCK_LOST: This message is posted by an element when it + can no longer provide a clock. + + The default bin behaviour is to check if the lost clock was the one provided + by the bin. If so and the bin is currently in the PLAYING state, the message + is forwarded to the bin parent. + + This message is also generated when a clock provider is removed from + the bin. If this message is received by the application, it should + PAUSE the pipeline and set it back to PLAYING to force a new clock + distribution. + +* %GST_MESSAGE_CLOCK_PROVIDE: This message is generated when an element + can provide a clock. This mostly happens when a new clock + provider is added to the bin. + + The default behaviour of the bin is to mark the currently selected clock as + dirty, which will perform a clock recalculation the next time the bin is + asked to provide a clock. + + This message is never sent to the application but is forwarded to + the parent of the bin. + +* OTHERS: posted upwards. + +A #GstBin implements the following default behaviour for answering to a +#GstQuery: + +* %GST_QUERY_DURATION: The bin will forward the query to all sink + elements contained within and will return the maximum value. + If no sinks are available in the bin, the query fails. + +* %GST_QUERY_POSITION: The query is sent to all sink elements in the bin and the + MAXIMUM of all values is returned. If no sinks are available in the bin, + the query fails. + +* OTHERS: the query is forwarded to all sink elements, the result + of the first sink that answers the query successfully is returned. If no + sink is in the bin, the query fails. + +A #GstBin will by default forward any event sent to it to all sink +( %GST_EVENT_TYPE_UPSTREAM ) or source ( %GST_EVENT_TYPE_DOWNSTREAM ) elements +depending on the event type. + +If all the elements return %TRUE, the bin will also return %TRUE, else %FALSE +is returned. If no elements of the required type are in the bin, the event +handler will return %TRUE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <implements name="ChildProxy"/> + <constructor name="new" c:identifier="gst_bin_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Creates a new bin with the given name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a new #GstBin</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the name of the new bin</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="add_element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Method to add an element to the bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">%TRUE if the @element was added</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element to be added</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="deep_element_added"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Method called when an element was added somewhere in the bin hierarchy.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the top level #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="sub_bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin to which the element was added</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element that was added</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="deep_element_removed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Method called when an element was removed somewhere in the bin hierarchy.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the top level #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="sub_bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin from which the element was removed</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element that was removed</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="do_latency"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="element_added"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Method called when an element was added to the bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element that was added</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="element_removed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Method called when an element was removed from the bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element that was removed</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Method to handle a message from the children.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the message to be handled</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="remove_element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Method to remove an element from the bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">%TRUE if the @element was removed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element to be removed</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add" c:identifier="gst_bin_add"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Adds the given element to the bin. Sets the element's parent, and thus +takes ownership of the element. An element can only be added to one bin. + +If the element's pads are linked to other pads, the pads will be unlinked +before the element is added to the bin. + +> When you add an element to an already-running pipeline, you will have to +> take care to set the state of the newly-added element to the desired +> state (usually PLAYING or PAUSED, same you set the pipeline to originally) +> with gst_element_set_state(), or use gst_element_sync_state_with_parent(). +> The bin or pipeline will not take care of this for you.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">%TRUE if the element could be added, %FALSE if +the bin does not want to accept the element.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstElement to add</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <method name="add_many" c:identifier="gst_bin_add_many" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Adds a %NULL-terminated list of elements to a bin. This function is +equivalent to calling gst_bin_add() for each member of the list. The return +value of each gst_bin_add() is ignored.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="element_1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstElement element to add to the bin</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">additional elements to add to the bin</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="find_unlinked_pad" c:identifier="gst_bin_find_unlinked_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Recursively looks for elements with an unlinked pad of the given +direction within the specified bin and returns an unlinked pad +if one is found, or %NULL otherwise. If a pad is found, the caller +owns a reference to it and should use gst_object_unref() on the +pad when it is not needed any longer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">unlinked pad of the given +direction.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">bin in which to look for elements with unlinked pads</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">whether to look for an unlinked source or sink pad</doc> + <type name="PadDirection" c:type="GstPadDirection"/> + </parameter> + </parameters> + </method> + <method name="get_by_interface" c:identifier="gst_bin_get_by_interface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Looks for an element inside the bin that implements the given +interface. If such an element is found, it returns the element. +You can cast this element to the given interface afterwards. If you want +all elements that implement the interface, use +gst_bin_iterate_all_by_interface(). This function recurses into child bins.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">A #GstElement inside the bin +implementing the interface</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="iface" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GType of an interface</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_by_name" c:identifier="gst_bin_get_by_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Gets the element with the given name from a bin. This +function recurses into child bins.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstElement with the given +name</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the element name to search for</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_by_name_recurse_up" c:identifier="gst_bin_get_by_name_recurse_up"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Gets the element with the given name from this bin. If the +element is not found, a recursion is performed on the parent bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstElement with the given +name</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the element name to search for</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_suppressed_flags" c:identifier="gst_bin_get_suppressed_flags" version="1.10"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the bin's suppressed #GstElementFlags.</doc> + <type name="ElementFlags" c:type="GstElementFlags"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_all_by_element_factory_name" c:identifier="gst_bin_iterate_all_by_element_factory_name" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Looks for all elements inside the bin with the given element factory name. +The function recurses inside child bins. The iterator will yield a series of +#GstElement.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstIterator of #GstElement + for all elements in the bin with the given element factory name</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="factory_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the name of the #GstElementFactory</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="iterate_all_by_interface" c:identifier="gst_bin_iterate_all_by_interface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Looks for all elements inside the bin that implements the given +interface. You can safely cast all returned elements to the given interface. +The function recurses inside child bins. The iterator will yield a series +of #GstElement.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstIterator of #GstElement + for all elements in the bin implementing the given interface</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="iface" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GType of an interface</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="iterate_elements" c:identifier="gst_bin_iterate_elements"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Gets an iterator for the elements in this bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstIterator of #GstElement</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_recurse" c:identifier="gst_bin_iterate_recurse"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Gets an iterator for the elements in this bin. +This iterator recurses into GstBin children.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstIterator of #GstElement</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_sinks" c:identifier="gst_bin_iterate_sinks"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Gets an iterator for all elements in the bin that have the +#GST_ELEMENT_FLAG_SINK flag set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstIterator of #GstElement</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_sorted" c:identifier="gst_bin_iterate_sorted"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Gets an iterator for the elements in this bin in topologically +sorted order. This means that the elements are returned from +the most downstream elements (sinks) to the sources. + +This function is used internally to perform the state changes +of the bin elements and for clock selection.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstIterator of #GstElement</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_sources" c:identifier="gst_bin_iterate_sources"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Gets an iterator for all elements in the bin that have the +#GST_ELEMENT_FLAG_SOURCE flag set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstIterator of #GstElement</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + </parameters> + </method> + <method name="recalculate_latency" c:identifier="gst_bin_recalculate_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Queries @bin for the current latency and reconfigures this latency on all the +elements using a LATENCY event. + +This method is typically called on the pipeline when a #GST_MESSAGE_LATENCY +is posted on the bus. + +This function simply emits the #GstBin::do-latency signal so any custom latency +calculations will be performed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">%TRUE if the latency could be queried and reconfigured.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove" c:identifier="gst_bin_remove"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Removes the element from the bin, unparenting it as well. +Unparenting the element means that the element will be dereferenced, +so if the bin holds the only reference to the element, the element +will be freed in the process of removing it from the bin. If you +want the element to still exist after removing, you need to call +gst_object_ref() before removing it from the bin. + +If the element's pads are linked to other pads, the pads will be unlinked +before the element is removed from the bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">%TRUE if the element could be removed, %FALSE if +the bin does not want to remove the element.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstElement to remove</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <method name="remove_many" c:identifier="gst_bin_remove_many" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Removes a list of elements from a bin. This function is equivalent +to calling gst_bin_remove() with each member of the list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="element_1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the first #GstElement to remove from the bin</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%NULL-terminated list of elements to remove from the bin</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_suppressed_flags" c:identifier="gst_bin_set_suppressed_flags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Suppresses the given flags on the bin. #GstElementFlags of a +child element are propagated when it is added to the bin. +When suppressed flags are set, those specified flags will +not be propagated to the bin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstElementFlags to suppress</doc> + <type name="ElementFlags" c:type="GstElementFlags"/> + </parameter> + </parameters> + </method> + <method name="sync_children_states" c:identifier="gst_bin_sync_children_states" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Synchronizes the state of every child of @bin with the state +of @bin. See also gst_element_sync_state_with_parent().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if syncing the state was successful for all children, + otherwise %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </instance-parameter> + </parameters> + </method> + <property name="async-handling" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">If set to %TRUE, the bin will handle asynchronous state changes. +This should be used only if the bin subclass is modifying the state +of its children on its own.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="message-forward" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Forward all children messages, even those that would normally be filtered by +the bin. This can be interesting when one wants to be notified of the EOS +state of individual elements, for example. + +The messages are converted to an ELEMENT message with the bin as the +source. The structure of the message is named `GstBinForwarded` and contains +a field named `message` that contains the original forwarded #GstMessage.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="element"> + <type name="Element" c:type="GstElement"/> + </field> + <field name="numchildren"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the number of children in this bin</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="children"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the list of children in this bin</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Element"/> + </type> + </field> + <field name="children_cookie"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">updated whenever @children changes</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="child_bus"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">internal bus for handling child messages</doc> + <type name="Bus" c:type="GstBus*"/> + </field> + <field name="messages"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">queued and cached messages</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Message"/> + </type> + </field> + <field name="polling"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the bin is currently calculating its state</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="state_dirty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the bin needs to recalculate its state (deprecated)</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="clock_dirty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the bin needs to select a new clock</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="provided_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the last clock selected</doc> + <type name="Clock" c:type="GstClock*"/> + </field> + <field name="clock_provider"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element that provided @provided_clock</doc> + <type name="Element" c:type="GstElement*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BinPrivate" c:type="GstBinPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="deep-element-added" when="first" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Will be emitted after the element was added to @sub_bin.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sub_bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstBin the element was added to</doc> + <type name="Bin"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstElement that was added to @sub_bin</doc> + <type name="Element"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="deep-element-removed" when="first" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Will be emitted after the element was removed from @sub_bin.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sub_bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstBin the element was removed from</doc> + <type name="Bin"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstElement that was removed from @sub_bin</doc> + <type name="Element"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="do-latency" when="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Will be emitted when the bin needs to perform latency calculations. This +signal is only emitted for toplevel bins or when #GstBin:async-handling is +enabled. + +Only one signal handler is invoked. If no signals are connected, the +default handler is invoked, which will query and distribute the lowest +possible latency to all sinks. + +Connect to this signal if the default latency calculations are not +sufficient, like when you need different latencies for different sinks in +the same pipeline.</doc> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </glib:signal> + <glib:signal name="element-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Will be emitted after the element was added to the bin.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstElement that was added to the bin</doc> + <type name="Element"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="element-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">Will be emitted after the element was removed from the bin.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.c">the #GstElement that was removed from the bin</doc> + <type name="Element"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="BinClass" c:type="GstBinClass" glib:is-gtype-struct-for="Bin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">Subclasses can override #GstBinClass::add_element and #GstBinClass::remove_element +to update the list of children in the bin. + +The #GstBinClass::handle_message method can be overridden to implement custom +message handling. + +#GstBinClass::deep_element_added will be called when a new element has been +added to any bin inside this bin, so it will also be called if a new child +was added to a sub-bin of this bin. #GstBin implementations that override +this message should chain up to the parent class implementation so the +#GstBin::deep-element-added signal is emitted on all parents.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">bin parent class</doc> + <type name="ElementClass" c:type="GstElementClass"/> + </field> + <field name="pool" readable="0" private="1"> + <type name="GLib.ThreadPool" c:type="GThreadPool*"/> + </field> + <field name="element_added"> + <callback name="element_added"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element that was added</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="element_removed"> + <callback name="element_removed"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element that was removed</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="add_element"> + <callback name="add_element"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">%TRUE if the @element was added</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element to be added</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="remove_element"> + <callback name="remove_element"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">%TRUE if the @element was removed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element to be removed</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_message"> + <callback name="handle_message"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="message" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the message to be handled</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="do_latency"> + <callback name="do_latency"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <type name="Bin" c:type="GstBin*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="deep_element_added"> + <callback name="deep_element_added"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the top level #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="sub_bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin to which the element was added</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element that was added</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="deep_element_removed"> + <callback name="deep_element_removed"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the top level #GstBin</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="sub_bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the #GstBin from which the element was removed</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the element that was removed</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="BinFlags" glib:type-name="GstBinFlags" glib:get-type="gst_bin_flags_get_type" c:type="GstBinFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">GstBinFlags are a set of flags specific to bins. Most are set/used +internally. They can be checked using the GST_OBJECT_FLAG_IS_SET() macro, +and (un)set using GST_OBJECT_FLAG_SET() and GST_OBJECT_FLAG_UNSET().</doc> + <member name="no_resync" value="16384" c:identifier="GST_BIN_FLAG_NO_RESYNC" glib:nick="no-resync"> + </member> + <member name="streams_aware" value="32768" c:identifier="GST_BIN_FLAG_STREAMS_AWARE" glib:nick="streams-aware"> + </member> + <member name="last" value="524288" c:identifier="GST_BIN_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbin.h">the last enum in the series of flags for bins. +Derived classes can use this as first value in a list of flags.</doc> + </member> + </bitfield> + <record name="BinPrivate" c:type="GstBinPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + </record> + <class name="Bitmask" c:symbol-prefix="bitmask" glib:type-name="GstBitmask" glib:get-type="gst_bitmask_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A fundamental type that describes a 64-bit bitmask</doc> + </class> + <record name="Buffer" c:type="GstBuffer" glib:type-name="GstBuffer" glib:get-type="gst_buffer_get_type" c:symbol-prefix="buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Buffers are the basic unit of data transfer in GStreamer. They contain the +timing and offset along with other arbitrary metadata that is associated +with the #GstMemory blocks that the buffer contains. + +Buffers are usually created with gst_buffer_new(). After a buffer has been +created one will typically allocate memory for it and add it to the buffer. +The following example creates a buffer that can hold a given video frame +with a given width, height and bits per plane. + +``` C + GstBuffer *buffer; + GstMemory *memory; + gint size, width, height, bpp; + ... + size = width * height * bpp; + buffer = gst_buffer_new (); + memory = gst_allocator_alloc (NULL, size, NULL); + gst_buffer_insert_memory (buffer, -1, memory); + ... +``` + +Alternatively, use gst_buffer_new_allocate() to create a buffer with +preallocated data of a given size. + +Buffers can contain a list of #GstMemory objects. You can retrieve how many +memory objects with gst_buffer_n_memory() and you can get a pointer +to memory with gst_buffer_peek_memory() + +A buffer will usually have timestamps, and a duration, but neither of these +are guaranteed (they may be set to #GST_CLOCK_TIME_NONE). Whenever a +meaningful value can be given for these, they should be set. The timestamps +and duration are measured in nanoseconds (they are #GstClockTime values). + +The buffer DTS refers to the timestamp when the buffer should be decoded and +is usually monotonically increasing. The buffer PTS refers to the timestamp when +the buffer content should be presented to the user and is not always +monotonically increasing. + +A buffer can also have one or both of a start and an end offset. These are +media-type specific. For video buffers, the start offset will generally be +the frame number. For audio buffers, it will be the number of samples +produced so far. For compressed data, it could be the byte offset in a +source or destination file. Likewise, the end offset will be the offset of +the end of the buffer. These can only be meaningfully interpreted if you +know the media type of the buffer (the preceding CAPS event). Either or both +can be set to #GST_BUFFER_OFFSET_NONE. + +gst_buffer_ref() is used to increase the refcount of a buffer. This must be +done when you want to keep a handle to the buffer after pushing it to the +next element. The buffer refcount determines the writability of the buffer, a +buffer is only writable when the refcount is exactly 1, i.e. when the caller +has the only reference to the buffer. + +To efficiently create a smaller buffer out of an existing one, you can +use gst_buffer_copy_region(). This method tries to share the memory objects +between the two buffers. + +If a plug-in wants to modify the buffer data or metadata in-place, it should +first obtain a buffer that is safe to modify by using +gst_buffer_make_writable(). This function is optimized so that a copy will +only be made when it is necessary. + +Several flags of the buffer can be set and unset with the +GST_BUFFER_FLAG_SET() and GST_BUFFER_FLAG_UNSET() macros. Use +GST_BUFFER_FLAG_IS_SET() to test if a certain #GstBufferFlags flag is set. + +Buffers can be efficiently merged into a larger buffer with +gst_buffer_append(). Copying of memory will only be done when absolutely +needed. + +Arbitrary extra metadata can be set on a buffer with gst_buffer_add_meta(). +Metadata can be retrieved with gst_buffer_get_meta(). See also #GstMeta. + +An element should either unref the buffer or push it out on a src pad +using gst_pad_push() (see #GstPad). + +Buffers are usually freed by unreffing them with gst_buffer_unref(). When +the refcount drops to 0, any memory and metadata pointed to by the buffer is +unreffed as well. Buffers allocated from a #GstBufferPool will be returned to +the pool when the refcount drops to 0. + +The #GstParentBufferMeta is a meta which can be attached to a #GstBuffer +to hold a reference to another buffer that is only released when the child +#GstBuffer is released. + +Typically, #GstParentBufferMeta is used when the child buffer is directly +using the #GstMemory of the parent buffer, and wants to prevent the parent +buffer from being returned to a buffer pool until the #GstMemory is available +for re-use. (Since: 1.6)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <field name="mini_object" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the parent structure</doc> + <type name="MiniObject" c:type="GstMiniObject"/> + </field> + <field name="pool" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">pointer to the pool owner of the buffer</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </field> + <field name="pts" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">presentation timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the + pts is not known or relevant. The pts contains the timestamp when the + media should be presented to the user.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="dts" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">decoding timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the + dts is not known or relevant. The dts contains the timestamp when the + media should be processed.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="duration" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">duration in time of the buffer data, can be #GST_CLOCK_TIME_NONE + when the duration is not known or relevant.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="offset" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a media specific offset for the buffer data. + For video frames, this is the frame number of this buffer. + For audio samples, this is the offset of the first sample in this buffer. + For file data or compressed data this is the byte offset of the first + byte in this buffer.</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="offset_end" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the last offset contained in this buffer. It has the same + format as @offset.</doc> + <type name="guint64" c:type="guint64"/> + </field> + <constructor name="new" c:identifier="gst_buffer_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Creates a newly allocated buffer without any data.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the new #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + </constructor> + <constructor name="new_allocate" c:identifier="gst_buffer_new_allocate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Tries to create a newly allocated buffer with data of the given size and +extra parameters from @allocator. If the requested amount of memory can't be +allocated, %NULL will be returned. The allocated buffer memory is not cleared. + +When @allocator is %NULL, the default memory allocator will be used. + +Note that when @size == 0, the buffer will not have memory associated with it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a new #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GstAllocator to use, or %NULL to use the + default allocator</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the size in bytes of the new buffer's data.</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">optional parameters</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_memdup" c:identifier="gst_buffer_new_memdup" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Creates a new buffer of size @size and fills it with a copy of @data.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a new #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">data to copy into new buffer</doc> + <array length="1" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">size of @data in bytes</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_wrapped" c:identifier="gst_buffer_new_wrapped"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Creates a new buffer that wraps the given @data. The memory will be freed +with g_free() and will be marked writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a new #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">data to wrap</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">allocated size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_wrapped_bytes" c:identifier="gst_buffer_new_wrapped_bytes" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">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.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">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" filename="../subprojects/gstreamer/gst/gstbuffer.c">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" filename="../subprojects/gstreamer/gst/gstbuffer.c">Allocates a new buffer that wraps the given memory. @data must point to +@maxsize of memory, the wrapped buffer will have the region from @offset and +@size visible. + +When the buffer is destroyed, @notify will be called with @user_data. + +The prefix/padding must be filled with 0 if @flags contains +#GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a new #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">#GstMemoryFlags</doc> + <type name="MemoryFlags" c:type="GstMemoryFlags"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">data to wrap</doc> + <array length="4" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="maxsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">allocated size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">offset in @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">size of valid data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">user_data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="5"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">called with @user_data when the memory is freed</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + <method name="add_custom_meta" c:identifier="gst_buffer_add_custom_meta" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Creates and adds a #GstCustomMeta for the desired @name. @name must have +been successfully registered with gst_meta_register_custom().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The #GstCustomMeta that was added to the buffer</doc> + <type name="CustomMeta" c:type="GstCustomMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the registered name of the desired custom meta</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_meta" c:identifier="gst_buffer_add_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Adds metadata for @info to @buffer using the parameters in @params.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the metadata for the api in @info on @buffer.</doc> + <type name="Meta" c:type="GstMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMetaInfo</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">params for @info</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="add_parent_buffer_meta" c:identifier="gst_buffer_add_parent_buffer_meta" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Adds a #GstParentBufferMeta to @buffer that holds a reference on +@ref until the buffer is freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The #GstParentBufferMeta that was added to the buffer</doc> + <type name="ParentBufferMeta" c:type="GstParentBufferMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="ref" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer to ref</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="add_protection_meta" c:identifier="gst_buffer_add_protection_meta" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c">Attaches protection metadata to a #GstBuffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c">a pointer to the added #GstProtectionMeta if successful</doc> + <type name="ProtectionMeta" c:type="GstProtectionMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c">#GstBuffer holding an encrypted sample, to which protection + metadata should be added.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c">a #GstStructure holding cryptographic + information relating to the sample contained in @buffer. This + function takes ownership of @info.</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="add_reference_timestamp_meta" c:identifier="gst_buffer_add_reference_timestamp_meta" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Adds a #GstReferenceTimestampMeta to @buffer that holds a @timestamp and +optionally @duration based on a specific timestamp @reference. See the +documentation of #GstReferenceTimestampMeta for details.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The #GstReferenceTimestampMeta that was added to the buffer</doc> + <type name="ReferenceTimestampMeta" c:type="GstReferenceTimestampMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="reference" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">identifier for the timestamp reference.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">timestamp</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">duration, or %GST_CLOCK_TIME_NONE</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="append" c:identifier="gst_buffer_append"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Appends all the memory from @buf2 to @buf1. The result buffer will contain a +concatenation of the memory of @buf1 and @buf2.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the new #GstBuffer that contains the memory + of the two source buffers.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="buf1" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the first source #GstBuffer to append.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="buf2" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the second source #GstBuffer to append.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="append_memory" c:identifier="gst_buffer_append_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Appends the memory block @mem to @buffer. This function takes +ownership of @mem and thus doesn't increase its refcount. + +This function is identical to gst_buffer_insert_memory() with an index of -1. +See gst_buffer_insert_memory() for more details.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="mem" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMemory.</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </method> + <method name="append_region" c:identifier="gst_buffer_append_region"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Appends @size bytes at @offset from @buf2 to @buf1. The result buffer will +contain a concatenation of the memory of @buf1 and the requested region of +@buf2.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the new #GstBuffer that contains the memory + of the two source buffers.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="buf1" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the first source #GstBuffer to append.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="buf2" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the second source #GstBuffer to append.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the offset in @buf2</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the size or -1 of @buf2</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_buffer_copy" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Creates a copy of the given buffer. This will only copy the buffer's +data to a newly allocated memory if needed (if the type of memory +requires it), otherwise the underlying data is just referenced. +Check gst_buffer_copy_deep() if you want to force the data +to be copied to newly allocated memory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a new copy of @buf if the copy succeeded, %NULL otherwise.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="const GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="copy_deep" c:identifier="gst_buffer_copy_deep" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Creates a copy of the given buffer. This will make a newly allocated +copy of the data the source buffer contains.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a new copy of @buf if the copy succeeded, %NULL otherwise.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="const GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="copy_into" c:identifier="gst_buffer_copy_into"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Copies the information from @src into @dest. + +If @dest already contains memory and @flags contains GST_BUFFER_COPY_MEMORY, +the memory from @src will be appended to @dest. + +@flags indicate which fields will be copied.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE if the copying succeeded, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a destination #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a source #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">flags indicating what metadata fields should be copied.</doc> + <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">offset to copy from</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">total size to copy. If -1, all data is copied.</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="copy_region" c:identifier="gst_buffer_copy_region"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Creates a sub-buffer from @parent at @offset and @size. +This sub-buffer uses the actual memory space of the parent buffer. +This function will copy the offset and timestamp fields when the +offset is 0. If not, they will be set to #GST_CLOCK_TIME_NONE and +#GST_BUFFER_OFFSET_NONE. +If @offset equals 0 and @size equals the total size of @buffer, the +duration and offset end fields are also copied. If not they will be set +to #GST_CLOCK_TIME_NONE and #GST_BUFFER_OFFSET_NONE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the new #GstBuffer or %NULL if copying + failed.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GstBufferCopyFlags</doc> + <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the offset into parent #GstBuffer at which the new sub-buffer + begins.</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the size of the new #GstBuffer sub-buffer, in bytes. If -1, all + data is copied.</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="extract" c:identifier="gst_buffer_extract"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Copies @size bytes starting from @offset in @buffer to @dest.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The amount of bytes extracted. This value can be lower than @size + when @buffer did not contain enough data.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the offset to extract</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c"> + the destination address</doc> + <array length="2" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the size to extract</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="extract_dup" c:identifier="gst_buffer_extract_dup" version="1.0.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Extracts a copy of at most @size bytes the data at @offset into +newly-allocated memory. @dest must be freed using g_free() when done.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the offset to extract</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the size to extract</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">A pointer where + the destination array will be written. Might be %NULL if the size is 0.</doc> + <array length="3" zero-terminated="0" c:type="gpointer*"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="dest_size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">A location where the size of @dest can be written</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="fill" c:identifier="gst_buffer_fill"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Copies @size bytes from @src to @buffer at @offset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The amount of bytes copied. This value can be lower than @size + when @buffer did not contain enough data.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the offset to fill</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the source address</doc> + <array length="2" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the size to fill</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="find_memory" c:identifier="gst_buffer_find_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Finds the memory blocks that span @size bytes starting from @offset +in @buffer. + +When this function returns %TRUE, @idx will contain the index of the first +memory block where the byte for @offset can be found and @length contains the +number of memory blocks containing the @size remaining bytes. @skip contains +the number of bytes to skip in the memory block at @idx to get to the byte +for @offset. + +@size can be -1 to get all the memory blocks after @idx.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE when @size bytes starting from @offset could be found in +@buffer and @idx, @length and @skip will be filled.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an offset</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a size</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="idx" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">pointer to index</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">pointer to length</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="skip" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">pointer to skip</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="foreach_meta" c:identifier="gst_buffer_foreach_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Calls @func with @user_data for each meta in @buffer. + +@func can modify the passed meta pointer or its contents. The return value +of @func defines if this function returns or if the remaining metadata items +in the buffer should be skipped.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%FALSE when @func returned %FALSE for one of the metadata.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBufferForeachMetaFunc to call</doc> + <type name="BufferForeachMetaFunc" c:type="GstBufferForeachMetaFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">user data passed to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="get_all_memory" c:identifier="gst_buffer_get_all_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets all the memory blocks in @buffer. The memory blocks will be merged +into one large #GstMemory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMemory that contains the merged memory.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_custom_meta" c:identifier="gst_buffer_get_custom_meta" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Finds the first #GstCustomMeta on @buffer for the desired @name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GstCustomMeta</doc> + <type name="CustomMeta" c:type="GstCustomMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the registered name of the custom meta to retrieve.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_flags" c:identifier="gst_buffer_get_flags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the #GstBufferFlags flags set on this buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the flags set on this buffer.</doc> + <type name="BufferFlags" c:type="GstBufferFlags"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_memory" c:identifier="gst_buffer_get_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the memory block at index @idx in @buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMemory that contains the data of the +memory block at @idx.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_memory_range" c:identifier="gst_buffer_get_memory_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets @length memory blocks in @buffer starting at @idx. The memory blocks will +be merged into one large #GstMemory. + +If @length is -1, all memory starting from @idx is merged.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMemory that contains the merged data of @length + blocks starting at @idx.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a length</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_meta" c:identifier="gst_buffer_get_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the metadata for @api on buffer. When there is no such metadata, %NULL is +returned. If multiple metadata with the given @api are attached to this +buffer only the first one is returned. To handle multiple metadata with a +given API use gst_buffer_iterate_meta() or gst_buffer_foreach_meta() instead +and check the `meta->info.api` member for the API type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the metadata for @api on @buffer.</doc> + <type name="Meta" c:type="GstMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GType of an API</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_n_meta" c:identifier="gst_buffer_get_n_meta" version="1.14"> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">number of metas of type @api_type on @buffer.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="api_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GType of an API</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_reference_timestamp_meta" c:identifier="gst_buffer_get_reference_timestamp_meta" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Finds the first #GstReferenceTimestampMeta on @buffer that conforms to +@reference. Conformance is tested by checking if the meta's reference is a +subset of @reference. + +Buffers can contain multiple #GstReferenceTimestampMeta metadata items.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GstReferenceTimestampMeta or %NULL when there +is no such metadata on @buffer.</doc> + <type name="ReferenceTimestampMeta" c:type="GstReferenceTimestampMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="reference" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a reference #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="get_size" c:identifier="gst_buffer_get_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the total size of the memory blocks in @buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">total size of the memory blocks in @buffer.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_sizes" c:identifier="gst_buffer_get_sizes"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the total size of the memory blocks in @buffer. + +When not %NULL, @offset will contain the offset of the data in the +first memory block in @buffer and @maxsize will contain the sum of +the size and @offset and the amount of extra padding on the last +memory block. @offset and @maxsize can be used to resize the +buffer memory blocks with gst_buffer_resize().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">total size of the memory blocks in @buffer.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a pointer to the offset</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + <parameter name="maxsize" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a pointer to the maxsize</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="get_sizes_range" c:identifier="gst_buffer_get_sizes_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the total size of @length memory blocks stating from @idx in @buffer. + +When not %NULL, @offset will contain the offset of the data in the +memory block in @buffer at @idx and @maxsize will contain the sum of the size +and @offset and the amount of extra padding on the memory block at @idx + +@length -1. +@offset and @maxsize can be used to resize the buffer memory blocks with +gst_buffer_resize_range().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">total size of @length memory blocks starting at @idx in @buffer.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a length</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a pointer to the offset</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + <parameter name="maxsize" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a pointer to the maxsize</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="has_flags" c:identifier="gst_buffer_has_flags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gives the status of a specific flag on a buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE if all flags in @flags are found on @buffer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GstBufferFlags flag to check.</doc> + <type name="BufferFlags" c:type="GstBufferFlags"/> + </parameter> + </parameters> + </method> + <method name="insert_memory" c:identifier="gst_buffer_insert_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Inserts the memory block @mem into @buffer at @idx. This function takes ownership +of @mem and thus doesn't increase its refcount. + +Only gst_buffer_get_max_memory() can be added to a buffer. If more memory is +added, existing memory blocks will automatically be merged to make room for +the new memory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the index to add the memory at, or -1 to append it to the end</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="mem" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMemory.</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </method> + <method name="is_all_memory_writable" c:identifier="gst_buffer_is_all_memory_writable" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Checks if all memory blocks in @buffer are writable. + +Note that this function does not check if @buffer is writable, use +gst_buffer_is_writable() to check that if needed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE if all memory blocks in @buffer are writable</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_memory_range_writable" c:identifier="gst_buffer_is_memory_range_writable" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Checks if @length memory blocks in @buffer starting from @idx are writable. + +@length can be -1 to check all the memory blocks after @idx. + +Note that this function does not check if @buffer is writable, use +gst_buffer_is_writable() to check that if needed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE if the memory range is writable</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a length, should not be 0</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="iterate_meta" c:identifier="gst_buffer_iterate_meta" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Retrieves the next #GstMeta after @current. If @state points +to %NULL, the first metadata is returned. + +@state will be updated with an opaque state pointer</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The next #GstMeta or %NULL +when there are no more items.</doc> + <type name="Meta" c:type="GstMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="state" direction="out" caller-allocates="1" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an opaque state pointer</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + </parameters> + </method> + <method name="iterate_meta_filtered" c:identifier="gst_buffer_iterate_meta_filtered" version="1.12" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Retrieves the next #GstMeta of type @meta_api_type after the current one +according to @state. If @state points to %NULL, the first metadata of +type @meta_api_type is returned. + +@state will be updated with an opaque state pointer</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The next #GstMeta of type +@meta_api_type or %NULL when there are no more items.</doc> + <type name="Meta" c:type="GstMeta*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="state" direction="out" caller-allocates="1" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an opaque state pointer</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + <parameter name="meta_api_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">only return #GstMeta of this type</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="map" c:identifier="gst_buffer_map"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Fills @info with the #GstMapInfo of all merged memory blocks in @buffer. + +@flags describe the desired access of the memory. When @flags is +#GST_MAP_WRITE, @buffer should be writable (as returned from +gst_buffer_is_writable()). + +When @buffer is writable but the memory isn't, a writable copy will +automatically be created and returned. The readonly copy of the +buffer memory will then also be replaced with this writable copy. + +The memory in @info should be unmapped with gst_buffer_unmap() after +usage.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE if the map succeeded and @info contains valid data.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="info" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">info about the mapping</doc> + <type name="MapInfo" c:type="GstMapInfo*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">flags for the mapping</doc> + <type name="MapFlags" c:type="GstMapFlags"/> + </parameter> + </parameters> + </method> + <method name="map_range" c:identifier="gst_buffer_map_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Fills @info with the #GstMapInfo of @length merged memory blocks +starting at @idx in @buffer. When @length is -1, all memory blocks starting +from @idx are merged and mapped. + +@flags describe the desired access of the memory. When @flags is +#GST_MAP_WRITE, @buffer should be writable (as returned from +gst_buffer_is_writable()). + +When @buffer is writable but the memory isn't, a writable copy will +automatically be created and returned. The readonly copy of the buffer memory +will then also be replaced with this writable copy. + +The memory in @info should be unmapped with gst_buffer_unmap() after usage.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE if the map succeeded and @info contains valid +data.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a length</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="info" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">info about the mapping</doc> + <type name="MapInfo" c:type="GstMapInfo*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">flags for the mapping</doc> + <type name="MapFlags" c:type="GstMapFlags"/> + </parameter> + </parameters> + </method> + <method name="memcmp" c:identifier="gst_buffer_memcmp"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Compares @size bytes starting from @offset in @buffer with the memory in @mem.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">0 if the memory is equal.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the offset in @buffer</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the memory to compare</doc> + <array length="2" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the size to compare</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="memset" c:identifier="gst_buffer_memset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Fills @buf with @size bytes with @val starting from @offset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The amount of bytes filled. This value can be lower than @size + when @buffer did not contain enough data.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the offset in @buffer</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the value to set</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the size to set</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="n_memory" c:identifier="gst_buffer_n_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the amount of memory blocks that this buffer has. This amount is never +larger than what gst_buffer_get_max_memory() returns.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the number of memory blocks this buffer is made of.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek_memory" c:identifier="gst_buffer_peek_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the memory block at @idx in @buffer. The memory block stays valid until +the memory block in @buffer is removed, replaced or merged, typically with +any call that modifies the memory in @buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GstMemory at @idx.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="prepend_memory" c:identifier="gst_buffer_prepend_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Prepends the memory block @mem to @buffer. This function takes +ownership of @mem and thus doesn't increase its refcount. + +This function is identical to gst_buffer_insert_memory() with an index of 0. +See gst_buffer_insert_memory() for more details.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="mem" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMemory.</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_buffer_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Increases the refcount of the given buffer by one. + +Note that the refcount affects the writability +of @buf and its metadata, see gst_buffer_is_writable(). +It is important to note that keeping additional references to +GstBuffer instances can potentially increase the number +of `memcpy` operations in a pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">@buf</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_all_memory" c:identifier="gst_buffer_remove_all_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Removes all the memory blocks in @buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_memory" c:identifier="gst_buffer_remove_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Removes the memory block in @b at index @i.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="remove_memory_range" c:identifier="gst_buffer_remove_memory_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Removes @length memory blocks in @buffer starting from @idx. + +@length can be -1, in which case all memory starting from @idx is removed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a length</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="remove_meta" c:identifier="gst_buffer_remove_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Removes the metadata for @meta on @buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE if the metadata existed and was removed, %FALSE if no such +metadata was on @buffer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMeta</doc> + <type name="Meta" c:type="GstMeta*"/> + </parameter> + </parameters> + </method> + <method name="replace_all_memory" c:identifier="gst_buffer_replace_all_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Replaces all memory in @buffer with @mem.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="mem" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </method> + <method name="replace_memory" c:identifier="gst_buffer_replace_memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Replaces the memory block at index @idx in @buffer with @mem.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="mem" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </method> + <method name="replace_memory_range" c:identifier="gst_buffer_replace_memory_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Replaces @length memory blocks in @buffer starting at @idx with @mem. + +If @length is -1, all memory starting from @idx will be removed and +replaced with @mem. + +@buffer should be writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a length, should not be 0</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="mem" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </method> + <method name="resize" c:identifier="gst_buffer_resize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Sets the offset and total size of the memory blocks in @buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the offset adjustment</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the new size or -1 to just adjust the offset</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </method> + <method name="resize_range" c:identifier="gst_buffer_resize_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Sets the total size of the @length memory blocks starting at @idx in +@buffer</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE if resizing succeeded, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">an index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a length</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the offset adjustment</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the new size or -1 to just adjust the offset</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </method> + <method name="set_flags" c:identifier="gst_buffer_set_flags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Sets one or more buffer flags on a buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE if @flags were successfully set on buffer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GstBufferFlags to set.</doc> + <type name="BufferFlags" c:type="GstBufferFlags"/> + </parameter> + </parameters> + </method> + <method name="set_size" c:identifier="gst_buffer_set_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Sets the total size of the memory blocks in @buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the new size</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </method> + <method name="unmap" c:identifier="gst_buffer_unmap"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Releases the memory previously mapped with gst_buffer_map().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <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" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstMapInfo</doc> + <type name="MapInfo" c:type="GstMapInfo*"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_buffer_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Decreases the refcount of the buffer. If the refcount reaches 0, the buffer +with the associated metadata and memory will be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="unset_flags" c:identifier="gst_buffer_unset_flags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Clears one or more buffer flags.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">true if @flags is successfully cleared from buffer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the #GstBufferFlags to clear</doc> + <type name="BufferFlags" c:type="GstBufferFlags"/> + </parameter> + </parameters> + </method> + <function name="get_max_memory" c:identifier="gst_buffer_get_max_memory" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the maximum amount of memory blocks that a buffer can hold. This is a +compile time constant that can be queried with the function. + +When more memory blocks are added, existing memory blocks will be merged +together to make room for the new block.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the maximum amount of memory blocks that a buffer can hold.</doc> + <type name="guint" c:type="guint"/> + </return-value> + </function> + <function name="replace" c:identifier="gst_buffer_replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Modifies a pointer to a #GstBuffer to point to a different #GstBuffer. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +buffer is unreffed, the new is reffed). + +Either @nbuf or the #GstBuffer pointed to by @obuf may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE when @obuf was different from @nbuf.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="obuf" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">pointer to a pointer to + a #GstBuffer to be replaced.</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="nbuf" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">pointer to a #GstBuffer that will + replace the buffer pointed to by @obuf.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + </record> + <bitfield name="BufferCopyFlags" glib:type-name="GstBufferCopyFlags" glib:get-type="gst_buffer_copy_flags_get_type" c:type="GstBufferCopyFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">A set of flags that can be provided to the gst_buffer_copy_into() +function to specify which items should be copied.</doc> + <member name="none" value="0" c:identifier="GST_BUFFER_COPY_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">copy nothing</doc> + </member> + <member name="flags" value="1" c:identifier="GST_BUFFER_COPY_FLAGS" glib:nick="flags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">flag indicating that buffer flags should be copied</doc> + </member> + <member name="timestamps" value="2" c:identifier="GST_BUFFER_COPY_TIMESTAMPS" glib:nick="timestamps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">flag indicating that buffer pts, dts, + duration, offset and offset_end should be copied</doc> + </member> + <member name="meta" value="4" c:identifier="GST_BUFFER_COPY_META" glib:nick="meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">flag indicating that buffer meta should be + copied</doc> + </member> + <member name="memory" value="8" c:identifier="GST_BUFFER_COPY_MEMORY" glib:nick="memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">flag indicating that buffer memory should be reffed + and appended to already existing memory. Unless the memory is marked as + NO_SHARE, no actual copy of the memory is made but it is simply reffed. + Add @GST_BUFFER_COPY_DEEP to force a real copy.</doc> + </member> + <member name="merge" value="16" c:identifier="GST_BUFFER_COPY_MERGE" glib:nick="merge"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">flag indicating that buffer memory should be + merged</doc> + </member> + <member name="deep" value="32" c:identifier="GST_BUFFER_COPY_DEEP" glib:nick="deep"> + </member> + </bitfield> + <bitfield name="BufferFlags" glib:type-name="GstBufferFlags" glib:get-type="gst_buffer_flags_get_type" c:type="GstBufferFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">A set of buffer flags used to describe properties of a #GstBuffer.</doc> + <member name="live" value="16" c:identifier="GST_BUFFER_FLAG_LIVE" glib:nick="live"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the buffer is live data and should be discarded in + the PAUSED state.</doc> + </member> + <member name="decode_only" value="32" c:identifier="GST_BUFFER_FLAG_DECODE_ONLY" glib:nick="decode-only"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the buffer contains data that should be dropped + because it will be clipped against the segment + boundaries or because it does not contain data + that should be shown to the user.</doc> + </member> + <member name="discont" value="64" c:identifier="GST_BUFFER_FLAG_DISCONT" glib:nick="discont"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the buffer marks a data discontinuity in the stream. + This typically occurs after a seek or a dropped buffer + from a live or network source.</doc> + </member> + <member name="resync" value="128" c:identifier="GST_BUFFER_FLAG_RESYNC" glib:nick="resync"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the buffer timestamps might have a discontinuity + and this buffer is a good point to resynchronize.</doc> + </member> + <member name="corrupted" value="256" c:identifier="GST_BUFFER_FLAG_CORRUPTED" glib:nick="corrupted"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the buffer data is corrupted.</doc> + </member> + <member name="marker" value="512" c:identifier="GST_BUFFER_FLAG_MARKER" glib:nick="marker"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the buffer contains a media specific marker. for + video this is the end of a frame boundary, for audio + this is the start of a talkspurt. for RTP + packets this matches the marker flag in the + RTP packet header.</doc> + </member> + <member name="header" value="1024" c:identifier="GST_BUFFER_FLAG_HEADER" glib:nick="header"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the buffer contains header information that is + needed to decode the following data.</doc> + </member> + <member name="gap" value="2048" c:identifier="GST_BUFFER_FLAG_GAP" glib:nick="gap"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the buffer has been created to fill a gap in the + stream and contains media neutral data (elements can + switch to optimized code path that ignores the buffer + content).</doc> + </member> + <member name="droppable" value="4096" c:identifier="GST_BUFFER_FLAG_DROPPABLE" glib:nick="droppable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the buffer can be dropped without breaking the + stream, for example to reduce bandwidth.</doc> + </member> + <member name="delta_unit" value="8192" c:identifier="GST_BUFFER_FLAG_DELTA_UNIT" glib:nick="delta-unit"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">this unit cannot be decoded independently.</doc> + </member> + <member name="tag_memory" value="16384" c:identifier="GST_BUFFER_FLAG_TAG_MEMORY" glib:nick="tag-memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">this flag is set when memory of the buffer + is added/removed</doc> + </member> + <member name="sync_after" value="32768" c:identifier="GST_BUFFER_FLAG_SYNC_AFTER" glib:nick="sync-after"> + </member> + <member name="non_droppable" value="65536" c:identifier="GST_BUFFER_FLAG_NON_DROPPABLE" glib:nick="non-droppable"> + </member> + <member name="last" value="1048576" c:identifier="GST_BUFFER_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">additional media specific flags can be added starting from + this flag.</doc> + </member> + </bitfield> + <callback name="BufferForeachMetaFunc" c:type="GstBufferForeachMetaFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">A function that will be called from gst_buffer_foreach_meta(). The @meta +field will point to a the reference of the meta. + +@buffer should not be modified from this callback. + +When this function returns %TRUE, the next meta will be +returned. When %FALSE is returned, gst_buffer_foreach_meta() will return. + +When @meta is set to %NULL, the item will be removed from the buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">%FALSE when gst_buffer_foreach_meta() should stop</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="meta" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a pointer to a #GstMeta</doc> + <type name="Meta" c:type="GstMeta**"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">user data passed to gst_buffer_foreach_meta()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="BufferList" c:type="GstBufferList" glib:type-name="GstBufferList" glib:get-type="gst_buffer_list_get_type" c:symbol-prefix="buffer_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Buffer lists are an object containing a list of buffers. + +Buffer lists are created with gst_buffer_list_new() and filled with data +using gst_buffer_list_insert(). + +Buffer lists can be pushed on a srcpad with gst_pad_push_list(). This is +interesting when multiple buffers need to be pushed in one go because it +can reduce the amount of overhead for pushing each buffer individually.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <constructor name="new" c:identifier="gst_buffer_list_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Creates a new, empty #GstBufferList.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the new #GstBufferList.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </return-value> + </constructor> + <constructor name="new_sized" c:identifier="gst_buffer_list_new_sized"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Creates a new, empty #GstBufferList. The list will have @size space +preallocated so that memory reallocations can be avoided.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the new #GstBufferList.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">an initial reserved size</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <method name="calculate_size" c:identifier="gst_buffer_list_calculate_size" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Calculates the size of the data contained in @list by adding the +size of all buffers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the size of the data contained in @list in bytes.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </instance-parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_buffer_list_copy" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Creates a shallow copy of the given buffer list. This will make a newly +allocated copy of the source list with copies of buffer pointers. The +refcount of buffers pointed to will be increased by one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a new copy of @list.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="const GstBufferList*"/> + </instance-parameter> + </parameters> + </method> + <method name="copy_deep" c:identifier="gst_buffer_list_copy_deep" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Creates a copy of the given buffer list. This will make a newly allocated +copy of the buffers that the source buffer list contains.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a new copy of @list.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="const GstBufferList*"/> + </instance-parameter> + </parameters> + </method> + <method name="foreach" c:identifier="gst_buffer_list_foreach"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Calls @func with @data for each buffer in @list. + +@func can modify the passed buffer pointer or its contents. The return value +of @func defines if this function returns or if the remaining buffers in +the list should be skipped.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">%TRUE when @func returned %TRUE for each buffer in @list or when +@list is empty.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferListFunc to call</doc> + <type name="BufferListFunc" c:type="GstBufferListFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">user data passed to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="get" c:identifier="gst_buffer_list_get"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Gets the buffer at @idx. + +You must make sure that @idx does not exceed the number of +buffers available.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the buffer at @idx in @group + or %NULL when there is no buffer. The buffer remains valid as + long as @list is valid and buffer is not removed from the list.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the index</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_writable" c:identifier="gst_buffer_list_get_writable" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Gets the buffer at @idx, ensuring it is a writable buffer. + +You must make sure that @idx does not exceed the number of +buffers available.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the buffer at @idx in @group. + The returned buffer remains valid as long as @list is valid and + the buffer is not removed from the list.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a (writable) #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the index</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="insert" c:identifier="gst_buffer_list_insert"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Inserts @buffer at @idx in @list. Other buffers are moved to make room for +this new buffer. + +A -1 value for @idx will append the buffer at the end.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the index</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="length" c:identifier="gst_buffer_list_length"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Returns the number of buffers in @list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the number of buffers in the buffer list</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </instance-parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_buffer_list_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Increases the refcount of the given buffer list by one. + +Note that the refcount affects the writability of @list and its data, see +gst_buffer_list_make_writable(). It is important to note that keeping +additional references to GstBufferList instances can potentially increase +the number of memcpy operations in a pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">@list</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove" c:identifier="gst_buffer_list_remove"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Removes @length buffers starting from @idx in @list. The following buffers +are moved to close the gap.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">the amount to remove</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_buffer_list_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Decreases the refcount of the buffer list. If the refcount reaches 0, the +buffer list will be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </instance-parameter> + </parameters> + </method> + <function name="replace" c:identifier="gst_buffer_list_replace" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Modifies a pointer to a #GstBufferList to point to a different +#GstBufferList. The modification is done atomically (so this is useful for +ensuring thread safety in some cases), and the reference counts are updated +appropriately (the old buffer list is unreffed, the new is reffed). + +Either @new_list or the #GstBufferList pointed to by @old_list may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">%TRUE if @new_list was different from @old_list</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_list" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">pointer to a pointer to a + #GstBufferList to be replaced.</doc> + <type name="BufferList" c:type="GstBufferList**"/> + </parameter> + <parameter name="new_list" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">pointer to a #GstBufferList that + will replace the buffer list pointed to by @old_list.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function name="take" c:identifier="gst_buffer_list_take" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Modifies a pointer to a #GstBufferList to point to a different +#GstBufferList. This function is similar to gst_buffer_list_replace() except +that it takes ownership of @new_list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">%TRUE if @new_list was different from @old_list</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_list" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">pointer to a pointer to a #GstBufferList + to be replaced.</doc> + <type name="BufferList" c:type="GstBufferList**"/> + </parameter> + <parameter name="new_list" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">pointer to a #GstBufferList + that will replace the bufferlist pointed to by @old_list.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + </record> + <callback name="BufferListFunc" c:type="GstBufferListFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.h">A function that will be called from gst_buffer_list_foreach(). The @buffer +field will point to a the reference of the buffer at @idx. + +When this function returns %TRUE, the next buffer will be +returned. When %FALSE is returned, gst_buffer_list_foreach() will return. + +When @buffer is set to %NULL, the item will be removed from the bufferlist. +When @buffer has been made writable, the new buffer reference can be assigned +to @buffer. This function is responsible for unreffing the old buffer when +removing or modifying.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.h">%FALSE when gst_buffer_list_foreach() should stop</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.h">pointer to the buffer</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.h">the index of @buffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.h">user data passed to gst_buffer_list_foreach()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="BufferPool" c:symbol-prefix="buffer_pool" c:type="GstBufferPool" parent="Object" glib:type-name="GstBufferPool" glib:get-type="gst_buffer_pool_get_type" glib:type-struct="BufferPoolClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">A #GstBufferPool is an object that can be used to pre-allocate and recycle +buffers of the same size and with the same properties. + +A #GstBufferPool is created with gst_buffer_pool_new(). + +Once a pool is created, it needs to be configured. A call to +gst_buffer_pool_get_config() returns the current configuration structure from +the pool. With gst_buffer_pool_config_set_params() and +gst_buffer_pool_config_set_allocator() the bufferpool parameters and +allocator can be configured. Other properties can be configured in the pool +depending on the pool implementation. + +A bufferpool can have extra options that can be enabled with +gst_buffer_pool_config_add_option(). The available options can be retrieved +with gst_buffer_pool_get_options(). Some options allow for additional +configuration properties to be set. + +After the configuration structure has been configured, +gst_buffer_pool_set_config() updates the configuration in the pool. This can +fail when the configuration structure is not accepted. + +After the pool has been configured, it can be activated with +gst_buffer_pool_set_active(). This will preallocate the configured resources +in the pool. + +When the pool is active, gst_buffer_pool_acquire_buffer() can be used to +retrieve a buffer from the pool. + +Buffers allocated from a bufferpool will automatically be returned to the +pool with gst_buffer_pool_release_buffer() when their refcount drops to 0. + +The bufferpool can be deactivated again with gst_buffer_pool_set_active(). +All further gst_buffer_pool_acquire_buffer() calls will return an error. When +all buffers are returned to the pool they will be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <constructor name="new" c:identifier="gst_buffer_pool_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Creates a new #GstBufferPool instance.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a new #GstBufferPool instance</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </return-value> + </constructor> + <function name="config_add_option" c:identifier="gst_buffer_pool_config_add_option"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Enables the option in @config. This will instruct the @bufferpool to enable +the specified option on the buffers that it allocates. + +The options supported by @pool can be retrieved with gst_buffer_pool_get_options().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool configuration</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="option" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">an option to add</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="config_get_allocator" c:identifier="gst_buffer_pool_config_get_allocator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Gets the @allocator and @params from @config.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%TRUE, if the values are set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool configuration</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="allocator" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstAllocator, or %NULL</doc> + <type name="Allocator" c:type="GstAllocator**"/> + </parameter> + <parameter name="params" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">#GstAllocationParams, or %NULL</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </function> + <function name="config_get_option" c:identifier="gst_buffer_pool_config_get_option"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Parses an available @config and gets the option at @index of the options API +array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the option at @index.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool configuration</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">position in the option array to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="config_get_params" c:identifier="gst_buffer_pool_config_get_params"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Gets the configuration values from @config.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%TRUE if all parameters could be fetched.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool configuration</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="caps" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the caps of buffers</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the size of each buffer, not including prefix and padding</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="min_buffers" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the minimum amount of buffers to allocate.</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="max_buffers" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the maximum amount of buffers to allocate or 0 for unlimited.</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="config_has_option" c:identifier="gst_buffer_pool_config_has_option"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Checks if @config contains @option.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%TRUE if the options array contains @option.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool configuration</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="option" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">an option</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="config_n_options" c:identifier="gst_buffer_pool_config_n_options"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Retrieves the number of values currently stored in the options array of the +@config structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the options array size as a #guint.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool configuration</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="config_set_allocator" c:identifier="gst_buffer_pool_config_set_allocator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Sets the @allocator and @params on @config. + +One of @allocator and @params can be %NULL, but not both. When @allocator +is %NULL, the default allocator of the pool will use the values in @param +to perform its allocation. When @param is %NULL, the pool will use the +provided @allocator with its default #GstAllocationParams. + +A call to gst_buffer_pool_set_config() can update the allocator and params +with the values that it is able to do. Some pools are, for example, not able +to operate with different allocators or cannot allocate with the values +specified in @params. Use gst_buffer_pool_get_config() to get the currently +used values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool configuration</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="allocator" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstAllocator</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">#GstAllocationParams</doc> + <type name="AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + </parameters> + </function> + <function name="config_set_params" c:identifier="gst_buffer_pool_config_set_params"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Configures @config with the given parameters.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool configuration</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">caps for the buffers</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the size of each buffer, not including prefix and padding</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="min_buffers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the minimum amount of buffers to allocate.</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="max_buffers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the maximum amount of buffers to allocate or 0 for unlimited.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="config_validate_params" c:identifier="gst_buffer_pool_config_validate_params" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Validates that changes made to @config are still valid in the context of the +expected parameters. This function is a helper that can be used to validate +changes made by a pool to a config when gst_buffer_pool_set_config() +returns %FALSE. This expects that @caps haven't changed and that +@min_buffers aren't lower then what we initially expected. +This does not check if options or allocator parameters are still valid, +won't check if size have changed, since changing the size is valid to adapt +padding.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%TRUE, if the parameters are valid in this context.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool configuration</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the excepted caps of buffers</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the expected size of each buffer, not including prefix and padding</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="min_buffers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the expected minimum amount of buffers to allocate.</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="max_buffers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the expect maximum amount of buffers to allocate or 0 for unlimited.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <virtual-method name="acquire_buffer" invoker="acquire_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Acquires a buffer from @pool. @buffer should point to a memory location that +can hold a pointer to the new buffer. When the pool is empty, this function +will by default block until a buffer is released into the pool again or when +the pool is set to flushing or deactivated. + +@params can contain optional parameters to influence the allocation.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is +inactive.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a location for a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">parameters.</doc> + <type name="BufferPoolAcquireParams" c:type="GstBufferPoolAcquireParams*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="alloc_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Allocate a buffer. the default implementation allocates +buffers from the configured memory allocator and with the configured +parameters. All metadata that is present on the allocated buffer will +be marked as #GST_META_FLAG_POOLED and #GST_META_FLAG_LOCKED and will +not be removed from the buffer in #GstBufferPoolClass::reset_buffer. +The buffer should have the #GST_BUFFER_FLAG_TAG_MEMORY cleared.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">a #GstFlowReturn to indicate whether the allocation was +successful.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">a location for a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">parameters.</doc> + <type name="BufferPoolAcquireParams" c:type="GstBufferPoolAcquireParams*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="flush_start" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Enter the flushing state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="flush_stop" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Leave the flushing state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="free_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Free a buffer. The default implementation unrefs the buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBuffer to free</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_options" invoker="get_options"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Gets a %NULL terminated array of string with supported bufferpool options for +@pool. An option would typically be enabled with +gst_buffer_pool_config_add_option().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a %NULL terminated array + of strings.</doc> + <array c:type="const gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="release_buffer" invoker="release_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Releases @buffer to @pool. @buffer should have previously been allocated from +@pool with gst_buffer_pool_acquire_buffer(). + +This function is usually called automatically when the last ref on @buffer +disappears.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="reset_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Reset the buffer to its state when it was freshly allocated. +The default implementation will clear the flags, timestamps and +will remove the metadata without the #GST_META_FLAG_POOLED flag (even +the metadata with #GST_META_FLAG_LOCKED). If the +#GST_BUFFER_FLAG_TAG_MEMORY was set, this function can also try to +restore the memory and clear the #GST_BUFFER_FLAG_TAG_MEMORY again.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBuffer to reset</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_config" invoker="set_config"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Sets the configuration of the pool. If the pool is already configured, and +the configuration hasn't changed, this function will return %TRUE. If the +pool is active, this method will return %FALSE and active configuration +will remain. Buffers allocated from this pool must be returned or else this +function will do nothing and return %FALSE. + +@config is a #GstStructure that contains the configuration parameters for +the pool. A default and mandatory set of parameters can be configured with +gst_buffer_pool_config_set_params(), gst_buffer_pool_config_set_allocator() +and gst_buffer_pool_config_add_option(). + +If the parameters in @config can not be set exactly, this function returns +%FALSE and will try to update as much state as possible. The new state can +then be retrieved and refined with gst_buffer_pool_get_config(). + +This function takes ownership of @config.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%TRUE when the configuration could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="config" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Start the bufferpool. The default implementation will preallocate +min-buffers buffers and put them in the queue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">whether the pool could be started.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Stop the bufferpool. the default implementation will free the +preallocated buffers. This function is called when all the buffers are +returned to the pool.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">whether the pool could be stopped.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="acquire_buffer" c:identifier="gst_buffer_pool_acquire_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Acquires a buffer from @pool. @buffer should point to a memory location that +can hold a pointer to the new buffer. When the pool is empty, this function +will by default block until a buffer is released into the pool again or when +the pool is set to flushing or deactivated. + +@params can contain optional parameters to influence the allocation.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is +inactive.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a location for a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">parameters.</doc> + <type name="BufferPoolAcquireParams" c:type="GstBufferPoolAcquireParams*"/> + </parameter> + </parameters> + </method> + <method name="get_config" c:identifier="gst_buffer_pool_get_config"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Gets a copy of the current configuration of the pool. This configuration +can be modified and used for the gst_buffer_pool_set_config() call.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a copy of the current configuration of @pool.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_options" c:identifier="gst_buffer_pool_get_options"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Gets a %NULL terminated array of string with supported bufferpool options for +@pool. An option would typically be enabled with +gst_buffer_pool_config_add_option().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a %NULL terminated array + of strings.</doc> + <array c:type="const gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_option" c:identifier="gst_buffer_pool_has_option"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Checks if the bufferpool supports @option.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%TRUE if the buffer pool contains @option.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="option" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">an option</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="is_active" c:identifier="gst_buffer_pool_is_active"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Checks if @pool is active. A pool can be activated with the +gst_buffer_pool_set_active() call.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%TRUE when the pool is active.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + </parameters> + </method> + <method name="release_buffer" c:identifier="gst_buffer_pool_release_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Releases @buffer to @pool. @buffer should have previously been allocated from +@pool with gst_buffer_pool_acquire_buffer(). + +This function is usually called automatically when the last ref on @buffer +disappears.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="set_active" c:identifier="gst_buffer_pool_set_active"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Controls the active state of @pool. When the pool is inactive, new calls to +gst_buffer_pool_acquire_buffer() will return with %GST_FLOW_FLUSHING. + +Activating the bufferpool will preallocate all resources in the pool based on +the configuration of the pool. + +Deactivating will free the resources again when there are no outstanding +buffers. When there are outstanding buffers, they will be freed as soon as +they are all returned to the pool.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%FALSE when the pool was not configured or when preallocation of the +buffers failed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">the new active state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_config" c:identifier="gst_buffer_pool_set_config"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Sets the configuration of the pool. If the pool is already configured, and +the configuration hasn't changed, this function will return %TRUE. If the +pool is active, this method will return %FALSE and active configuration +will remain. Buffers allocated from this pool must be returned or else this +function will do nothing and return %FALSE. + +@config is a #GstStructure that contains the configuration parameters for +the pool. A default and mandatory set of parameters can be configured with +gst_buffer_pool_config_set_params(), gst_buffer_pool_config_set_allocator() +and gst_buffer_pool_config_add_option(). + +If the parameters in @config can not be set exactly, this function returns +%FALSE and will try to update as much state as possible. The new state can +then be retrieved and refined with gst_buffer_pool_get_config(). + +This function takes ownership of @config.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%TRUE when the configuration could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="config" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="set_flushing" c:identifier="gst_buffer_pool_set_flushing" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">Enables or disables the flushing state of a @pool without freeing or +allocating buffers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </instance-parameter> + <parameter name="flushing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">whether to start or stop flushing</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <field name="object"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the parent structure</doc> + <type name="Object" c:type="GstObject"/> + </field> + <field name="flushing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">whether the pool is currently gathering back outstanding buffers</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BufferPoolPrivate" c:type="GstBufferPoolPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <bitfield name="BufferPoolAcquireFlags" glib:type-name="GstBufferPoolAcquireFlags" glib:get-type="gst_buffer_pool_acquire_flags_get_type" c:type="GstBufferPoolAcquireFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Additional flags to control the allocation of a buffer</doc> + <member name="none" value="0" c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">no flags</doc> + </member> + <member name="key_unit" value="1" c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT" glib:nick="key-unit"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">buffer is keyframe</doc> + </member> + <member name="dontwait" value="2" c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT" glib:nick="dontwait"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">when the bufferpool is empty, acquire_buffer +will by default block until a buffer is released into the pool again. Setting +this flag makes acquire_buffer return #GST_FLOW_EOS instead of blocking.</doc> + </member> + <member name="discont" value="4" c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT" glib:nick="discont"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">buffer is discont</doc> + </member> + <member name="last" value="65536" c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">last flag, subclasses can use private flags + starting from this value.</doc> + </member> + </bitfield> + <record name="BufferPoolAcquireParams" c:type="GstBufferPoolAcquireParams"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Parameters passed to the gst_buffer_pool_acquire_buffer() function to control the +allocation of the buffer. + +The default implementation ignores the @start and @stop members but other +implementations can use this extra information to decide what buffer to +return.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <field name="format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the format of @start and @stop</doc> + <type name="Format" c:type="GstFormat"/> + </field> + <field name="start" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the start position</doc> + <type name="gint64" c:type="gint64"/> + </field> + <field name="stop" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the stop position</doc> + <type name="gint64" c:type="gint64"/> + </field> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">additional flags</doc> + <type name="BufferPoolAcquireFlags" c:type="GstBufferPoolAcquireFlags"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BufferPoolClass" c:type="GstBufferPoolClass" glib:is-gtype-struct-for="BufferPool"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">The #GstBufferPool class.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <field name="object_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">Object parent class</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="get_options"> + <callback name="get_options"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a %NULL terminated array + of strings.</doc> + <array c:type="const gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_config"> + <callback name="set_config"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">%TRUE when the configuration could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + <parameter name="config" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">whether the pool could be started.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">whether the pool could be stopped.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="acquire_buffer"> + <callback name="acquire_buffer"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is +inactive.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a location for a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">parameters.</doc> + <type name="BufferPoolAcquireParams" c:type="GstBufferPoolAcquireParams*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="alloc_buffer"> + <callback name="alloc_buffer"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">a #GstFlowReturn to indicate whether the allocation was +successful.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">a location for a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">parameters.</doc> + <type name="BufferPoolAcquireParams" c:type="GstBufferPoolAcquireParams*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="reset_buffer"> + <callback name="reset_buffer"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBuffer to reset</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="release_buffer"> + <callback name="release_buffer"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.c">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="free_buffer"> + <callback name="free_buffer"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBuffer to free</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="flush_start"> + <callback name="flush_start"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="flush_stop"> + <callback name="flush_stop"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferpool.h">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BufferPoolPrivate" c:type="GstBufferPoolPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + </record> + <enumeration name="BufferingMode" glib:type-name="GstBufferingMode" glib:get-type="gst_buffering_mode_get_type" c:type="GstBufferingMode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">The different types of buffering methods.</doc> + <member name="stream" value="0" c:identifier="GST_BUFFERING_STREAM" glib:nick="stream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">a small amount of data is buffered</doc> + </member> + <member name="download" value="1" c:identifier="GST_BUFFERING_DOWNLOAD" glib:nick="download"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the stream is being downloaded</doc> + </member> + <member name="timeshift" value="2" c:identifier="GST_BUFFERING_TIMESHIFT" glib:nick="timeshift"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the stream is being downloaded in a ringbuffer</doc> + </member> + <member name="live" value="3" c:identifier="GST_BUFFERING_LIVE" glib:nick="live"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the stream is a live stream</doc> + </member> + </enumeration> + <class name="Bus" c:symbol-prefix="bus" c:type="GstBus" parent="Object" glib:type-name="GstBus" glib:get-type="gst_bus_get_type" glib:type-struct="BusClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">The #GstBus is an object responsible for delivering #GstMessage packets in +a first-in first-out way from the streaming threads (see #GstTask) to the +application. + +Since the application typically only wants to deal with delivery of these +messages from one thread, the GstBus will marshall the messages between +different threads. This is important since the actual streaming of media +is done in another thread than the application. + +The GstBus provides support for #GSource based notifications. This makes it +possible to handle the delivery in the glib #GMainLoop. + +The #GSource callback function gst_bus_async_signal_func() can be used to +convert all bus messages into signal emissions. + +A message is posted on the bus with the gst_bus_post() method. With the +gst_bus_peek() and gst_bus_pop() methods one can look at or retrieve a +previously posted message. + +The bus can be polled with the gst_bus_poll() method. This methods blocks +up to the specified timeout value until one of the specified messages types +is posted on the bus. The application can then gst_bus_pop() the messages +from the bus to handle them. +Alternatively the application can register an asynchronous bus function +using gst_bus_add_watch_full() or gst_bus_add_watch(). This function will +install a #GSource in the default glib main loop and will deliver messages +a short while after they have been posted. Note that the main loop should +be running for the asynchronous callbacks. + +It is also possible to get messages from the bus without any thread +marshalling with the gst_bus_set_sync_handler() method. This makes it +possible to react to a message in the same thread that posted the +message on the bus. This should only be used if the application is able +to deal with messages from different threads. + +Every #GstPipeline has one bus. + +Note that a #GstPipeline will set its bus into flushing state when changing +from READY to NULL state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <constructor name="new" c:identifier="gst_bus_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Creates a new #GstBus instance.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a new #GstBus instance</doc> + <type name="Bus" c:type="GstBus*"/> + </return-value> + </constructor> + <virtual-method name="message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">A message has been posted on the bus.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the message that has been posted asynchronously</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sync_message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">A message has been posted on the bus.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the message that has been posted synchronously</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_signal_watch" c:identifier="gst_bus_add_signal_watch"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Adds a bus signal watch to the default main context with the default priority +( %G_PRIORITY_DEFAULT ). It is also possible to use a non-default +main context set up using g_main_context_push_thread_default() (before +one had to create a bus watch source and attach it to the desired main +context 'manually'). + +After calling this statement, the bus will emit the "message" signal for each +message posted on the bus. + +This function may be called multiple times. To clean up, the caller is +responsible for calling gst_bus_remove_signal_watch() as many times as this +function is called.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus on which you want to receive the "message" signal</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + </parameters> + </method> + <method name="add_signal_watch_full" c:identifier="gst_bus_add_signal_watch_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Adds a bus signal watch to the default main context with the given @priority +(e.g. %G_PRIORITY_DEFAULT). It is also possible to use a non-default main +context set up using g_main_context_push_thread_default() +(before one had to create a bus watch source and attach it to the desired +main context 'manually'). + +After calling this statement, the bus will emit the "message" signal for each +message posted on the bus when the #GMainLoop is running. + +This function may be called multiple times. To clean up, the caller is +responsible for calling gst_bus_remove_signal_watch() as many times as this +function is called. + +There can only be a single bus watch per bus, you must remove any signal +watch before you can set another type of watch.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus on which you want to receive the "message" signal</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">The priority of the watch.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="add_watch" c:identifier="gst_bus_add_watch" shadowed-by="add_watch_full" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Adds a bus watch to the default main context with the default priority +( %G_PRIORITY_DEFAULT ). It is also possible to use a non-default main +context set up using g_main_context_push_thread_default() (before +one had to create a bus watch source and attach it to the desired main +context 'manually'). + +This function is used to receive asynchronous messages in the main loop. +There can only be a single bus watch per bus, you must remove it before you +can set a new one. + +The bus watch will only work if a #GMainLoop is being run. + +The watch can be removed using gst_bus_remove_watch() or by returning %FALSE +from @func. If the watch was added to the default main context it is also +possible to remove the watch using g_source_remove(). + +The bus watch will take its own reference to the @bus, so it is safe to unref +@bus using gst_object_unref() after setting the bus watch.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">The event source id or 0 if @bus already got an event source.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to create the watch for</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">A function to call when a message is received.</doc> + <type name="BusFunc" c:type="GstBusFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">user data passed to @func.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="add_watch_full" c:identifier="gst_bus_add_watch_full" shadows="add_watch"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Adds a bus watch to the default main context with the given @priority (e.g. +%G_PRIORITY_DEFAULT). It is also possible to use a non-default main +context set up using g_main_context_push_thread_default() (before +one had to create a bus watch source and attach it to the desired main +context 'manually'). + +This function is used to receive asynchronous messages in the main loop. +There can only be a single bus watch per bus, you must remove it before you +can set a new one. + +The bus watch will only work if a #GMainLoop is being run. + +When @func is called, the message belongs to the caller; if you want to +keep a copy of it, call gst_message_ref() before leaving @func. + +The watch can be removed using gst_bus_remove_watch() or by returning %FALSE +from @func. If the watch was added to the default main context it is also +possible to remove the watch using g_source_remove(). + +The bus watch will take its own reference to the @bus, so it is safe to unref +@bus using gst_object_unref() after setting the bus watch.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">The event source id or 0 if @bus already got an event source.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to create the watch for.</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">The priority of the watch.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">A function to call when a message is received.</doc> + <type name="BusFunc" c:type="GstBusFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">user data passed to @func.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the function to call when the source is removed.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="async_signal_func" c:identifier="gst_bus_async_signal_func"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">A helper #GstBusFunc that can be used to convert all asynchronous messages +into signals.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">%TRUE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the #GstMessage received</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="create_watch" c:identifier="gst_bus_create_watch"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Create watch for this bus. The #GSource will be dispatched whenever +a message is on the bus. After the GSource is dispatched, the +message is popped off the bus and unreffed. + +As with other watches, there can only be one watch on the bus, including +any signal watch added with #gst_bus_add_signal_watch.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GSource that can be added to a #GMainLoop.</doc> + <type name="GLib.Source" c:type="GSource*"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to create the watch for</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + </parameters> + </method> + <method name="disable_sync_message_emission" c:identifier="gst_bus_disable_sync_message_emission"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Instructs GStreamer to stop emitting the "sync-message" signal for this bus. +See gst_bus_enable_sync_message_emission() for more information. + +In the event that multiple pieces of code have called +gst_bus_enable_sync_message_emission(), the sync-message emissions will only +be stopped after all calls to gst_bus_enable_sync_message_emission() were +"cancelled" by calling this function. In this way the semantics are exactly +the same as gst_object_ref() that which calls enable should also call +disable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus on which you previously called +gst_bus_enable_sync_message_emission()</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + </parameters> + </method> + <method name="enable_sync_message_emission" c:identifier="gst_bus_enable_sync_message_emission"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Instructs GStreamer to emit the "sync-message" signal after running the bus's +sync handler. This function is here so that code can ensure that they can +synchronously receive messages without having to affect what the bin's sync +handler is. + +This function may be called multiple times. To clean up, the caller is +responsible for calling gst_bus_disable_sync_message_emission() as many times +as this function is called. + +While this function looks similar to gst_bus_add_signal_watch(), it is not +exactly the same -- this function enables *synchronous* emission of +signals when messages arrive; gst_bus_add_signal_watch() adds an idle callback +to pop messages off the bus *asynchronously*. The sync-message signal +comes from the thread of whatever object posted the message; the "message" +signal is marshalled to the main thread via the #GMainLoop.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus on which you want to receive the "sync-message" signal</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pollfd" c:identifier="gst_bus_get_pollfd" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Gets the file descriptor from the bus which can be used to get notified about +messages being available with functions like g_poll(), and allows integration +into other event loops based on file descriptors. +Whenever a message is available, the POLLIN / %G_IO_IN event is set. + +Warning: NEVER read or write anything to the returned fd but only use it +for getting notifications via g_poll() or similar and then use the normal +GstBus API, e.g. gst_bus_pop().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">A #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="fd" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">A GPollFD to fill</doc> + <type name="GLib.PollFD" c:type="GPollFD*"/> + </parameter> + </parameters> + </method> + <method name="have_pending" c:identifier="gst_bus_have_pending"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Checks if there are pending messages on the bus that +should be handled.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">%TRUE if there are messages on the bus to be handled, %FALSE +otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to check</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek" c:identifier="gst_bus_peek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Peeks the message on the top of the bus' queue. The message will remain +on the bus' message queue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the #GstMessage that is on the + bus, or %NULL if the bus is empty.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + </parameters> + </method> + <method name="poll" c:identifier="gst_bus_poll"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Polls the bus for messages. Will block while waiting for messages to come. +You can specify a maximum time to poll with the @timeout parameter. If +@timeout is negative, this function will block indefinitely. + +All messages not in @events will be popped off the bus and will be ignored. +It is not possible to use message enums beyond #GST_MESSAGE_EXTENDED in the +@events mask + +Because poll is implemented using the "message" signal enabled by +gst_bus_add_signal_watch(), calling gst_bus_poll() will cause the "message" +signal to be emitted for every message that poll sees. Thus a "message" +signal handler will see the same messages that this function sees -- neither +will steal messages from the other. + +This function will run a #GMainLoop from the default main context when +polling. + +You should never use this function, since it is pure evil. This is +especially true for GUI applications based on Gtk+ or Qt, but also for any +other non-trivial application that uses the GLib main loop. As this function +runs a GLib main loop, any callback attached to the default GLib main +context may be invoked. This could be timeouts, GUI events, I/O events etc.; +even if gst_bus_poll() is called with a 0 timeout. Any of these callbacks +may do things you do not expect, e.g. destroy the main application window or +some other resource; change other application state; display a dialog and +run another main loop until the user clicks it away. In short, using this +function may add a lot of complexity to your code through unexpected +re-entrancy and unexpected changes to your application's state. + +For 0 timeouts use gst_bus_pop_filtered() instead of this function; for +other short timeouts use gst_bus_timed_pop_filtered(); everything else is +better handled by setting up an asynchronous bus watch and doing things +from there.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the message that was received, + or %NULL if the poll timed out.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="events" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a mask of #GstMessageType, representing the set of message types to +poll for (note special handling of extended message types below)</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the poll timeout, as a #GstClockTime, or #GST_CLOCK_TIME_NONE to poll +indefinitely.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="pop" c:identifier="gst_bus_pop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Gets a message from the bus.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the #GstMessage that is on the + bus, or %NULL if the bus is empty.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to pop</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + </parameters> + </method> + <method name="pop_filtered" c:identifier="gst_bus_pop_filtered"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Gets a message matching @type from the bus. Will discard all messages on +the bus that do not match @type and that have been posted before the first +message that does match @type. If there is no message matching @type on +the bus, all messages will be discarded. It is not possible to use message +enums beyond #GST_MESSAGE_EXTENDED in the @events mask.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the next #GstMessage matching + @type that is on the bus, or %NULL if the bus is empty or there + is no message matching @type.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to pop</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="types" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">message types to take into account</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + </parameters> + </method> + <method name="post" c:identifier="gst_bus_post"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Posts a message on the given bus. Ownership of the message +is taken by the bus.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">%TRUE if the message could be posted, %FALSE if the bus is flushing.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to post on</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the #GstMessage to post</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </method> + <method name="remove_signal_watch" c:identifier="gst_bus_remove_signal_watch"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Removes a signal watch previously added with gst_bus_add_signal_watch().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus you previously added a signal watch to</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_watch" c:identifier="gst_bus_remove_watch" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Removes an installed bus watch from @bus.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">%TRUE on success or %FALSE if @bus has no event source.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to remove the watch from.</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_flushing" c:identifier="gst_bus_set_flushing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">If @flushing, flushes out and unrefs any messages queued in the bus. Releases +references to the message origin objects. Will flush future messages until +gst_bus_set_flushing() sets @flushing to %FALSE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="flushing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">whether or not to flush the bus</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_sync_handler" c:identifier="gst_bus_set_sync_handler"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Sets the synchronous handler on the bus. The function will be called +every time a new message is posted on the bus. Note that the function +will be called in the same thread context as the posting object. This +function is usually only called by the creator of the bus. Applications +should handle messages asynchronously using the gst_bus watch and poll +functions. + +Before 1.16.3 it was not possible to replace an existing handler and +clearing an existing handler with %NULL was not thread-safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to install the handler on</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">The handler function to install</doc> + <type name="BusSyncHandler" c:type="GstBusSyncHandler"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">User data that will be sent to the handler function.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">called when @user_data becomes unused</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="sync_signal_handler" c:identifier="gst_bus_sync_signal_handler"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">A helper #GstBusSyncHandler that can be used to convert all synchronous +messages into signals.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">%GST_BUS_PASS</doc> + <type name="BusSyncReply" c:type="GstBusSyncReply"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the #GstMessage received</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="timed_pop" c:identifier="gst_bus_timed_pop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Gets a message from the bus, waiting up to the specified timeout. + +If @timeout is 0, this function behaves like gst_bus_pop(). If @timeout is +#GST_CLOCK_TIME_NONE, this function will block forever until a message was +posted on the bus.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the #GstMessage that is on the + bus after the specified timeout or %NULL if the bus is empty + after the timeout expired.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to pop</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a timeout</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="timed_pop_filtered" c:identifier="gst_bus_timed_pop_filtered"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Gets a message from the bus whose type matches the message type mask @types, +waiting up to the specified timeout (and discarding any messages that do not +match the mask provided). + +If @timeout is 0, this function behaves like gst_bus_pop_filtered(). If +@timeout is #GST_CLOCK_TIME_NONE, this function will block forever until a +matching message was posted on the bus.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstMessage matching the + filter in @types, or %NULL if no matching message was found on + the bus until the timeout expired.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <instance-parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a #GstBus to pop from</doc> + <type name="Bus" c:type="GstBus*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">a timeout in nanoseconds, or %GST_CLOCK_TIME_NONE to wait forever</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="types" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">message types to take into account, %GST_MESSAGE_ANY for any type</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + </parameters> + </method> + <property name="enable-async" readable="0" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">Enables async message delivery support for bus watches, +gst_bus_pop() and similar API. Without this only the +synchronous message handlers are called. + +This property is used to create the child element buses +in #GstBin.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="object"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the parent structure</doc> + <type name="Object" c:type="GstObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BusPrivate" c:type="GstBusPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="message" when="last" detailed="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">A message has been posted on the bus. This signal is emitted from a +#GSource added to the mainloop. this signal will only be emitted when +there is a #GMainLoop running.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the message that has been posted asynchronously</doc> + <type name="Message"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="sync-message" when="last" detailed="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">A message has been posted on the bus. This signal is emitted from the +thread that posted the message so one has to be careful with locking. + +This signal will not be emitted by default, you have to call +gst_bus_enable_sync_message_emission() before.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.c">the message that has been posted synchronously</doc> + <type name="Message"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="BusClass" c:type="GstBusClass" glib:is-gtype-struct-for="Bus"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">GStreamer bus class.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the parent class structure</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="message"> + <callback name="message"> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the message that has been posted asynchronously</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sync_message"> + <callback name="sync_message"> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the message that has been posted synchronously</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="BusFlags" glib:type-name="GstBusFlags" glib:get-type="gst_bus_flags_get_type" c:type="GstBusFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">The standard flags that a bus may have.</doc> + <member name="flushing" value="16" c:identifier="GST_BUS_FLUSHING" glib:nick="flushing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">The bus is currently dropping all messages</doc> + </member> + <member name="flag_last" value="32" c:identifier="GST_BUS_FLAG_LAST" glib:nick="flag-last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">offset to define more flags</doc> + </member> + </bitfield> + <callback name="BusFunc" c:type="GstBusFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">Specifies the type of function passed to gst_bus_add_watch() or +gst_bus_add_watch_full(), which is called from the mainloop when a message +is available on the bus. + +The message passed to the function will be unreffed after execution of this +function so it should not be freed in the function. + +Note that this function is used as a #GSourceFunc which means that returning +%FALSE will remove the #GSource from the mainloop.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">%FALSE if the event source should be removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the #GstBus that sent the message</doc> + <type name="Bus" c:type="GstBus*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">user data that has been given, when registering the handler</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="BusPrivate" c:type="GstBusPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + </record> + <callback name="BusSyncHandler" c:type="GstBusSyncHandler"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">Handler will be invoked synchronously, when a new message has been injected +into the bus. This function is mostly used internally. Only one sync handler +can be attached to a given bus. + +If the handler returns %GST_BUS_DROP, it should unref the message, else the +message should not be unreffed by the sync handler.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">#GstBusSyncReply stating what to do with the message</doc> + <type name="BusSyncReply" c:type="GstBusSyncReply"/> + </return-value> + <parameters> + <parameter name="bus" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the #GstBus that sent the message</doc> + <type name="Bus" c:type="GstBus*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">the #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">user data that has been given, when registering the handler</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <enumeration name="BusSyncReply" glib:type-name="GstBusSyncReply" glib:get-type="gst_bus_sync_reply_get_type" c:type="GstBusSyncReply"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">The result values for a GstBusSyncHandler.</doc> + <member name="drop" value="0" c:identifier="GST_BUS_DROP" glib:nick="drop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">drop the message</doc> + </member> + <member name="pass" value="1" c:identifier="GST_BUS_PASS" glib:nick="pass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">pass the message to the async queue</doc> + </member> + <member name="async" value="2" c:identifier="GST_BUS_ASYNC" glib:nick="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbus.h">pass message to async queue, continue if message is handled</doc> + </member> + </enumeration> + <function-macro name="CALL_PARENT" c:identifier="GST_CALL_PARENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Just call the parent handler. This assumes that there is a variable +named parent_class that points to the (duh!) parent class. Note that +this macro is not to be used with things that return something, use +the _WITH_DEFAULT version for that</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="parent_class_cast"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">the name of the class cast macro for the parent type</doc> + </parameter> + <parameter name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">name of the function to call</doc> + </parameter> + <parameter name="args"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">arguments enclosed in '( )'</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CALL_PARENT_WITH_DEFAULT" c:identifier="GST_CALL_PARENT_WITH_DEFAULT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Same as GST_CALL_PARENT(), but in case there is no implementation, it +evaluates to @def_return.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="parent_class_cast"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">the name of the class cast macro for the parent type</doc> + </parameter> + <parameter name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">name of the function to call</doc> + </parameter> + <parameter name="args"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">arguments enclosed in '( )'</doc> + </parameter> + <parameter name="def_return"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">default result</doc> + </parameter> + </parameters> + </function-macro> + <constant name="CAN_INLINE" value="1" c:type="GST_CAN_INLINE"> + <source-position filename="../subprojects/gstreamer/gst/gstmacros.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="CAPS" c:identifier="GST_CAPS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAPS_CAST" c:identifier="GST_CAPS_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAPS_FEATURES" c:identifier="GST_CAPS_FEATURES" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <parameters> + <parameter name="object"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAPS_FEATURES_CAST" c:identifier="GST_CAPS_FEATURES_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <parameters> + <parameter name="object"> + </parameter> + </parameters> + </function-macro> + <constant name="CAPS_FEATURE_MEMORY_SYSTEM_MEMORY" value="memory:SystemMemory" c:type="GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY"> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="CAPS_FLAGS" c:identifier="GST_CAPS_FLAGS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Gets a flags word containing #GstCapsFlags flags set on this caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">a #GstCaps.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAPS_FLAG_IS_SET" c:identifier="GST_CAPS_FLAG_IS_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Gives the status of a specific flag on a caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">a #GstCaps.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstCapsFlags to check.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAPS_FLAG_SET" c:identifier="GST_CAPS_FLAG_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Sets a caps flag on a caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">a #GstCaps.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstCapsFlags to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAPS_FLAG_UNSET" c:identifier="GST_CAPS_FLAG_UNSET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Clears a caps flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">a #GstCaps.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstCapsFlags to clear.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAPS_IS_SIMPLE" c:identifier="GST_CAPS_IS_SIMPLE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Checks if the number of structures in the given caps is exactly one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstCaps instance to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAPS_REFCOUNT" c:identifier="GST_CAPS_REFCOUNT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Gives access to the reference count field of the caps</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">a #GstCaps</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAPS_REFCOUNT_VALUE" c:identifier="GST_CAPS_REFCOUNT_VALUE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Gets the reference count value of the caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">a #GstCaps</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAT_MEMDUMP" c:identifier="GST_CAT_MEMDUMP" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Output a hexdump of @data in the given category. + +There is no need to finish the end of the message string with a newline +character, a newline character will be added automatically.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="cat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">category to use</doc> + </parameter> + <parameter name="msg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">message string to log with the data</doc> + </parameter> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">pointer to the data to output</doc> + </parameter> + <parameter name="length"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">length of the data to output</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAT_MEMDUMP_ID" c:identifier="GST_CAT_MEMDUMP_ID" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Output a hexdump of @data relating to the given @id in the given category. + +There is no need to finish the end of the message string with a newline +character, a newline character will be added automatically.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="cat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">category to use</doc> + </parameter> + <parameter name="id"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">An identifier of the message provider</doc> + </parameter> + <parameter name="msg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">message string to log with the data</doc> + </parameter> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">pointer to the data to output</doc> + </parameter> + <parameter name="length"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">length of the data to output</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CAT_MEMDUMP_OBJECT" c:identifier="GST_CAT_MEMDUMP_OBJECT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Output a hexdump of @data relating to the given object in the given +category. + +There is no need to finish the end of the message string with a newline +character, a newline character will be added automatically.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="cat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">category to use</doc> + </parameter> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the #GObject the message belongs to</doc> + </parameter> + <parameter name="msg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">message string to log with the data</doc> + </parameter> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">pointer to the data to output</doc> + </parameter> + <parameter name="length"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">length of the data to output</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CHECK_VERSION" c:identifier="GST_CHECK_VERSION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">Check whether a GStreamer version equal to or greater than +major.minor.micro is present. + +Note: Since version 1.22 this macro can no longer be used to check that +current git version maps to the next version. So for instance, +GST_CHECK_VERSION(1, 22, 0) on a git checkout of the 1.21 development version +will expand to `FALSE`.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstversion.h"/> + <parameters> + <parameter name="major"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">a number indicating the major version</doc> + </parameter> + <parameter name="minor"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">a number indicating the minor version</doc> + </parameter> + <parameter name="micro"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">a number indicating the micro version</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CHILD_PROXY" c:identifier="GST_CHILD_PROXY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CHILD_PROXY_GET_INTERFACE" c:identifier="GST_CHILD_PROXY_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK" c:identifier="GST_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="clock"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_CAST" c:identifier="GST_CLOCK_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="clock"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_CLASS" c:identifier="GST_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="cclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_DIFF" c:identifier="GST_CLOCK_DIFF" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Calculates a difference between two clock times as a #GstClockTimeDiff. +The difference is calculated as @e - @s.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="s"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the first time</doc> + </parameter> + <parameter name="e"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the second time</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_ENTRY" c:identifier="GST_CLOCK_ENTRY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Casts to a clock entry</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to cast</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_ENTRY_CLOCK" c:identifier="GST_CLOCK_ENTRY_CLOCK" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Gets the owner clock of the entry</doc> + <doc-deprecated xml:space="preserve">Use gst_clock_id_get_clock() instead.</doc-deprecated> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_ENTRY_INTERVAL" c:identifier="GST_CLOCK_ENTRY_INTERVAL" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Gets the interval of this periodic entry</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_ENTRY_STATUS" c:identifier="GST_CLOCK_ENTRY_STATUS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The status of the entry</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_ENTRY_TIME" c:identifier="GST_CLOCK_ENTRY_TIME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Gets the requested time of this entry</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_ENTRY_TYPE" c:identifier="GST_CLOCK_ENTRY_TYPE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Gets the type of the clock entry</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_FLAGS" c:identifier="GST_CLOCK_FLAGS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Gets the #GstClockFlags clock flags.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the clock to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_GET_CLASS" c:identifier="GST_CLOCK_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="clock"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_STIME_IS_VALID" c:identifier="GST_CLOCK_STIME_IS_VALID" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Tests if a given #GstClockTimeDiff of #gint64 represents a valid defined time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">signed clock time to validate</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CLOCK_TIME_IS_VALID" c:identifier="GST_CLOCK_TIME_IS_VALID" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Tests if a given #GstClockTime represents a valid defined time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">clock time to validate</doc> + </parameter> + </parameters> + </function-macro> + <constant name="CLOCK_TIME_NONE" value="18446744073709551615" c:type="GST_CLOCK_TIME_NONE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Constant to define an undefined clock time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="ClockTime" c:type="GstClockTime"/> + </constant> + <function-macro name="CONTEXT" c:identifier="GST_CONTEXT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTEXT_CAST" c:identifier="GST_CONTEXT_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTROL_BINDING" c:identifier="GST_CONTROL_BINDING" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTROL_BINDING_CLASS" c:identifier="GST_CONTROL_BINDING_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTROL_BINDING_GET_CLASS" c:identifier="GST_CONTROL_BINDING_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTROL_BINDING_PSPEC" c:identifier="GST_CONTROL_BINDING_PSPEC" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <parameters> + <parameter name="cb"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTROL_SOURCE" c:identifier="GST_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTROL_SOURCE_CLASS" c:identifier="GST_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTROL_SOURCE_GET_CLASS" c:identifier="GST_CONTROL_SOURCE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <record name="Caps" c:type="GstCaps" glib:type-name="GstCaps" glib:get-type="gst_caps_get_type" c:symbol-prefix="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Caps (capabilities) are lightweight refcounted objects describing media types. +They are composed of an array of #GstStructure. + +Caps are exposed on #GstPadTemplate to describe all possible types a +given pad can handle. They are also stored in the #GstRegistry along with +a description of the #GstElement. + +Caps are exposed on the element pads using the gst_pad_query_caps() pad +function. This function describes the possible types that the pad can +handle or produce at runtime. + +A #GstCaps can be constructed with the following code fragment: + +``` C + GstCaps *caps = gst_caps_new_simple ("video/x-raw", + "format", G_TYPE_STRING, "I420", + "framerate", GST_TYPE_FRACTION, 25, 1, + "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, + "width", G_TYPE_INT, 320, + "height", G_TYPE_INT, 240, + NULL); +``` + +A #GstCaps is fixed when it has no fields with ranges or lists. Use +gst_caps_is_fixed() to test for fixed caps. Fixed caps can be used in a +caps event to notify downstream elements of the current media type. + +Various methods exist to work with the media types such as subtracting +or intersecting. + +Be aware that until 1.20 the #GstCaps / #GstStructure serialization into string +had limited support for nested #GstCaps / #GstStructure fields. It could only +support one level of nesting. Using more levels would lead to unexpected +behavior when using serialization features, such as gst_caps_to_string() or +gst_value_serialize() and their counterparts.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <field name="mini_object" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the parent type</doc> + <type name="MiniObject" c:type="GstMiniObject"/> + </field> + <constructor name="new_any" c:identifier="gst_caps_new_any"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Creates a new #GstCaps that indicates that it is compatible with +any media format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + </constructor> + <constructor name="new_empty" c:identifier="gst_caps_new_empty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Creates a new #GstCaps that is empty. That is, the returned +#GstCaps contains no media formats. +The #GstCaps is guaranteed to be writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + </constructor> + <constructor name="new_empty_simple" c:identifier="gst_caps_new_empty_simple"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Creates a new #GstCaps that contains one #GstStructure with name +@media_type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="media_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the media type of the structure</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_full" c:identifier="gst_caps_new_full" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Creates a new #GstCaps and adds all the structures listed as +arguments. The list must be %NULL-terminated. The structures +are not copied; the returned #GstCaps owns the structures.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="struct1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the first structure to add</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">additional structures to add</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <constructor name="new_full_valist" c:identifier="gst_caps_new_full_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Creates a new #GstCaps and adds all the structures listed as +arguments. The list must be %NULL-terminated. The structures +are not copied; the returned #GstCaps owns the structures.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the first structure to add</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">additional structures to add</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_simple" c:identifier="gst_caps_new_simple" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Creates a new #GstCaps that contains one #GstStructure. The +structure is defined by the arguments, which have the same format +as gst_structure_new().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="media_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the media type of the structure</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">first field to set</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">additional arguments</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <method name="append" c:identifier="gst_caps_append"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Appends the structures contained in @caps2 to @caps1. The structures in +@caps2 are not copied -- they are transferred to @caps1, and then @caps2 is +freed. If either caps is ANY, the resulting caps will be ANY.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="caps1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps that will be appended to</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="caps2" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to append</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="append_structure" c:identifier="gst_caps_append_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Appends @structure to @caps. The structure is not copied; @caps +becomes the owner of @structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps that will be appended to</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstStructure to append</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="append_structure_full" c:identifier="gst_caps_append_structure_full" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Appends @structure with @features to @caps. The structure is not copied; @caps +becomes the owner of @structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps that will be appended to</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstStructure to append</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="features" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCapsFeatures to append</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </parameter> + </parameters> + </method> + <method name="can_intersect" c:identifier="gst_caps_can_intersect"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Tries intersecting @caps1 and @caps2 and reports whether the result would not +be empty</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if intersection would be not empty</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps to intersect</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="caps2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps to intersect</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_caps_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">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().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps.</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="copy_nth" c:identifier="gst_caps_copy_nth" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Creates a new #GstCaps and appends a copy of the nth structure +contained in @caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to copy</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="nth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the nth structure to copy</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="filter_and_map_in_place" c:identifier="gst_caps_filter_and_map_in_place" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Calls the provided function once for each structure and caps feature in the +#GstCaps. In contrast to gst_caps_foreach(), the function may modify the +structure and features. In contrast to gst_caps_filter_and_map_in_place(), +the structure and features are removed from the caps if %FALSE is returned +from the function. +The caps must be mutable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a function to call for each field</doc> + <type name="CapsFilterMapFunc" c:type="GstCapsFilterMapFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="fixate" c:identifier="gst_caps_fixate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Modifies the given @caps into a representation with only fixed +values. First the caps will be truncated and then the first structure will be +fixated with gst_structure_fixate(). + +This function takes ownership of @caps and will call gst_caps_make_writable() +on it so you must not use @caps afterwards unless you keep an additional +reference to it with gst_caps_ref(). + +Note that it is not guaranteed that the returned caps have exactly one +structure. If @caps are empty caps then the returned caps will be +the empty too and contain no structure at all. + +Calling this function with ANY caps is not allowed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the fixated caps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps to fixate</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="foreach" c:identifier="gst_caps_foreach" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Calls the provided function once for each structure and caps feature in the +#GstCaps. The function must not modify the fields. +Also see gst_caps_map_in_place() and gst_caps_filter_and_map_in_place().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if the supplied function returns %TRUE for each call, +%FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a function to call for each field</doc> + <type name="CapsForeachFunc" c:type="GstCapsForeachFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="get_features" c:identifier="gst_caps_get_features" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Finds the features in @caps at @index, and returns it. + +WARNING: This function takes a `const GstCaps *`, but returns a +non-const `GstCapsFeatures *`. This is for programming convenience -- +the caller should be aware that features inside a constant +#GstCaps should not be modified. However, if you know the caps +are writable, either because you have just copied them or made +them writable with gst_caps_make_writable(), you may modify the +features returned in the usual way, e.g. with functions like +gst_caps_features_add().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a pointer to the #GstCapsFeatures + corresponding to @index</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the index of the structure</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_size" c:identifier="gst_caps_get_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Gets the number of structures contained in @caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the number of structures that @caps contains</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_structure" c:identifier="gst_caps_get_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Finds the structure in @caps at @index, and returns it. + +WARNING: This function takes a `const GstCaps *`, but returns a +non-const `GstStructure *`. This is for programming convenience -- +the caller should be aware that structures inside a constant +#GstCaps should not be modified. However, if you know the caps +are writable, either because you have just copied them or made +them writable with gst_caps_make_writable(), you may modify the +structure returned in the usual way, e.g. with functions like +gst_structure_set().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a pointer to the #GstStructure corresponding + to @index</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the index of the structure</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="intersect" c:identifier="gst_caps_intersect"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Creates a new #GstCaps that contains all the formats that are common +to both @caps1 and @caps2. Defaults to %GST_CAPS_INTERSECT_ZIG_ZAG mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps to intersect</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="caps2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps to intersect</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="intersect_full" c:identifier="gst_caps_intersect_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Creates a new #GstCaps that contains all the formats that are common +to both @caps1 and @caps2, the order is defined by the #GstCapsIntersectMode +used.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the new #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps to intersect</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="caps2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps to intersect</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">The intersection algorithm/mode to use</doc> + <type name="CapsIntersectMode" c:type="GstCapsIntersectMode"/> + </parameter> + </parameters> + </method> + <method name="is_always_compatible" c:identifier="gst_caps_is_always_compatible"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">A given #GstCaps structure is always compatible with another if +every media format that is in the first is also contained in the +second. That is, @caps1 is a subset of @caps2.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @caps1 is a subset of @caps2.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to test</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="caps2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to test</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="is_any" c:identifier="gst_caps_is_any"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Determines if @caps represents any media format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @caps represents any format.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to test</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_empty" c:identifier="gst_caps_is_empty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Determines if @caps represents no media formats.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @caps represents no formats.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to test</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_equal" c:identifier="gst_caps_is_equal"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Checks if the given caps represent the same set of caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if both caps are equal.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="caps2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">another #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="is_equal_fixed" c:identifier="gst_caps_is_equal_fixed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Tests if two #GstCaps are equal. This function only works on fixed +#GstCaps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if the arguments represent the same format</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to test</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="caps2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to test</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="is_fixed" c:identifier="gst_caps_is_fixed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Fixed #GstCaps describe exactly one format, that is, they have exactly +one structure, and each field in the structure describes a fixed type. +Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @caps is fixed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to test</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_strictly_equal" c:identifier="gst_caps_is_strictly_equal"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Checks if the given caps are exactly the same set of caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if both caps are strictly equal.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="caps2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">another #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="is_subset" c:identifier="gst_caps_is_subset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Checks if all caps represented by @subset are also represented by @superset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @subset is a subset of @superset</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="subset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="superset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a potentially greater #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="is_subset_structure" c:identifier="gst_caps_is_subset_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Checks if @structure is a subset of @caps. See gst_caps_is_subset() +for more information.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @structure is a subset of @caps</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a potential #GstStructure subset of @caps</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="is_subset_structure_full" c:identifier="gst_caps_is_subset_structure_full" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Checks if @structure is a subset of @caps. See gst_caps_is_subset() +for more information.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @structure is a subset of @caps</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a potential #GstStructure subset of @caps</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + <parameter name="features" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCapsFeatures for @structure</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </parameter> + </parameters> + </method> + <method name="map_in_place" c:identifier="gst_caps_map_in_place" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Calls the provided function once for each structure and caps feature in the +#GstCaps. In contrast to gst_caps_foreach(), the function may modify but not +delete the structures and features. The caps must be mutable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if the supplied function returns %TRUE for each call, +%FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a function to call for each field</doc> + <type name="CapsMapFunc" c:type="GstCapsMapFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="merge" c:identifier="gst_caps_merge"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Appends the structures contained in @caps2 to @caps1 if they are not yet +expressed by @caps1. The structures in @caps2 are not copied -- they are +transferred to a writable copy of @caps1, and then @caps2 is freed. +If either caps is ANY, the resulting caps will be ANY.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the merged caps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps1" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps that will take the new entries</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="caps2" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to merge in</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="merge_structure" c:identifier="gst_caps_merge_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Appends @structure to @caps if it is not already expressed by @caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the merged caps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to merge into</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstStructure to merge</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="merge_structure_full" c:identifier="gst_caps_merge_structure_full" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Appends @structure with @features to @caps if its not already expressed by @caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the merged caps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to merge into</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstStructure to merge</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="features" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCapsFeatures to merge</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </parameter> + </parameters> + </method> + <method name="normalize" c:identifier="gst_caps_normalize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Returns a #GstCaps that represents the same set of formats as +@caps, but contains no lists. Each list is expanded into separate +#GstStructure. + +This function takes ownership of @caps and will call gst_caps_make_writable() +on it so you must not use @caps afterwards unless you keep an additional +reference to it with gst_caps_ref().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the normalized #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps to normalize</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_caps_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Adds a reference to a #GstCaps object. + +From this point on, until the caller calls gst_caps_unref() or +gst_caps_make_writable(), it is guaranteed that the caps object will not +change. This means its structures won't change, etc. To use a #GstCaps +object, you must always have a refcount on it -- either the one made +implicitly by e.g. gst_caps_new_simple(), or via taking one explicitly with +this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the same #GstCaps object.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to reference</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_structure" c:identifier="gst_caps_remove_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Removes the structure with the given index from the list of structures +contained in @caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to remove from</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Index of the structure to remove</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="serialize" c:identifier="gst_caps_serialize" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Converts @caps to a string representation. This string representation can be +converted back to a #GstCaps by gst_caps_from_string(). + +This prints the caps in human readable form. + +This version of the caps serialization function introduces support for nested +structures and caps but the resulting strings won't be parsable with +GStreamer prior to 1.20 unless #GST_SERIALIZE_FLAG_BACKWARD_COMPAT is passed +as @flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a newly allocated string representing @caps.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstSerializeFlags</doc> + <type name="SerializeFlags" c:type="GstSerializeFlags"/> + </parameter> + </parameters> + </method> + <method name="set_features" c:identifier="gst_caps_set_features" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Sets the @features for the structure at @index.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the index of the structure</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="features" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCapsFeatures to set</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </parameter> + </parameters> + </method> + <method name="set_features_simple" c:identifier="gst_caps_set_features_simple" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Sets the @features for all the structures of @caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">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" filename="../subprojects/gstreamer/gst/gstcaps.c">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"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Sets fields in a #GstCaps. The arguments must be passed in the same +manner as gst_structure_set(), and be %NULL-terminated.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to set</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">first field to set</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">additional parameters</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_simple_valist" c:identifier="gst_caps_set_simple_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Sets fields in a #GstCaps. The arguments must be passed in the same +manner as gst_structure_set(), and be %NULL-terminated.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to set</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">first field to set</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="varargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">additional parameters</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="set_value" c:identifier="gst_caps_set_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Sets the given @field on all structures of @caps to the given @value. +This is a convenience function for calling gst_structure_set_value() on +all structures of @caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">a writable caps</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">name of the field to set</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">value to set the field to</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="simplify" c:identifier="gst_caps_simplify"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Converts the given @caps into a representation that represents the +same set of formats, but in a simpler form. Component structures that are +identical are merged. Component structures that have values that can be +merged are also merged. + +This function takes ownership of @caps and will call gst_caps_make_writable() +on it if necessary, so you must not use @caps afterwards unless you keep an +additional reference to it with gst_caps_ref(). + +This method does not preserve the original order of @caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">The simplified caps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps to simplify</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="steal_structure" c:identifier="gst_caps_steal_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Retrieves the structure with the given index from the list of structures +contained in @caps. The caller becomes the owner of the returned structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a pointer to the #GstStructure + corresponding to @index.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to retrieve from</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Index of the structure to retrieve</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="subtract" c:identifier="gst_caps_subtract"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Subtracts the @subtrahend from the @minuend. +> This function does not work reliably if optional properties for caps +> are included on one caps and omitted on the other.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the resulting caps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="minuend" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">#GstCaps to subtract from</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + <parameter name="subtrahend" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">#GstCaps to subtract</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="to_string" c:identifier="gst_caps_to_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Converts @caps to a string representation. This string representation +can be converted back to a #GstCaps by gst_caps_from_string(). + +For debugging purposes its easier to do something like this: + +``` C +GST_LOG ("caps are %" GST_PTR_FORMAT, caps); +``` + +This prints the caps in human readable form. + +The implementation of serialization up to 1.20 would lead to unexpected results +when there were nested #GstCaps / #GstStructure deeper than one level.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a newly allocated string representing @caps.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="truncate" c:identifier="gst_caps_truncate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Discards all but the first structure from @caps. Useful when +fixating. + +This function takes ownership of @caps and will call gst_caps_make_writable() +on it if necessary, so you must not use @caps afterwards unless you keep an +additional reference to it with gst_caps_ref(). + +Note that it is not guaranteed that the returned caps have exactly one +structure. If @caps is any or empty caps then the returned caps will be +the same and contain no structure at all.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">truncated caps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstCaps to truncate</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_caps_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Unrefs a #GstCaps and frees all its structures and the +structures' values when the refcount reaches 0.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <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" filename="../subprojects/gstreamer/gst/gstcaps.c">a #GstCaps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </instance-parameter> + </parameters> + </method> + <function name="from_string" c:identifier="gst_caps_from_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Converts @caps from a string representation. + +The implementation of serialization up to 1.20 would lead to unexpected results +when there were nested #GstCaps / #GstStructure deeper than one level.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a newly allocated #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a string to convert to #GstCaps</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="replace" c:identifier="gst_caps_replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Modifies a pointer to a #GstCaps to point to a different #GstCaps. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +caps is unreffed, the new is reffed). + +Either @new_caps or the #GstCaps pointed to by @old_caps may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @new_caps was different from @old_caps</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_caps" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">pointer to a pointer + to a #GstCaps to be replaced.</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + <parameter name="new_caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">pointer to a #GstCaps that will + replace the caps pointed to by @old_caps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="take" c:identifier="gst_caps_take" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Modifies a pointer to a #GstCaps to point to a different #GstCaps. This +function is similar to gst_caps_replace() except that it takes ownership +of @new_caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @new_caps was different from @old_caps</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_caps" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">pointer to a pointer to a #GstCaps to be + replaced.</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + <parameter name="new_caps" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">pointer to a #GstCaps that will + replace the caps pointed to by @old_caps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + </record> + <record name="CapsFeatures" c:type="GstCapsFeatures" version="1.2" glib:type-name="GstCapsFeatures" glib:get-type="gst_caps_features_get_type" c:symbol-prefix="caps_features"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">#GstCapsFeatures can optionally be set on a #GstCaps to add requirements +for additional features for a specific #GstStructure. Caps structures with +the same name but with a non-equal set of caps features are not compatible. +If a pad supports multiple sets of features it has to add multiple equal +structures with different feature sets to the caps. + +Empty #GstCapsFeatures are equivalent with the #GstCapsFeatures that only +contain #GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY. ANY #GstCapsFeatures as +created by gst_caps_features_new_any() are equal to any other #GstCapsFeatures +and can be used to specify that any #GstCapsFeatures would be supported, e.g. +for elements that don't touch buffer memory. #GstCaps with ANY #GstCapsFeatures +are considered non-fixed and during negotiation some #GstCapsFeatures have +to be selected. + +Examples for caps features would be the requirement of a specific #GstMemory +types or the requirement of having a specific #GstMeta on the buffer. Features +are given as a string of the format `memory:GstMemoryTypeName` or +`meta:GstMetaAPIName`.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <constructor name="new" c:identifier="gst_caps_features_new" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Creates a new #GstCapsFeatures with the given features. +The last argument must be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new, empty #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + <parameters> + <parameter name="feature1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">name of first feature to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">additional features</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <constructor name="new_any" c:identifier="gst_caps_features_new_any" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Creates a new, ANY #GstCapsFeatures. This will be equal +to any other #GstCapsFeatures but caps with these are +unfixed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new, ANY #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + </constructor> + <constructor name="new_empty" c:identifier="gst_caps_features_new_empty" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Creates a new, empty #GstCapsFeatures.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new, empty #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + </constructor> + <constructor name="new_id" c:identifier="gst_caps_features_new_id" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Creates a new #GstCapsFeatures with the given features. +The last argument must be 0.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new, empty #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + <parameters> + <parameter name="feature1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">name of first feature to set</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">additional features</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <constructor name="new_id_valist" c:identifier="gst_caps_features_new_id_valist" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Creates a new #GstCapsFeatures with the given features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new, empty #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + <parameters> + <parameter name="feature1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">name of first feature to set</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="varargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">variable argument list</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_single" c:identifier="gst_caps_features_new_single" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Creates a new #GstCapsFeatures with a single feature.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + <parameters> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">The feature</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_valist" c:identifier="gst_caps_features_new_valist" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Creates a new #GstCapsFeatures with the given features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new, empty #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + <parameters> + <parameter name="feature1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">name of first feature to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="varargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">variable argument list</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </constructor> + <method name="add" c:identifier="gst_caps_features_add" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Adds @feature to @features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a feature.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_id" c:identifier="gst_caps_features_add_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Adds @feature to @features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a feature.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </method> + <method name="contains" c:identifier="gst_caps_features_contains" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Checks if @features contains @feature.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">%TRUE if @features contains @feature.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a feature</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="contains_id" c:identifier="gst_caps_features_contains_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Checks if @features contains @feature.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">%TRUE if @features contains @feature.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a feature</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_caps_features_copy" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Duplicates a #GstCapsFeatures and all its values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures to duplicate</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_caps_features_free" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Frees a #GstCapsFeatures and all its values. The caps features must not +have a parent when this function is called.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">the #GstCapsFeatures to free</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_nth" c:identifier="gst_caps_features_get_nth" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Returns the @i-th feature of @features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">The @i-th feature of @features.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </instance-parameter> + <parameter name="i" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">index of the feature</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_nth_id" c:identifier="gst_caps_features_get_nth_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Returns the @i-th feature of @features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">The @i-th feature of @features.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </instance-parameter> + <parameter name="i" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">index of the feature</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_size" c:identifier="gst_caps_features_get_size" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Returns the number of features in @features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">The number of features in @features.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_any" c:identifier="gst_caps_features_is_any" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Checks if @features is %GST_CAPS_FEATURES_ANY.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">%TRUE if @features is %GST_CAPS_FEATURES_ANY.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_equal" c:identifier="gst_caps_features_is_equal" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Checks if @features1 and @features2 are equal.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">%TRUE if @features1 and @features2 are equal.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="features1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </instance-parameter> + <parameter name="features2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </parameter> + </parameters> + </method> + <method name="remove" c:identifier="gst_caps_features_remove" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Removes @feature from @features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a feature.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="remove_id" c:identifier="gst_caps_features_remove_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Removes @feature from @features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures.</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a feature.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </method> + <method name="set_parent_refcount" c:identifier="gst_caps_features_set_parent_refcount" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Sets the parent_refcount field of #GstCapsFeatures. This field is used to +determine whether a caps features is mutable or not. This function should only be +called by code implementing parent objects of #GstCapsFeatures, as described in +[the MT refcounting design document](additional/design/MT-refcounting.md).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">%TRUE if the parent refcount could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </instance-parameter> + <parameter name="refcount" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a pointer to the parent's refcount</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="to_string" c:identifier="gst_caps_features_to_string" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Converts @features to a human-readable string representation. + +For debugging purposes its easier to do something like this: + +``` C +GST_LOG ("features is %" GST_PTR_FORMAT, features); +``` + +This prints the features in human readable form.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a pointer to string allocated by g_malloc().</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </instance-parameter> + </parameters> + </method> + <function name="from_string" c:identifier="gst_caps_features_from_string" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Creates a #GstCapsFeatures from a string representation.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new #GstCapsFeatures or + %NULL when the string could not be parsed.</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + <parameters> + <parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a string representation of a #GstCapsFeatures.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + </record> + <callback name="CapsFilterMapFunc" c:type="GstCapsFilterMapFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">A function that will be called in gst_caps_filter_and_map_in_place(). +The function may modify @features and @structure, and both will be +removed from the caps if %FALSE is returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">%TRUE if the features and structure should be preserved, +%FALSE if it should be removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </parameter> + <parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <bitfield name="CapsFlags" glib:type-name="GstCapsFlags" glib:get-type="gst_caps_flags_get_type" c:type="GstCapsFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Extra flags for a caps.</doc> + <member name="any" value="16" c:identifier="GST_CAPS_FLAG_ANY" glib:nick="any"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Caps has no specific content, but can contain + anything.</doc> + </member> + </bitfield> + <callback name="CapsForeachFunc" c:type="GstCapsForeachFunc" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">A function that will be called in gst_caps_foreach(). The function may +not modify @features or @structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">%TRUE if the foreach operation should continue, %FALSE if +the foreach operation should stop with %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </parameter> + <parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <enumeration name="CapsIntersectMode" glib:type-name="GstCapsIntersectMode" glib:get-type="gst_caps_intersect_mode_get_type" c:type="GstCapsIntersectMode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Modes of caps intersection + +%GST_CAPS_INTERSECT_ZIG_ZAG tries to preserve overall order of both caps +by iterating on the caps' structures as the following matrix shows: + +``` + caps1 + +------------- + | 1 2 4 7 +caps2 | 3 5 8 10 + | 6 9 11 12 +``` + +Used when there is no explicit precedence of one caps over the other. e.g. +tee's sink pad getcaps function, it will probe its src pad peers' for their +caps and intersect them with this mode. + +%GST_CAPS_INTERSECT_FIRST is useful when an element wants to preserve +another element's caps priority order when intersecting with its own caps. +Example: If caps1 is `[A, B, C]` and caps2 is `[E, B, D, A]`, the result +would be `[A, B]`, maintaining the first caps priority on the intersection.</doc> + <member name="zig_zag" value="0" c:identifier="GST_CAPS_INTERSECT_ZIG_ZAG" glib:nick="zig-zag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Zig-zags over both caps.</doc> + </member> + <member name="first" value="1" c:identifier="GST_CAPS_INTERSECT_FIRST" glib:nick="first"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Keeps the first caps order.</doc> + </member> + </enumeration> + <callback name="CapsMapFunc" c:type="GstCapsMapFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">A function that will be called in gst_caps_map_in_place(). The function +may modify @features and @structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">%TRUE if the map operation should continue, %FALSE if +the map operation should stop with %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstCapsFeatures</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </parameter> + <parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <interface name="ChildProxy" c:symbol-prefix="child_proxy" c:type="GstChildProxy" glib:type-name="GstChildProxy" glib:get-type="gst_child_proxy_get_type" glib:type-struct="ChildProxyInterface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">This interface abstracts handling of property sets for elements with +children. Imagine elements such as mixers or polyphonic generators. They all +have multiple #GstPad or some kind of voice objects. Another use case are +container elements like #GstBin. +The element implementing the interface acts as a parent for those child +objects. + +By implementing this interface the child properties can be accessed from the +parent element by using gst_child_proxy_get() and gst_child_proxy_set(). + +Property names are written as `child-name::property-name`. The whole naming +scheme is recursive. Thus `child1::child2::property` is valid too, if +`child1` and `child2` implement the #GstChildProxy interface.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <virtual-method name="child_added" invoker="child_added"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Emits the #GstChildProxy::child-added signal.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the newly added child</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the name of the new child</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="child_removed" invoker="child_removed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Emits the #GstChildProxy::child-removed signal.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the removed child</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the name of the old child</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_child_by_index" invoker="get_child_by_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Fetches a child by its number.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child object or %NULL if + not found (index too high).</doc> + <type name="GObject.Object" c:type="GObject*"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object to get the child from</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child's position in the child list</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_child_by_name" invoker="get_child_by_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Looks up a child element by the given name. + +This virtual method has a default implementation that uses #GstObject +together with gst_object_get_name(). If the interface is to be used with +#GObjects, this methods needs to be overridden.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child object or %NULL if + not found.</doc> + <type name="GObject.Object" c:type="GObject*"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object to get the child from</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child's name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_children_count" invoker="get_children_count"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Gets the number of child objects this parent contains.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the number of child objects</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="child_added" c:identifier="gst_child_proxy_child_added"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Emits the #GstChildProxy::child-added signal.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the newly added child</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the name of the new child</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="child_removed" c:identifier="gst_child_proxy_child_removed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Emits the #GstChildProxy::child-removed signal.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the removed child</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the name of the old child</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get" c:identifier="gst_child_proxy_get" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Gets properties of the parent object and its children.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <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" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">name of the first property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="get_child_by_index" c:identifier="gst_child_proxy_get_child_by_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Fetches a child by its number.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child object or %NULL if + not found (index too high).</doc> + <type name="GObject.Object" c:type="GObject*"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object to get the child from</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child's position in the child list</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_child_by_name" c:identifier="gst_child_proxy_get_child_by_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Looks up a child element by the given name. + +This virtual method has a default implementation that uses #GstObject +together with gst_object_get_name(). If the interface is to be used with +#GObjects, this methods needs to be overridden.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child object or %NULL if + not found.</doc> + <type name="GObject.Object" c:type="GObject*"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object to get the child from</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child's name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_child_by_name_recurse" c:identifier="gst_child_proxy_get_child_by_name_recurse" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Looks up a child element by the given full-path name. + +Similar to gst_child_proxy_get_child_by_name(), this method +searches and returns a child given a name. The difference is that +this method allows a hierarchical path in the form of +child1::child2::child3. In the later example this method would +return a reference to child3, if found. The name should be made of +element names only and should not contain any property names.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child object or %NULL if + not found.</doc> + <type name="GObject.Object" c:type="GObject*"/> + </return-value> + <parameters> + <instance-parameter name="child_proxy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object to get the child from</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the full-path child's name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_children_count" c:identifier="gst_child_proxy_get_children_count"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Gets the number of child objects this parent contains.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the number of child objects</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_property" c:identifier="gst_child_proxy_get_property"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Gets a single property using the GstChildProxy mechanism. +You are responsible for freeing it by calling g_value_unset()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <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" filename="../subprojects/gstreamer/gst/gstchildproxy.c">object to query</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">name of the property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">a #GValue that should take the result.</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_valist" c:identifier="gst_child_proxy_get_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Gets properties of the parent object and its children.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <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" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the object to query</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">name of the first property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="lookup" c:identifier="gst_child_proxy_lookup"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Looks up which object and #GParamSpec would be effected by the given @name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">%TRUE if @target and @pspec could be found. %FALSE otherwise. In that +case the values for @pspec and @target are not modified. Unref @target after +usage. For plain #GObject @target is the same as @object.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">child proxy object to lookup the property in</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">name of the property to look up</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="target" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">pointer to a #GObject that + takes the real object to set property on</doc> + <type name="GObject.Object" c:type="GObject**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">pointer to take the #GParamSpec + describing the property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </method> + <method name="set" c:identifier="gst_child_proxy_set" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Sets properties of the parent object and its children.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <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" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">name of the first property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">value for the first property, followed optionally by more name/value pairs, followed by %NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_property" c:identifier="gst_child_proxy_set_property"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Sets a single property using the GstChildProxy mechanism.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <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" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">name of the property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">new #GValue for the property</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_valist" c:identifier="gst_child_proxy_set_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Sets properties of the parent object and its children.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <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" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">name of the first property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">value for the first property, followed optionally by more name/value pairs, followed by %NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <glib:signal name="child-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Will be emitted after the @object was added to the @child_proxy.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the #GObject that was added</doc> + <type name="GObject.Object"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the name of the new child</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="child-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">Will be emitted after the @object was removed from the @child_proxy.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the #GObject that was removed</doc> + <type name="GObject.Object"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the name of the old child</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </glib:signal> + </interface> + <record name="ChildProxyInterface" c:type="GstChildProxyInterface" glib:is-gtype-struct-for="ChildProxy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.h">#GstChildProxy interface.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.h">parent interface type.</doc> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="get_child_by_name"> + <callback name="get_child_by_name"> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child object or %NULL if + not found.</doc> + <type name="GObject.Object" c:type="GObject*"/> + </return-value> + <parameters> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object to get the child from</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child's name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_child_by_index"> + <callback name="get_child_by_index"> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child object or %NULL if + not found (index too high).</doc> + <type name="GObject.Object" c:type="GObject*"/> + </return-value> + <parameters> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object to get the child from</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the child's position in the child list</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_children_count"> + <callback name="get_children_count"> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the number of child objects</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="child_added"> + <callback name="child_added"> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the newly added child</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the name of the new child</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="child_removed"> + <callback name="child_removed"> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the parent object</doc> + <type name="ChildProxy" c:type="GstChildProxy*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the removed child</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstchildproxy.c">the name of the old child</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="Clock" c:symbol-prefix="clock" c:type="GstClock" parent="Object" abstract="1" glib:type-name="GstClock" glib:get-type="gst_clock_get_type" glib:type-struct="ClockClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">GStreamer uses a global clock to synchronize the plugins in a pipeline. +Different clock implementations are possible by implementing this abstract +base class or, more conveniently, by subclassing #GstSystemClock. + +The #GstClock returns a monotonically increasing time with the method +gst_clock_get_time(). Its accuracy and base time depend on the specific +clock implementation but time is always expressed in nanoseconds. Since the +baseline of the clock is undefined, the clock time returned is not +meaningful in itself, what matters are the deltas between two clock times. +The time returned by a clock is called the absolute time. + +The pipeline uses the clock to calculate the running time. Usually all +renderers synchronize to the global clock using the buffer timestamps, the +#GST_EVENT_SEGMENT events and the element's base time, see #GstPipeline. + +A clock implementation can support periodic and single shot clock +notifications both synchronous and asynchronous. + +One first needs to create a #GstClockID for the periodic or single shot +notification using gst_clock_new_single_shot_id() or +gst_clock_new_periodic_id(). + +To perform a blocking wait for the specific time of the #GstClockID use +gst_clock_id_wait(). To receive a callback when the specific time is reached +in the clock use gst_clock_id_wait_async(). Both these calls can be +interrupted with the gst_clock_id_unschedule() call. If the blocking wait is +unscheduled a return value of #GST_CLOCK_UNSCHEDULED is returned. + +Periodic callbacks scheduled async will be repeatedly called automatically +until they are unscheduled. To schedule a sync periodic callback, +gst_clock_id_wait() should be called repeatedly. + +The async callbacks can happen from any thread, either provided by the core +or from a streaming thread. The application should be prepared for this. + +A #GstClockID that has been unscheduled cannot be used again for any wait +operation, a new #GstClockID should be created and the old unscheduled one +should be destroyed with gst_clock_id_unref(). + +It is possible to perform a blocking wait on the same #GstClockID from +multiple threads. However, registering the same #GstClockID for multiple +async notifications is not possible, the callback will only be called for +the thread registering the entry last. + +None of the wait operations unref the #GstClockID, the owner is responsible +for unreffing the ids itself. This holds for both periodic and single shot +notifications. The reason being that the owner of the #GstClockID has to +keep a handle to the #GstClockID to unblock the wait on FLUSHING events or +state changes and if the entry would be unreffed automatically, the handle +might become invalid without any notification. + +These clock operations do not operate on the running time, so the callbacks +will also occur when not in PLAYING state as if the clock just keeps on +running. Some clocks however do not progress when the element that provided +the clock is not PLAYING. + +When a clock has the #GST_CLOCK_FLAG_CAN_SET_MASTER flag set, it can be +slaved to another #GstClock with gst_clock_set_master(). The clock will +then automatically be synchronized to this master clock by repeatedly +sampling the master clock and the slave clock and recalibrating the slave +clock with gst_clock_set_calibration(). This feature is mostly useful for +plugins that have an internal clock but must operate with another clock +selected by the #GstPipeline. They can track the offset and rate difference +of their internal clock relative to the master clock by using the +gst_clock_get_calibration() function. + +The master/slave synchronisation can be tuned with the #GstClock:timeout, +#GstClock:window-size and #GstClock:window-threshold properties. +The #GstClock:timeout property defines the interval to sample the master +clock and run the calibration functions. #GstClock:window-size defines the +number of samples to use when calibrating and #GstClock:window-threshold +defines the minimum number of samples before the calibration is performed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <function name="id_compare_func" c:identifier="gst_clock_id_compare_func"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Compares the two #GstClockID instances. This function can be used +as a GCompareFunc when sorting ids.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">negative value if `a < b`; zero if `a = b`; positive value if `a > b`</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="id1" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">A #GstClockID</doc> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + <parameter name="id2" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">A #GstClockID to compare with</doc> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + </parameters> + </function> + <function name="id_get_clock" c:identifier="gst_clock_id_get_clock" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">This function returns the underlying clock.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock or %NULL when the + underlying clock has been freed.</doc> + <type name="Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">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" filename="../subprojects/gstreamer/gst/gstclock.c">Gets the time of the clock ID</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the time of the given clock id.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The #GstClockID to query</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + </parameters> + </function> + <function name="id_ref" c:identifier="gst_clock_id_ref"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Increases the refcount of given @id.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The same #GstClockID with increased refcount.</doc> + <type name="ClockID" c:type="GstClockID"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The #GstClockID to ref</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + </parameters> + </function> + <function name="id_unref" c:identifier="gst_clock_id_unref"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Unrefs given @id. When the refcount reaches 0 the +#GstClockID will be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The #GstClockID to unref</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + </parameters> + </function> + <function name="id_unschedule" c:identifier="gst_clock_id_unschedule"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Cancels an outstanding request with @id. This can either +be an outstanding async notification or a pending sync notification. +After this call, @id cannot be used anymore to receive sync or +async notifications, you need to create a new #GstClockID.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The id to unschedule</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + </parameters> + </function> + <function name="id_uses_clock" c:identifier="gst_clock_id_uses_clock" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">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> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">whether the clock @id uses the same underlying #GstClock @clock.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClockID to check</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">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" filename="../subprojects/gstreamer/gst/gstclock.c">Performs a blocking wait on @id. +@id should have been created with gst_clock_new_single_shot_id() +or gst_clock_new_periodic_id() and should not have been unscheduled +with a call to gst_clock_id_unschedule(). + +If the @jitter argument is not %NULL and this function returns #GST_CLOCK_OK +or #GST_CLOCK_EARLY, it will contain the difference +against the clock and the time of @id when this method was +called. +Positive values indicate how late @id was relative to the clock +(in which case this function will return #GST_CLOCK_EARLY). +Negative values indicate how much time was spent waiting on the clock +before this function returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the result of the blocking wait. #GST_CLOCK_EARLY will be returned +if the current clock time is past the time of @id, #GST_CLOCK_OK if +@id was scheduled in time. #GST_CLOCK_UNSCHEDULED if @id was +unscheduled with gst_clock_id_unschedule().</doc> + <type name="ClockReturn" c:type="GstClockReturn"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The #GstClockID to wait on</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + <parameter name="jitter" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a pointer that will contain the jitter, + can be %NULL.</doc> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/> + </parameter> + </parameters> + </function> + <function name="id_wait_async" c:identifier="gst_clock_id_wait_async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Registers a callback on the given #GstClockID @id with the given +function and user_data. When passing a #GstClockID with an invalid +time to this function, the callback will be called immediately +with a time set to %GST_CLOCK_TIME_NONE. The callback will +be called when the time of @id has been reached. + +The callback @func can be invoked from any thread, either provided by the +core or from a streaming thread. The application should be prepared for this.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the result of the non blocking wait.</doc> + <type name="ClockReturn" c:type="GstClockReturn"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClockID to wait on</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The callback function</doc> + <type name="ClockCallback" c:type="GstClockCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">User data passed in the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_data" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">#GDestroyNotify for user_data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + <virtual-method name="change_resolution"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Change the resolution of the clock. Not all values might +be acceptable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the new resolution</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="old_resolution" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the previous resolution</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="new_resolution" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the new resolution</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_internal_time" invoker="get_internal_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets the current internal time of the given clock. The time is returned +unadjusted for the offset and the rate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the internal time of the clock. Or %GST_CLOCK_TIME_NONE when +given invalid input.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock to query</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_resolution" invoker="get_resolution"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets the accuracy of the clock. The accuracy of the clock is the granularity +of the values returned by gst_clock_get_time().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the resolution of the clock in units of #GstClockTime.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="unschedule"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Unblock a blocking or async wait operation.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to unschedule</doc> + <type name="ClockEntry" c:type="GstClockEntry*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="wait"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Perform a blocking wait on the given #GstClockEntry and return +the jitter.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the result of the blocking wait. #GST_CLOCK_EARLY will be returned +if the current clock time is past the time of @id, #GST_CLOCK_OK if +@id was scheduled in time. #GST_CLOCK_UNSCHEDULED if @id was +unscheduled with gst_clock_id_unschedule().</doc> + <type name="ClockReturn" c:type="GstClockReturn"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to wait on</doc> + <type name="ClockEntry" c:type="GstClockEntry*"/> + </parameter> + <parameter name="jitter" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">a pointer that will contain the jitter</doc> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="wait_async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Perform an asynchronous wait on the given #GstClockEntry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the result of the non blocking wait.</doc> + <type name="ClockReturn" c:type="GstClockReturn"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to wait on</doc> + <type name="ClockEntry" c:type="GstClockEntry*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_observation" c:identifier="gst_clock_add_observation"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The time @master of the master clock and the time @slave of the slave +clock are added to the list of observations. If enough observations +are available, a linear regression algorithm is run on the +observations and @clock is recalibrated. + +If this functions returns %TRUE, @r_squared will contain the +correlation coefficient of the interpolation. A value of 1.0 +means a perfect regression was performed. This value can +be used to control the sampling frequency of the master and slave +clocks.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">%TRUE if enough observations were added to run the +regression algorithm.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="slave" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a time on the slave</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="master" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a time on the master</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="r_squared" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a pointer to hold the result</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="add_observation_unapplied" c:identifier="gst_clock_add_observation_unapplied" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Add a clock observation to the internal slaving algorithm the same as +gst_clock_add_observation(), and return the result of the master clock +estimation, without updating the internal calibration. + +The caller can then take the results and call gst_clock_set_calibration() +with the values, or some modified version of them.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">%TRUE if enough observations were added to run the +regression algorithm.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="slave" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a time on the slave</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="master" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a time on the master</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="r_squared" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a pointer to hold the result</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="internal" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a location to store the internal time</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="external" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a location to store the external time</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="rate_num" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a location to store the rate numerator</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="rate_denom" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a location to store the rate denominator</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="adjust_unlocked" c:identifier="gst_clock_adjust_unlocked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Converts the given @internal clock time to the external time, adjusting for the +rate and reference time set with gst_clock_set_calibration() and making sure +that the returned time is increasing. This function should be called with the +clock's OBJECT_LOCK held and is mainly used by clock subclasses. + +This function is the reverse of gst_clock_unadjust_unlocked().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the converted time of the clock.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock to use</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="internal" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a clock time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="adjust_with_calibration" c:identifier="gst_clock_adjust_with_calibration" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Converts the given @internal_target clock time to the external time, +using the passed calibration parameters. This function performs the +same calculation as gst_clock_adjust_unlocked() when called using the +current calibration parameters, but doesn't ensure a monotonically +increasing result as gst_clock_adjust_unlocked() does. + +Note: The @clock parameter is unused and can be NULL</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the converted time of the clock.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock to use</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="internal_target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a clock time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="cinternal" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a reference internal time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="cexternal" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a reference external time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="cnum" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the numerator of the rate of the clock relative to its + internal time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="cdenom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the denominator of the rate of the clock</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_calibration" c:identifier="gst_clock_get_calibration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets the internal rate and reference time of @clock. See +gst_clock_set_calibration() for more information. + +@internal, @external, @rate_num, and @rate_denom can be left %NULL if the +caller is not interested in the values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="internal" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a location to store the internal time</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="external" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a location to store the external time</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="rate_num" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a location to store the rate numerator</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="rate_denom" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a location to store the rate denominator</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="get_internal_time" c:identifier="gst_clock_get_internal_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets the current internal time of the given clock. The time is returned +unadjusted for the offset and the rate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the internal time of the clock. Or %GST_CLOCK_TIME_NONE when +given invalid input.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock to query</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_master" c:identifier="gst_clock_get_master"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets the master clock that @clock is slaved to or %NULL when the clock is +not slaved to any master clock.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a master #GstClock or %NULL + when this clock is not slaved to a master clock.</doc> + <type name="Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_resolution" c:identifier="gst_clock_get_resolution"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets the accuracy of the clock. The accuracy of the clock is the granularity +of the values returned by gst_clock_get_time().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the resolution of the clock in units of #GstClockTime.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_time" c:identifier="gst_clock_get_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets the current time of the given clock. The time is always +monotonically increasing and adjusted according to the current +offset and rate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the time of the clock. Or %GST_CLOCK_TIME_NONE when +given invalid input.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock to query</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timeout" c:identifier="gst_clock_get_timeout"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets the amount of time that master and slave clocks are sampled.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the interval between samples.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_synced" c:identifier="gst_clock_is_synced" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Checks if the clock is currently synced, by looking at whether +%GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC is set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">%TRUE if the clock is currently synced</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="new_periodic_id" c:identifier="gst_clock_new_periodic_id"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets an ID from @clock to trigger a periodic notification. +The periodic notifications will start at time @start_time and +will then be fired with the given @interval.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClockID that can be used to request the + time notification.</doc> + <type name="ClockID" c:type="GstClockID"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The #GstClockID to get a periodic notification id from</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="start_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the requested start time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the requested interval</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="new_single_shot_id" c:identifier="gst_clock_new_single_shot_id"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Gets a #GstClockID from @clock to trigger a single shot +notification at the requested time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClockID that can be used to request the + time notification.</doc> + <type name="ClockID" c:type="GstClockID"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The #GstClockID to get a single shot notification from</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the requested time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="periodic_id_reinit" c:identifier="gst_clock_periodic_id_reinit"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Reinitializes the provided periodic @id to the provided start time and +interval. Does not modify the reference count.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">%TRUE if the GstClockID could be reinitialized to the provided +@time, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClockID</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + <parameter name="start_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the requested start time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the requested interval</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_calibration" c:identifier="gst_clock_set_calibration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Adjusts the rate and time of @clock. A rate of 1/1 is the normal speed of +the clock. Values bigger than 1/1 make the clock go faster. + +@internal and @external are calibration parameters that arrange that +gst_clock_get_time() should have been @external at internal time @internal. +This internal time should not be in the future; that is, it should be less +than the value of gst_clock_get_internal_time() when this function is called. + +Subsequent calls to gst_clock_get_time() will return clock times computed as +follows: + +``` C + time = (internal_time - internal) * rate_num / rate_denom + external +``` + +This formula is implemented in gst_clock_adjust_unlocked(). Of course, it +tries to do the integer arithmetic as precisely as possible. + +Note that gst_clock_get_time() always returns increasing values so when you +move the clock backwards, gst_clock_get_time() will report the previous value +until the clock catches up.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock to calibrate</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="internal" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a reference internal time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="external" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a reference external time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="rate_num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the numerator of the rate of the clock relative to its + internal time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="rate_denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the denominator of the rate of the clock</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_master" c:identifier="gst_clock_set_master"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Sets @master as the master clock for @clock. @clock will be automatically +calibrated so that gst_clock_get_time() reports the same time as the +master clock. + +A clock provider that slaves its clock to a master can get the current +calibration values with gst_clock_get_calibration(). + +@master can be %NULL in which case @clock will not be slaved anymore. It will +however keep reporting its time adjusted with the last configured rate +and time offsets.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">%TRUE if the clock is capable of being slaved to a master clock. +Trying to set a master on a clock without the +#GST_CLOCK_FLAG_CAN_SET_MASTER flag will make this function return %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="master" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a master #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </method> + <method name="set_resolution" c:identifier="gst_clock_set_resolution"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Sets the accuracy of the clock. Some clocks have the possibility to operate +with different accuracy at the expense of more resource usage. There is +normally no need to change the default resolution of a clock. The resolution +of a clock can only be changed if the clock has the +#GST_CLOCK_FLAG_CAN_SET_RESOLUTION flag set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the new resolution of the clock.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="resolution" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The resolution to set</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_synced" c:identifier="gst_clock_set_synced" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Sets @clock to synced and emits the #GstClock::synced signal, and wakes up any +thread waiting in gst_clock_wait_for_sync(). + +This function must only be called if %GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC +is set on the clock, and is intended to be called by subclasses only.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="synced" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">if the clock is synced</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_timeout" c:identifier="gst_clock_set_timeout"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Sets the amount of time, in nanoseconds, to sample master and slave +clocks</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a timeout</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="single_shot_id_reinit" c:identifier="gst_clock_single_shot_id_reinit"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Reinitializes the provided single shot @id to the provided time. Does not +modify the reference count.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">%TRUE if the GstClockID could be reinitialized to the provided +@time, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClockID</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">The requested time.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="unadjust_unlocked" c:identifier="gst_clock_unadjust_unlocked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Converts the given @external clock time to the internal time of @clock, +using the rate and reference time set with gst_clock_set_calibration(). +This function should be called with the clock's OBJECT_LOCK held and +is mainly used by clock subclasses. + +This function is the reverse of gst_clock_adjust_unlocked().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the internal time of the clock corresponding to @external.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock to use</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="external" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">an external clock time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="unadjust_with_calibration" c:identifier="gst_clock_unadjust_with_calibration" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Converts the given @external_target clock time to the internal time, +using the passed calibration parameters. This function performs the +same calculation as gst_clock_unadjust_unlocked() when called using the +current calibration parameters. + +Note: The @clock parameter is unused and can be NULL</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the converted time of the clock.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock to use</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="external_target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a clock time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="cinternal" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a reference internal time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="cexternal" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a reference external time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="cnum" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the numerator of the rate of the clock relative to its + internal time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="cdenom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the denominator of the rate of the clock</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="wait_for_sync" c:identifier="gst_clock_wait_for_sync" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Waits until @clock is synced for reporting the current time. If @timeout +is %GST_CLOCK_TIME_NONE it will wait forever, otherwise it will time out +after @timeout nanoseconds. + +For asynchronous waiting, the #GstClock::synced signal can be used. + +This returns immediately with %TRUE if %GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC +is not set on the clock, or if the clock is already synced.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">%TRUE if waiting was successful, or %FALSE on timeout</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">timeout for waiting or %GST_CLOCK_TIME_NONE</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <property name="timeout" writable="1" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="window-size" writable="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <property name="window-threshold" writable="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <field name="object"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the parent structure</doc> + <type name="Object" c:type="GstObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ClockPrivate" c:type="GstClockPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="synced" when="last" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">Signaled on clocks with %GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC set once +the clock is synchronized, or when it completely lost synchronization. +This signal will not be emitted on clocks without the flag. + +This signal will be emitted from an arbitrary thread, most likely not +the application's main thread.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="synced" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">if the clock is synced now</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </glib:signal> + </class> + <callback name="ClockCallback" c:type="GstClockCallback"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The function prototype of the callback.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">%TRUE or %FALSE (currently unused)</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The clock that triggered the callback</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The time it was triggered</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The #GstClockID that expired</doc> + <type name="ClockID" c:type="GstClockID"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">user data passed in the gst_clock_id_wait_async() function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="ClockClass" c:type="GstClockClass" glib:is-gtype-struct-for="Clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">GStreamer clock class. Override the vmethods to implement the clock +functionality.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the parent class structure</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="change_resolution"> + <callback name="change_resolution"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the new resolution</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + <parameter name="old_resolution" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the previous resolution</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="new_resolution" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the new resolution</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_resolution"> + <callback name="get_resolution"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the resolution of the clock in units of #GstClockTime.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_internal_time"> + <callback name="get_internal_time"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">the internal time of the clock. Or %GST_CLOCK_TIME_NONE when +given invalid input.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.c">a #GstClock to query</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="wait"> + <callback name="wait"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the result of the blocking wait. #GST_CLOCK_EARLY will be returned +if the current clock time is past the time of @id, #GST_CLOCK_OK if +@id was scheduled in time. #GST_CLOCK_UNSCHEDULED if @id was +unscheduled with gst_clock_id_unschedule().</doc> + <type name="ClockReturn" c:type="GstClockReturn"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + <parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to wait on</doc> + <type name="ClockEntry" c:type="GstClockEntry*"/> + </parameter> + <parameter name="jitter" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">a pointer that will contain the jitter</doc> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="wait_async"> + <callback name="wait_async"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the result of the non blocking wait.</doc> + <type name="ClockReturn" c:type="GstClockReturn"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + <parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to wait on</doc> + <type name="ClockEntry" c:type="GstClockEntry*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unschedule"> + <callback name="unschedule"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + <parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the entry to unschedule</doc> + <type name="ClockEntry" c:type="GstClockEntry*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ClockEntry" c:type="GstClockEntry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">All pending timeouts or periodic notifies are converted into +an entry. +Note that GstClockEntry should be treated as an opaque structure. It must +not be extended or allocated using a custom allocator.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <field name="refcount" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">reference counter (read-only)</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="clock" readable="0" private="1"> + <type name="Clock" c:type="GstClock*"/> + </field> + <field name="type" readable="0" private="1"> + <type name="ClockEntryType" c:type="GstClockEntryType"/> + </field> + <field name="time" readable="0" private="1"> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="interval" readable="0" private="1"> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="status" readable="0" private="1"> + <type name="ClockReturn" c:type="GstClockReturn"/> + </field> + <field name="func" readable="0" private="1"> + <type name="ClockCallback" c:type="GstClockCallback"/> + </field> + <field name="user_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="destroy_data" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="unscheduled" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="woken_up" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="ClockEntryType" glib:type-name="GstClockEntryType" glib:get-type="gst_clock_entry_type_get_type" c:type="GstClockEntryType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The type of the clock entry</doc> + <member name="single" value="0" c:identifier="GST_CLOCK_ENTRY_SINGLE" glib:nick="single"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">a single shot timeout</doc> + </member> + <member name="periodic" value="1" c:identifier="GST_CLOCK_ENTRY_PERIODIC" glib:nick="periodic"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">a periodic timeout request</doc> + </member> + </enumeration> + <bitfield name="ClockFlags" glib:type-name="GstClockFlags" glib:get-type="gst_clock_flags_get_type" c:type="GstClockFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The capabilities of this clock</doc> + <member name="can_do_single_sync" value="16" c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC" glib:nick="can-do-single-sync"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">clock can do a single sync timeout request</doc> + </member> + <member name="can_do_single_async" value="32" c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC" glib:nick="can-do-single-async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">clock can do a single async timeout request</doc> + </member> + <member name="can_do_periodic_sync" value="64" c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC" glib:nick="can-do-periodic-sync"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">clock can do sync periodic timeout requests</doc> + </member> + <member name="can_do_periodic_async" value="128" c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC" glib:nick="can-do-periodic-async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">clock can do async periodic timeout callbacks</doc> + </member> + <member name="can_set_resolution" value="256" c:identifier="GST_CLOCK_FLAG_CAN_SET_RESOLUTION" glib:nick="can-set-resolution"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">clock's resolution can be changed</doc> + </member> + <member name="can_set_master" value="512" c:identifier="GST_CLOCK_FLAG_CAN_SET_MASTER" glib:nick="can-set-master"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">clock can be slaved to a master clock</doc> + </member> + <member name="needs_startup_sync" value="1024" c:identifier="GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC" glib:nick="needs-startup-sync"> + </member> + <member name="last" value="4096" c:identifier="GST_CLOCK_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">subclasses can add additional flags starting from this flag</doc> + </member> + </bitfield> + <record name="ClockPrivate" c:type="GstClockPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + </record> + <enumeration name="ClockReturn" glib:type-name="GstClockReturn" glib:get-type="gst_clock_return_get_type" c:type="GstClockReturn"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The return value of a clock operation.</doc> + <member name="ok" value="0" c:identifier="GST_CLOCK_OK" glib:nick="ok"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The operation succeeded.</doc> + </member> + <member name="early" value="1" c:identifier="GST_CLOCK_EARLY" glib:nick="early"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The operation was scheduled too late.</doc> + </member> + <member name="unscheduled" value="2" c:identifier="GST_CLOCK_UNSCHEDULED" glib:nick="unscheduled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The clockID was unscheduled</doc> + </member> + <member name="busy" value="3" c:identifier="GST_CLOCK_BUSY" glib:nick="busy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The ClockID is busy</doc> + </member> + <member name="badtime" value="4" c:identifier="GST_CLOCK_BADTIME" glib:nick="badtime"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">A bad time was provided to a function.</doc> + </member> + <member name="error" value="5" c:identifier="GST_CLOCK_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">An error occurred</doc> + </member> + <member name="unsupported" value="6" c:identifier="GST_CLOCK_UNSUPPORTED" glib:nick="unsupported"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Operation is not supported</doc> + </member> + <member name="done" value="7" c:identifier="GST_CLOCK_DONE" glib:nick="done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The ClockID is done waiting</doc> + </member> + </enumeration> + <enumeration name="ClockType" glib:type-name="GstClockType" glib:get-type="gst_clock_type_get_type" c:type="GstClockType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.h">The different kind of clocks.</doc> + <member name="realtime" value="0" c:identifier="GST_CLOCK_TYPE_REALTIME" glib:nick="realtime"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.h">time since Epoch</doc> + </member> + <member name="monotonic" value="1" c:identifier="GST_CLOCK_TYPE_MONOTONIC" glib:nick="monotonic"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.h">monotonic time since some unspecified starting + point</doc> + </member> + <member name="other" value="2" c:identifier="GST_CLOCK_TYPE_OTHER" glib:nick="other"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.h">some other time source is used (Since: 1.0.5)</doc> + </member> + <member name="tai" value="3" c:identifier="GST_CLOCK_TYPE_TAI" glib:nick="tai"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.h">time since Epoch, but using International Atomic Time + as reference (Since: 1.18)</doc> + </member> + </enumeration> + <record name="Context" c:type="GstContext" version="1.2" glib:type-name="GstContext" glib:get-type="gst_context_get_type" c:symbol-prefix="context"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">#GstContext is a container object used to store contexts like a device +context, a display server connection and similar concepts that should +be shared between multiple elements. + +Applications can set a context on a complete pipeline by using +gst_element_set_context(), which will then be propagated to all +child elements. Elements can handle these in #GstElementClass::set_context +and merge them with the context information they already have. + +When an element needs a context it will do the following actions in this +order until one step succeeds: + +1. Check if the element already has a context +2. Query downstream with %GST_QUERY_CONTEXT for the context +3. Query upstream with %GST_QUERY_CONTEXT for the context +4. Post a %GST_MESSAGE_NEED_CONTEXT message on the bus with the required + context types and afterwards check if a usable context was set now +5. Create a context by itself and post a %GST_MESSAGE_HAVE_CONTEXT message + on the bus. + +Bins will catch %GST_MESSAGE_NEED_CONTEXT messages and will set any previously +known context on the element that asks for it if possible. Otherwise the +application should provide one if it can. + +#GstContext can be persistent. +A persistent #GstContext is kept in elements when they reach +%GST_STATE_NULL, non-persistent ones will be removed. +Also, a non-persistent context won't override a previous persistent +context set to an element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <constructor name="new" c:identifier="gst_context_new" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Creates a new context.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">The new context.</doc> + <type name="Context" c:type="GstContext*"/> + </return-value> + <parameters> + <parameter name="context_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Context type</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="persistent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Persistent context</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <method name="copy" c:identifier="gst_context_copy" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Creates a copy of the context. Returns a copy of the context.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">a new copy of @context. + +MT safe</doc> + <type name="Context" c:type="GstContext*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">the context to copy</doc> + <type name="Context" c:type="const GstContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_context_type" c:identifier="gst_context_get_context_type" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Gets the type of @context.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">The type of the context.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">The #GstContext.</doc> + <type name="Context" c:type="const GstContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_structure" c:identifier="gst_context_get_structure" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Accesses the structure of the context.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">The structure of the context. The structure is +still owned by the context, which means that you should not modify it, +free it and that the pointer becomes invalid when you free the context.</doc> + <type name="Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">The #GstContext.</doc> + <type name="Context" c:type="const GstContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_context_type" c:identifier="gst_context_has_context_type" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Checks if @context has @context_type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">%TRUE if @context has @context_type.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">The #GstContext.</doc> + <type name="Context" c:type="const GstContext*"/> + </instance-parameter> + <parameter name="context_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Context type to check.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="is_persistent" c:identifier="gst_context_is_persistent" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Checks if @context is persistent.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">%TRUE if the context is persistent.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">The #GstContext.</doc> + <type name="Context" c:type="const GstContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_context_ref" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Convenience macro to increase the reference count of the context.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">@context (for convenience when doing assignments)</doc> + <type name="Context" c:type="GstContext*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">the context to ref</doc> + <type name="Context" c:type="GstContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_context_unref" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Convenience macro to decrease the reference count of the context, possibly +freeing it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">the context to unref</doc> + <type name="Context" c:type="GstContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="writable_structure" c:identifier="gst_context_writable_structure" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Gets a writable version of the structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">The structure of the context. The structure is still +owned by the context, which means that you should not free it and +that the pointer becomes invalid when you free the context. +This function checks if @context is writable.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">The #GstContext.</doc> + <type name="Context" c:type="GstContext*"/> + </instance-parameter> + </parameters> + </method> + <function name="replace" c:identifier="gst_context_replace" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Modifies a pointer to a #GstContext to point to a different #GstContext. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +context is unreffed, the new one is reffed). + +Either @new_context or the #GstContext pointed to by @old_context may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">%TRUE if @new_context was different from @old_context</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_context" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">pointer to a pointer to a #GstContext + to be replaced.</doc> + <type name="Context" c:type="GstContext**"/> + </parameter> + <parameter name="new_context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">pointer to a #GstContext that will + replace the context pointed to by @old_context.</doc> + <type name="Context" c:type="GstContext*"/> + </parameter> + </parameters> + </function> + </record> + <class name="ControlBinding" c:symbol-prefix="control_binding" c:type="GstControlBinding" parent="Object" abstract="1" glib:type-name="GstControlBinding" glib:get-type="gst_control_binding_get_type" glib:type-struct="ControlBindingClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">A base class for value mapping objects that attaches control sources to #GObject +properties. Such an object is taking one or more #GstControlSource instances, +combines them and maps the resulting value to the type and value range of the +bound property.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <virtual-method name="get_g_value_array" invoker="get_g_value_array"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">Gets a number of #GValues for the given controlled property starting at the +requested time. The array @values need to hold enough space for @n_values of +#GValue. + +This function is useful if one wants to e.g. draw a graph of the control +curve or apply a control curve sample by sample.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the given array could be filled, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time spacing between subsequent values</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">array to put control-values in</doc> + <array length="2" zero-terminated="0" c:type="GValue*"> + <type name="GObject.Value" c:type="GValue"/> + </array> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_value" invoker="get_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">Gets the value for the given controlled property at the requested time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the GValue of the property at the given time, +or %NULL if the property isn't controlled.</doc> + <type name="GObject.Value" c:type="GValue*"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time the control-change should be read from</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_value_array" invoker="get_value_array" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">Gets a number of values for the given controlled property starting at the +requested time. The array @values needs to hold enough space for @n_values of +the same type as the objects property's type. + +This function is useful if one wants to e.g. draw a graph of the control +curve or apply a control curve sample by sample. + +The values are unboxed and ready to be used. The similar function +gst_control_binding_get_g_value_array() returns the array as #GValues and is +more suitable for bindings.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the given array could be filled, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time spacing between subsequent values</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">array to put control-values in</doc> + <array length="2" zero-terminated="0" c:type="gpointer"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sync_values" invoker="sync_values"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">Sets the property of the @object, according to the #GstControlSources that +handles it and for the given timestamp. + +If this function fails, it is most likely the application developers fault. +Most probably the control sources are not setup correctly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the controller value could be applied to the object +property, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="last_sync" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the last time this was called</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_g_value_array" c:identifier="gst_control_binding_get_g_value_array"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">Gets a number of #GValues for the given controlled property starting at the +requested time. The array @values need to hold enough space for @n_values of +#GValue. + +This function is useful if one wants to e.g. draw a graph of the control +curve or apply a control curve sample by sample.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the given array could be filled, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time spacing between subsequent values</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">array to put control-values in</doc> + <array length="2" zero-terminated="0" c:type="GValue*"> + <type name="GObject.Value" c:type="GValue"/> + </array> + </parameter> + </parameters> + </method> + <method name="get_value" c:identifier="gst_control_binding_get_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">Gets the value for the given controlled property at the requested time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the GValue of the property at the given time, +or %NULL if the property isn't controlled.</doc> + <type name="GObject.Value" c:type="GValue*"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time the control-change should be read from</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_value_array" c:identifier="gst_control_binding_get_value_array" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">Gets a number of values for the given controlled property starting at the +requested time. The array @values needs to hold enough space for @n_values of +the same type as the objects property's type. + +This function is useful if one wants to e.g. draw a graph of the control +curve or apply a control curve sample by sample. + +The values are unboxed and ready to be used. The similar function +gst_control_binding_get_g_value_array() returns the array as #GValues and is +more suitable for bindings.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the given array could be filled, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time spacing between subsequent values</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">array to put control-values in</doc> + <array length="2" zero-terminated="0" c:type="gpointer"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + </parameters> + </method> + <method name="is_disabled" c:identifier="gst_control_binding_is_disabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">Checks if the control binding is disabled.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the binding is inactive</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_disabled" c:identifier="gst_control_binding_set_disabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">This function is used to disable a control binding for some time, i.e. +gst_object_sync_values() will do nothing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + <parameter name="disabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">boolean that specifies whether to disable the controller +or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="sync_values" c:identifier="gst_control_binding_sync_values"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">Sets the property of the @object, according to the #GstControlSources that +handles it and for the given timestamp. + +If this function fails, it is most likely the application developers fault. +Most probably the control sources are not setup correctly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the controller value could be applied to the object +property, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="last_sync" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the last time this was called</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <property name="name" writable="1" construct-only="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="object" writable="1" construct-only="1" transfer-ownership="none"> + <type name="Object"/> + </property> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.h">the parent structure</doc> + <type name="Object" c:type="GstObject"/> + </field> + <field name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.h">name of the property of this binding</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="pspec"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.h">#GParamSpec for this property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </field> + <field name="object" readable="0" private="1"> + <type name="Object" c:type="GstObject*"/> + </field> + <field name="disabled" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <field name="priv" readable="0" private="1"> + <type name="ControlBindingPrivate" c:type="GstControlBindingPrivate*"/> + </field> + </record> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </union> + </class> + <record name="ControlBindingClass" c:type="GstControlBindingClass" glib:is-gtype-struct-for="ControlBinding"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.h">The class structure of #GstControlBinding.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.h">Parent class</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="sync_values"> + <callback name="sync_values"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the controller value could be applied to the object +property, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="last_sync" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the last time this was called</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_value"> + <callback name="get_value"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the GValue of the property at the given time, +or %NULL if the property isn't controlled.</doc> + <type name="GObject.Value" c:type="GValue*"/> + </return-value> + <parameters> + <parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time the control-change should be read from</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_value_array" introspectable="0"> + <callback name="get_value_array" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the given array could be filled, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time spacing between subsequent values</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">array to put control-values in</doc> + <array length="3" zero-terminated="0" c:type="gpointer"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + </parameters> + </callback> + </field> + <field name="get_g_value_array"> + <callback name="get_g_value_array"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">%TRUE if the given array could be filled, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the control binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the time spacing between subsequent values</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.c">array to put control-values in</doc> + <array length="3" zero-terminated="0" c:type="GValue*"> + <type name="GObject.Value" c:type="GValue"/> + </array> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="ControlBindingConvert" c:type="GstControlBindingConvert"> + <attribute name="doc.skip" value="true"/> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolbinding.h">FIXME(2.0): remove, this is unused</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="binding" transfer-ownership="none"> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </parameter> + <parameter name="src_value" transfer-ownership="none"> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="dest_value" transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </callback> + <record name="ControlBindingPrivate" c:type="GstControlBindingPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + </record> + <class name="ControlSource" c:symbol-prefix="control_source" c:type="GstControlSource" parent="Object" abstract="1" glib:type-name="GstControlSource" glib:get-type="gst_control_source_get_type" glib:type-struct="ControlSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">The #GstControlSource is a base class for control value sources that could +be used to get timestamp-value pairs. A control source essentially is a +function over time. + +A #GstControlSource is used by first getting an instance of a specific +control-source, creating a binding for the control-source to the target property +of the element and then adding the binding to the element. The binding will +convert the data types and value range to fit to the bound property. + +For implementing a new #GstControlSource one has to implement +#GstControlSourceGetValue and #GstControlSourceGetValueArray functions. +These are then used by gst_control_source_get_value() and +gst_control_source_get_value_array() to get values for specific timestamps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <method name="control_source_get_value" c:identifier="gst_control_source_get_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">Gets the value for this #GstControlSource at a given timestamp.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">%FALSE if the value couldn't be returned, %TRUE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">the #GstControlSource object</doc> + <type name="ControlSource" c:type="GstControlSource*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">the time for which the value should be returned</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">the value</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="control_source_get_value_array" c:identifier="gst_control_source_get_value_array"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">Gets an array of values for for this #GstControlSource. Values that are +undefined contain NANs.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">%TRUE if the given array could be filled, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">the #GstControlSource object</doc> + <type name="ControlSource" c:type="GstControlSource*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">the first timestamp</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">the time steps</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">the number of values to fetch</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.c">array to put control-values in</doc> + <array length="2" zero-terminated="0" c:type="gdouble*"> + <type name="gdouble" c:type="gdouble"/> + </array> + </parameter> + </parameters> + </method> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">the parent structure</doc> + <type name="Object" c:type="GstObject"/> + </field> + <field name="get_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">Function for returning a value for a given timestamp</doc> + <type name="ControlSourceGetValue" c:type="GstControlSourceGetValue"/> + </field> + <field name="get_value_array"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">Function for returning a values array for a given timestamp</doc> + <type name="ControlSourceGetValueArray" c:type="GstControlSourceGetValueArray"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="ControlSourceClass" c:type="GstControlSourceClass" glib:is-gtype-struct-for="ControlSource"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">The class structure of #GstControlSource.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">Parent class</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="ControlSourceGetValue" c:type="GstControlSourceGetValue"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">Function for returning a value for a given timestamp.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">%TRUE if the value was successfully calculated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">the #GstControlSource instance</doc> + <type name="ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">timestamp for which a value should be calculated</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">a value which will be set to the result.</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </callback> + <callback name="ControlSourceGetValueArray" c:type="GstControlSourceGetValueArray"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">Function for returning an array of values starting at a given timestamp.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">%TRUE if the values were successfully calculated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">the #GstControlSource instance</doc> + <type name="ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">timestamp for which a value should be calculated</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">the time spacing between subsequent values</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">the number of values</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">array to put control-values in</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </callback> + <enumeration name="CoreError" glib:type-name="GstCoreError" glib:get-type="gst_core_error_get_type" c:type="GstCoreError" glib:error-domain="gst-core-error-quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">Core errors are errors inside the core GStreamer library.</doc> + <member name="failed" value="1" c:identifier="GST_CORE_ERROR_FAILED" glib:nick="failed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">a general error which doesn't fit in any other +category. Make sure you add a custom message to the error call.</doc> + </member> + <member name="too_lazy" value="2" c:identifier="GST_CORE_ERROR_TOO_LAZY" glib:nick="too-lazy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">do not use this except as a placeholder for +deciding where to go while developing code.</doc> + </member> + <member name="not_implemented" value="3" c:identifier="GST_CORE_ERROR_NOT_IMPLEMENTED" glib:nick="not-implemented"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">use this when you do not want to implement +this functionality yet.</doc> + </member> + <member name="state_change" value="4" c:identifier="GST_CORE_ERROR_STATE_CHANGE" glib:nick="state-change"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used for state change errors.</doc> + </member> + <member name="pad" value="5" c:identifier="GST_CORE_ERROR_PAD" glib:nick="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used for pad-related errors.</doc> + </member> + <member name="thread" value="6" c:identifier="GST_CORE_ERROR_THREAD" glib:nick="thread"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used for thread-related errors.</doc> + </member> + <member name="negotiation" value="7" c:identifier="GST_CORE_ERROR_NEGOTIATION" glib:nick="negotiation"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used for negotiation-related errors.</doc> + </member> + <member name="event" value="8" c:identifier="GST_CORE_ERROR_EVENT" glib:nick="event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used for event-related errors.</doc> + </member> + <member name="seek" value="9" c:identifier="GST_CORE_ERROR_SEEK" glib:nick="seek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used for seek-related errors.</doc> + </member> + <member name="caps" value="10" c:identifier="GST_CORE_ERROR_CAPS" glib:nick="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used for caps-related errors.</doc> + </member> + <member name="tag" value="11" c:identifier="GST_CORE_ERROR_TAG" glib:nick="tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used for negotiation-related errors.</doc> + </member> + <member name="missing_plugin" value="12" c:identifier="GST_CORE_ERROR_MISSING_PLUGIN" glib:nick="missing-plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used if a plugin is missing.</doc> + </member> + <member name="clock" value="13" c:identifier="GST_CORE_ERROR_CLOCK" glib:nick="clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used for clock related errors.</doc> + </member> + <member name="disabled" value="14" c:identifier="GST_CORE_ERROR_DISABLED" glib:nick="disabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used if functionality has been disabled at + compile time.</doc> + </member> + <member name="num_errors" value="15" c:identifier="GST_CORE_ERROR_NUM_ERRORS" glib:nick="num-errors"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">the number of core error types.</doc> + </member> + <function name="quark" c:identifier="gst_core_error_quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <record name="CustomMeta" c:type="GstCustomMeta" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Simple typing wrapper around #GstMeta</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <field name="meta" writable="1"> + <type name="Meta" c:type="GstMeta"/> + </field> + <method name="get_structure" c:identifier="gst_custom_meta_get_structure" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Retrieve the #GstStructure backing a custom meta, the structure's mutability +is conditioned to the writability of the #GstBuffer @meta is attached to.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the #GstStructure backing @meta</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="meta" transfer-ownership="none"> + <type name="CustomMeta" c:type="GstCustomMeta*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_name" c:identifier="gst_custom_meta_has_name" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Checks whether the name of the custom meta is @name</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Whether @name is the name of the custom meta</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="meta" transfer-ownership="none"> + <type name="CustomMeta" c:type="GstCustomMeta*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </record> + <callback name="CustomMetaTransformFunction" c:type="GstCustomMetaTransformFunction" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Function called for each @meta in @buffer as a result of performing a +transformation that yields @transbuf. Additional @type specific transform +data is passed to the function as @data. + +Implementations should check the @type of the transform and parse +additional type specific fields in @data that should be used to update +the metadata on @transbuf.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">%TRUE if the transform could be performed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="transbuf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstCustomMeta</doc> + <type name="CustomMeta" c:type="GstCustomMeta*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">the transform type</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">transform specific data.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="5"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">user data passed when registering the meta</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <constant name="DEBUG_BG_MASK" value="240" c:type="GST_DEBUG_BG_MASK"> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="DEBUG_BIN_TO_DOT_FILE" c:identifier="GST_DEBUG_BIN_TO_DOT_FILE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">To aid debugging applications one can use this method to write out the whole +network of gstreamer elements that form the pipeline into a dot file. +This file can be processed with graphviz to get an image, like this: + +``` shell +dot -Tpng -oimage.png graph_lowlevel.dot +``` + +There is also a utility called [xdot] which allows you to view the dot file +directly without converting it first. + +The macro is only active if the environment variable `GST_DEBUG_DUMP_DOT_DIR` +is set to a basepath (e.g. `/tmp`), and the GStreamer debugging subsystem is +enabled (i.e., no use of `./configure --disable-gst-debug`) + +[xdot]: https://pypi.org/project/xdot/</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdebugutils.h"/> + <parameters> + <parameter name="bin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">the top-level pipeline that should be analyzed</doc> + </parameter> + <parameter name="details"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">details to show in the graph, e.g. #GST_DEBUG_GRAPH_SHOW_ALL or + one or more other #GstDebugGraphDetails flags.</doc> + </parameter> + <parameter name="file_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">output base filename (e.g. "myplayer")</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEBUG_BIN_TO_DOT_FILE_WITH_TS" c:identifier="GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">This works like GST_DEBUG_BIN_TO_DOT_FILE(), but adds the current timestamp +to the filename, so that it can be used to take multiple snapshots.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdebugutils.h"/> + <parameters> + <parameter name="bin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">the top-level pipeline that should be analyzed</doc> + </parameter> + <parameter name="details"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">details to show in the graph, e.g. #GST_DEBUG_GRAPH_SHOW_ALL or + one or more other #GstDebugGraphDetails flags.</doc> + </parameter> + <parameter name="file_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">output base filename (e.g. "myplayer")</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEBUG_CATEGORY" c:identifier="GST_DEBUG_CATEGORY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Defines a GstDebugCategory variable. +This macro expands to nothing if debugging is disabled.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="cat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the category</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEBUG_CATEGORY_EXTERN" c:identifier="GST_DEBUG_CATEGORY_EXTERN" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Declares a GstDebugCategory variable as extern. Use in header files. +This macro expands to nothing if debugging is disabled.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="cat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the category</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEBUG_CATEGORY_GET" c:identifier="GST_DEBUG_CATEGORY_GET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Looks up an existing #GstDebugCategory by its @name and sets @cat. If the +category is not found, but GST_CAT_DEFAULT is defined, that is assigned to +@cat. Otherwise @cat will be %NULL. + +|[<!-- language="C" --> +GST_DEBUG_CATEGORY_STATIC (gst_myplugin_debug); +#define GST_CAT_DEFAULT gst_myplugin_debug +GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE); +... +GST_DEBUG_CATEGORY_INIT (gst_myplugin_debug, "myplugin", 0, "nice element"); +GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE"); +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="cat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the category to initialize.</doc> + </parameter> + <parameter name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">log category name</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEBUG_CATEGORY_INIT" c:identifier="GST_DEBUG_CATEGORY_INIT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Initializes a new #GstDebugCategory with the given properties and set to +the default threshold. + +> This macro expands to nothing if debugging is disabled. +> +> When naming your category, please follow the following conventions to ensure +> that the pattern matching for categories works as expected. It is not +> earth-shattering if you don't follow these conventions, but it would be nice +> for everyone. +> +> If you define a category for a plugin or a feature of it, name the category +> like the feature. So if you wanted to write a "filesrc" element, you would +> name the category "filesrc". Use lowercase letters only. +> If you define more than one category for the same element, append an +> underscore and an identifier to your categories, like this: "filesrc_cache" +> +> If you create a library or an application using debugging categories, use a +> common prefix followed by an underscore for all your categories. GStreamer +> uses the GST prefix so GStreamer categories look like "GST_STATES". Be sure +> to include uppercase letters.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="cat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the category to initialize.</doc> + </parameter> + <parameter name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the name of the category.</doc> + </parameter> + <parameter name="color"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the colors to use for a color representation or 0 for no color.</doc> + </parameter> + <parameter name="description"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">optional description of the category.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEBUG_CATEGORY_STATIC" c:identifier="GST_DEBUG_CATEGORY_STATIC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Defines a static GstDebugCategory variable. +This macro expands to nothing if debugging is disabled.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="cat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the category</doc> + </parameter> + </parameters> + </function-macro> + <constant name="DEBUG_FG_MASK" value="15" c:type="GST_DEBUG_FG_MASK"> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="DEBUG_FORMAT_MASK" value="65280" c:type="GST_DEBUG_FORMAT_MASK"> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="DEBUG_FUNCPTR" c:identifier="GST_DEBUG_FUNCPTR" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Register a pointer to a function with its name, so it can later be used by +GST_DEBUG_FUNCPTR_NAME().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="ptr"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">pointer to the function to register</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEBUG_FUNCPTR_NAME" c:identifier="GST_DEBUG_FUNCPTR_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Retrieves the name of the function, if it was previously registered with +GST_DEBUG_FUNCPTR(). If not, it returns a description of the pointer. + +This macro returns a constant string which must not be modified or +freed by the caller.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="ptr"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">address of the function of which to look up the name</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEBUG_PAD_NAME" c:identifier="GST_DEBUG_PAD_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Evaluates to 2 strings, that describe the pad. Often used in debugging +statements.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">The pad to debug.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEBUG_REGISTER_FUNCPTR" c:identifier="GST_DEBUG_REGISTER_FUNCPTR" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Register a pointer to a function with its name, so it can later be used by +GST_DEBUG_FUNCPTR_NAME(). + +Use this variant of #GST_DEBUG_FUNCPTR if you do not need to use @ptr.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="ptr"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">pointer to the function to register</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEFINE_MINI_OBJECT_TYPE" c:identifier="GST_DEFINE_MINI_OBJECT_TYPE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Define a new mini-object type with the given name</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="TypeName"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">name of the new type in CamelCase</doc> + </parameter> + <parameter name="type_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">name of the new type</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE" c:identifier="GST_DEVICE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_CAST" c:identifier="GST_DEVICE_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_CLASS" c:identifier="GST_DEVICE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_GET_CLASS" c:identifier="GST_DEVICE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_MONITOR" c:identifier="GST_DEVICE_MONITOR" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_MONITOR_CAST" c:identifier="GST_DEVICE_MONITOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_MONITOR_CLASS" c:identifier="GST_DEVICE_MONITOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_MONITOR_GET_CLASS" c:identifier="GST_DEVICE_MONITOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER" c:identifier="GST_DEVICE_PROVIDER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_CAST" c:identifier="GST_DEVICE_PROVIDER_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_CLASS" c:identifier="GST_DEVICE_PROVIDER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_FACTORY" c:identifier="GST_DEVICE_PROVIDER_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_FACTORY_CAST" c:identifier="GST_DEVICE_PROVIDER_FACTORY_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_FACTORY_CLASS" c:identifier="GST_DEVICE_PROVIDER_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_GET_CLASS" c:identifier="GST_DEVICE_PROVIDER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_REGISTER" c:identifier="GST_DEVICE_PROVIDER_REGISTER" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">This macro can be used to register a device provider into a #GstPlugin. +This method will be usually called in the plugin init function +but can also be called with a NULL plugin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="d_p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The device provider name in lower case, with words separated by '_'.</doc> + </parameter> + <parameter name="plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The #GstPlugin where to register the device provider.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_REGISTER_DECLARE" c:identifier="GST_DEVICE_PROVIDER_REGISTER_DECLARE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">This macro can be used to declare a new device provider. +It has to be used in combination with #GST_DEVICE_PROVIDER_REGISTER_DEFINE macro +and must be placed outside any block to declare the device provider registration +function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="d_p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The device provider name in lower case, with words separated by '_'.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_REGISTER_DEFINE" c:identifier="GST_DEVICE_PROVIDER_REGISTER_DEFINE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">A convenience macro to define the entry point of a +device provider `gst_device_provider_register_*(GstPlugin* plugin)`.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="d_p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The device provider name in lower case, with words separated by '_'. +Used to generate `gst_device_provider_register_*(GstPlugin* plugin)`.</doc> + </parameter> + <parameter name="d_p_n"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The public name of the device provider</doc> + </parameter> + <parameter name="r"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The #GstRank of the device provider (higher rank means more importance when autoplugging, see #GstRank)</doc> + </parameter> + <parameter name="t"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The #GType of the device provider.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEVICE_PROVIDER_REGISTER_DEFINE_CUSTOM" c:identifier="GST_DEVICE_PROVIDER_REGISTER_DEFINE_CUSTOM" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">A convenience macro to define the entry point of a +device provider `gst_device_provider_register_*(GstPlugin* plugin)` which uses +register_func as the main registration method for the device provider. +As an example, you may define the device provider named "device-provider" +with the namespace `my` as following using `device_provider_register_custom`: + +``` + +gboolean my_device_provider_register_custom (GstPlugin * plugin) +{ + gboolean ret = FALSE; + ret |= gst_device_provider_register (plugin, "my-device-provider", + GST_RANK_PRIMARY, GST_TYPE_MY_DEVICE_PROVIDER); + return TRUE; +} + +GST_DEVICE_PROVIDER_REGISTER_DEFINE_CUSTOM (my_device_provider, my_device_provider_register_custom) +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="d_p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The device provider name in lower case, with words separated by '_'. +Used to generate `gst_device_provider_register_*(GstPlugin* plugin)`.</doc> + </parameter> + <parameter name="register_func"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">pointer to a method with the format: `gboolean register_func (GstPlugin* plugin);`</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DYNAMIC_TYPE_CLASS" c:identifier="GST_DYNAMIC_TYPE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DYNAMIC_TYPE_FACTORY" c:identifier="GST_DYNAMIC_TYPE_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DYNAMIC_TYPE_FACTORY_CAST" c:identifier="GST_DYNAMIC_TYPE_FACTORY_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DYNAMIC_TYPE_REGISTER" c:identifier="GST_DYNAMIC_TYPE_REGISTER" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h">This macro can be used to register a dynamic type into a #GstPlugin. +This method will be usually called in the plugin init function +but can also be called with a NULL plugin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <parameters> + <parameter name="t_n"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h">The dynamic type name to register</doc> + </parameter> + <parameter name="plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h">The #GstPlugin where to register the dynamic type.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="DYNAMIC_TYPE_REGISTER_DECLARE" c:identifier="GST_DYNAMIC_TYPE_REGISTER_DECLARE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h">This macro can be used to declare a new dynamic type. +It has to be used in combination with #GST_DYNAMIC_TYPE_REGISTER_DEFINE macro +and must be placed outside any block to declare the type find registration +function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <parameters> + <parameter name="t_n"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DYNAMIC_TYPE_REGISTER_DEFINE" c:identifier="GST_DYNAMIC_TYPE_REGISTER_DEFINE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h">A convenience macro to define the entry point of a +dynamic type `gst_dynamic_type_register_*(GstPlugin* plugin)`.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <parameters> + <parameter name="t_n"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h">The dynamic type name in lower case, with words separated by '_'. +Used to generate `gst_dynamic_type_register_*(GstPlugin* plugin)`.</doc> + </parameter> + <parameter name="t"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h">The #GType of the dynamic type</doc> + </parameter> + </parameters> + </function-macro> + <record name="DateTime" c:type="GstDateTime" glib:type-name="GstDateTime" glib:get-type="gst_date_time_get_type" c:symbol-prefix="date_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Struct to store date, time and timezone information altogether. +#GstDateTime is refcounted and immutable. + +Date information is handled using the [proleptic Gregorian calendar]. + +Provides basic creation functions and accessor functions to its fields. + +[proleptic Gregorian calendar]: https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <constructor name="new" c:identifier="gst_date_time_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime using the date and times in the gregorian calendar +in the supplied timezone. + +@year should be from 1 to 9999, @month should be from 1 to 12, @day from +1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59. + +Note that @tzoffset is a float and was chosen so for being able to handle +some fractional timezones, while it still keeps the readability of +representing it in hours for most timezones. + +If value is -1 then all over value will be ignored. For example +if @month == -1, then #GstDateTime will be created only for @year. If +@day == -1, then #GstDateTime will be created for @year and @month and +so on.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the newly created #GstDateTime, +or %NULL on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="tzoffset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Offset from UTC in hours.</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + <parameter name="year" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the gregorian year</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="month" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the gregorian month</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="day" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the day of the gregorian month</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="hour" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the hour of the day</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="minute" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the minute of the hour</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="seconds" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the second of the minute</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_g_date_time" c:identifier="gst_date_time_new_from_g_date_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime from a #GDateTime object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a newly created #GstDateTime, +or %NULL if @dt is %NULL.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="dt" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the #GDateTime.</doc> + <type name="GLib.DateTime" c:type="GDateTime*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_iso8601_string" c:identifier="gst_date_time_new_from_iso8601_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Tries to parse common variants of ISO-8601 datetime strings into a +#GstDateTime. Possible input formats are (for example): +`2012-06-30T22:46:43Z`, `2012`, `2012-06`, `2012-06-30`, `2012-06-30T22:46:43-0430`, +`2012-06-30T22:46Z`, `2012-06-30T22:46-0430`, `2012-06-30 22:46`, +`2012-06-30 22:46:43`, `2012-06-00`, `2012-00-00`, `2012-00-30`, `22:46:43Z`, `22:46Z`, +`22:46:43-0430`, `22:46-0430`, `22:46:30`, `22:46` +If no date is provided, it is assumed to be "today" in the timezone +provided (if any), otherwise UTC.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a newly created #GstDateTime, +or %NULL on error</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">ISO 8601-formatted datetime string.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_unix_epoch_local_time" c:identifier="gst_date_time_new_from_unix_epoch_local_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by +@secs. The #GstDateTime is in the local timezone.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the newly created #GstDateTime, +or %NULL on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="secs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">seconds from the Unix epoch</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_unix_epoch_local_time_usecs" c:identifier="gst_date_time_new_from_unix_epoch_local_time_usecs" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by +@usecs. The #GstDateTime is in the local timezone.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a newly created #GstDateTime, or %NULL +on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="usecs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">microseconds from the Unix epoch</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_unix_epoch_utc" c:identifier="gst_date_time_new_from_unix_epoch_utc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by +@secs. The #GstDateTime is in the UTC timezone.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the newly created #GstDateTime, +or %NULL on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="secs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">seconds from the Unix epoch</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_unix_epoch_utc_usecs" c:identifier="gst_date_time_new_from_unix_epoch_utc_usecs" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by +@usecs. The #GstDateTime is in UTC.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a newly created #GstDateTime, or %NULL +on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="usecs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">microseconds from the Unix epoch</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_local_time" c:identifier="gst_date_time_new_local_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime using the date and times in the gregorian calendar +in the local timezone. + +@year should be from 1 to 9999, @month should be from 1 to 12, @day from +1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59. + +If @month is -1, then the #GstDateTime created will only contain @year, +and all other fields will be considered not set. + +If @day is -1, then the #GstDateTime created will only contain @year and +@month and all other fields will be considered not set. + +If @hour is -1, then the #GstDateTime created will only contain @year and +@month and @day, and the time fields will be considered not set. In this +case @minute and @seconds should also be -1.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the newly created #GstDateTime, +or %NULL on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="year" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the gregorian year</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="month" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the gregorian month, or -1</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="day" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the day of the gregorian month, or -1</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="hour" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the hour of the day, or -1</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="minute" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the minute of the hour, or -1</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="seconds" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the second of the minute, or -1</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_now_local_time" c:identifier="gst_date_time_new_now_local_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime representing the current date and time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the newly created #GstDateTime which should + be freed with gst_date_time_unref(), or %NULL on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + </constructor> + <constructor name="new_now_utc" c:identifier="gst_date_time_new_now_utc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime that represents the current instant at Universal +coordinated time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the newly created #GstDateTime which should + be freed with gst_date_time_unref(), or %NULL on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + </constructor> + <constructor name="new_y" c:identifier="gst_date_time_new_y"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime using the date and times in the gregorian calendar +in the local timezone. + +@year should be from 1 to 9999.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the newly created #GstDateTime, +or %NULL on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="year" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the gregorian year</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_ym" c:identifier="gst_date_time_new_ym"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime using the date and times in the gregorian calendar +in the local timezone. + +@year should be from 1 to 9999, @month should be from 1 to 12. + +If value is -1 then all over value will be ignored. For example +if @month == -1, then #GstDateTime will created only for @year.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the newly created #GstDateTime, +or %NULL on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="year" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the gregorian year</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="month" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the gregorian month</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_ymd" c:identifier="gst_date_time_new_ymd"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GstDateTime using the date and times in the gregorian calendar +in the local timezone. + +@year should be from 1 to 9999, @month should be from 1 to 12, @day from +1 to 31. + +If value is -1 then all over value will be ignored. For example +if @month == -1, then #GstDateTime will created only for @year. If +@day == -1, then #GstDateTime will created for @year and @month and +so on.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the newly created #GstDateTime, +or %NULL on error.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <parameter name="year" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the gregorian year</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="month" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the gregorian month</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="day" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the day of the gregorian month</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </constructor> + <method name="get_day" c:identifier="gst_date_time_get_day"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Returns the day of the month of this #GstDateTime.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">The day of this #GstDateTime, or -1 if none is set.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_hour" c:identifier="gst_date_time_get_hour"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Retrieves the hour of the day represented by @datetime in the gregorian +calendar. The return is in the range of 0 to 23.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the hour of the day, or -1 if none is set.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_microsecond" c:identifier="gst_date_time_get_microsecond"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Retrieves the fractional part of the seconds in microseconds represented by +@datetime in the gregorian calendar.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the microsecond of the second, or -1 if none is set.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_minute" c:identifier="gst_date_time_get_minute"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Retrieves the minute of the hour represented by @datetime in the gregorian +calendar.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the minute of the hour, or -1 if none is set.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_month" c:identifier="gst_date_time_get_month"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Returns the month of this #GstDateTime. January is 1, February is 2, etc..</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">The month of this #GstDateTime, or -1 if none is set.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_second" c:identifier="gst_date_time_get_second"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Retrieves the second of the minute represented by @datetime in the gregorian +calendar.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the second represented by @datetime, or -1 if none is set.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_time_zone_offset" c:identifier="gst_date_time_get_time_zone_offset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Retrieves the offset from UTC in hours that the timezone specified +by @datetime represents. Timezones ahead (to the east) of UTC have positive +values, timezones before (to the west) of UTC have negative values. +If @datetime represents UTC time, then the offset is zero.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the offset from UTC in hours, or %G_MAXFLOAT if none is set.</doc> + <type name="gfloat" c:type="gfloat"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_year" c:identifier="gst_date_time_get_year"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Returns the year of this #GstDateTime. +Call gst_date_time_has_year() before, to avoid warnings.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">The year of this #GstDateTime</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_day" c:identifier="gst_date_time_has_day"> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">%TRUE if @datetime<!-- -->'s day field is set, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_month" c:identifier="gst_date_time_has_month"> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">%TRUE if @datetime<!-- -->'s month field is set, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_second" c:identifier="gst_date_time_has_second"> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">%TRUE if @datetime<!-- -->'s second field is set, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_time" c:identifier="gst_date_time_has_time"> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">%TRUE if @datetime<!-- -->'s hour and minute fields are set, + otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_year" c:identifier="gst_date_time_has_year"> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">%TRUE if @datetime<!-- -->'s year field is set (which should always + be the case), otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="const GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_date_time_ref"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Atomically increments the reference count of @datetime by one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">the reference @datetime</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="to_g_date_time" c:identifier="gst_date_time_to_g_date_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Creates a new #GDateTime from a fully defined #GstDateTime object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a newly created #GDateTime, or +%NULL on error or if @datetime does not have a year, month, day, hour, +minute and second.</doc> + <type name="GLib.DateTime" c:type="GDateTime*"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">GstDateTime.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="to_iso8601_string" c:identifier="gst_date_time_to_iso8601_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Create a minimal string compatible with ISO-8601. Possible output formats +are (for example): `2012`, `2012-06`, `2012-06-23`, `2012-06-23T23:30Z`, +`2012-06-23T23:30+0100`, `2012-06-23T23:30:59Z`, `2012-06-23T23:30:59+0100`</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a newly allocated string formatted according + to ISO 8601 and only including the datetime fields that are + valid, or %NULL in case there was an error.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime.</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_date_time_unref"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">Atomically decrements the reference count of @datetime by one. When the +reference count reaches zero, the structure is freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdatetime.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="datetime" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdatetime.c">a #GstDateTime</doc> + <type name="DateTime" c:type="GstDateTime*"/> + </instance-parameter> + </parameters> + </method> + </record> + <record name="DebugCategory" c:type="GstDebugCategory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">This is the struct that describes the categories. Once initialized with +#GST_DEBUG_CATEGORY_INIT, its values can't be changed anymore.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <field name="threshold" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="color" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="name" readable="0" private="1"> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="description" readable="0" private="1"> + <type name="utf8" c:type="const gchar*"/> + </field> + <method name="free" c:identifier="gst_debug_category_free" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Removes and frees the category and all associated resources.</doc> + <doc-deprecated xml:space="preserve">This function can easily cause memory corruption, don't use it.</doc-deprecated> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">#GstDebugCategory to free.</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_color" c:identifier="gst_debug_category_get_color"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Returns the color of a debug category used when printing output in this +category.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the color of the category.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a #GstDebugCategory to get the color of.</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_description" c:identifier="gst_debug_category_get_description"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Returns the description of a debug category.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the description of the category.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a #GstDebugCategory to get the description of.</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_name" c:identifier="gst_debug_category_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Returns the name of a debug category.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the name of the category.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a #GstDebugCategory to get name of.</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_threshold" c:identifier="gst_debug_category_get_threshold"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Returns the threshold of a #GstDebugCategory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the #GstDebugLevel that is used as threshold.</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </return-value> + <parameters> + <instance-parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a #GstDebugCategory to get threshold of.</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </instance-parameter> + </parameters> + </method> + <method name="reset_threshold" c:identifier="gst_debug_category_reset_threshold"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Resets the threshold of the category to the default level. Debug information +will only be output if the threshold is lower or equal to the level of the +debugging message. +Use this function to set the threshold back to where it was after using +gst_debug_category_set_threshold().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a #GstDebugCategory to reset threshold of.</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_threshold" c:identifier="gst_debug_category_set_threshold"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Sets the threshold of the category to the given level. Debug information will +only be output if the threshold is lower or equal to the level of the +debugging message. +> Do not use this function in production code, because other functions may +> change the threshold of categories as side effect. It is however a nice +> function to use when debugging (even from gdb).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a #GstDebugCategory to set threshold of.</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </instance-parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the #GstDebugLevel threshold to set.</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + </parameters> + </method> + </record> + <bitfield name="DebugColorFlags" glib:type-name="GstDebugColorFlags" glib:get-type="gst_debug_color_flags_get_type" c:type="GstDebugColorFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">These are some terminal style flags you can use when creating your +debugging categories to make them stand out in debugging output.</doc> + <member name="fg_black" value="0" c:identifier="GST_DEBUG_FG_BLACK" glib:nick="fg-black"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use black as foreground color.</doc> + </member> + <member name="fg_red" value="1" c:identifier="GST_DEBUG_FG_RED" glib:nick="fg-red"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use red as foreground color.</doc> + </member> + <member name="fg_green" value="2" c:identifier="GST_DEBUG_FG_GREEN" glib:nick="fg-green"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use green as foreground color.</doc> + </member> + <member name="fg_yellow" value="3" c:identifier="GST_DEBUG_FG_YELLOW" glib:nick="fg-yellow"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use yellow as foreground color.</doc> + </member> + <member name="fg_blue" value="4" c:identifier="GST_DEBUG_FG_BLUE" glib:nick="fg-blue"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use blue as foreground color.</doc> + </member> + <member name="fg_magenta" value="5" c:identifier="GST_DEBUG_FG_MAGENTA" glib:nick="fg-magenta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use magenta as foreground color.</doc> + </member> + <member name="fg_cyan" value="6" c:identifier="GST_DEBUG_FG_CYAN" glib:nick="fg-cyan"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use cyan as foreground color.</doc> + </member> + <member name="fg_white" value="7" c:identifier="GST_DEBUG_FG_WHITE" glib:nick="fg-white"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use white as foreground color.</doc> + </member> + <member name="bg_black" value="0" c:identifier="GST_DEBUG_BG_BLACK" glib:nick="bg-black"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use black as background color.</doc> + </member> + <member name="bg_red" value="16" c:identifier="GST_DEBUG_BG_RED" glib:nick="bg-red"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use red as background color.</doc> + </member> + <member name="bg_green" value="32" c:identifier="GST_DEBUG_BG_GREEN" glib:nick="bg-green"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use green as background color.</doc> + </member> + <member name="bg_yellow" value="48" c:identifier="GST_DEBUG_BG_YELLOW" glib:nick="bg-yellow"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use yellow as background color.</doc> + </member> + <member name="bg_blue" value="64" c:identifier="GST_DEBUG_BG_BLUE" glib:nick="bg-blue"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use blue as background color.</doc> + </member> + <member name="bg_magenta" value="80" c:identifier="GST_DEBUG_BG_MAGENTA" glib:nick="bg-magenta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use magenta as background color.</doc> + </member> + <member name="bg_cyan" value="96" c:identifier="GST_DEBUG_BG_CYAN" glib:nick="bg-cyan"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use cyan as background color.</doc> + </member> + <member name="bg_white" value="112" c:identifier="GST_DEBUG_BG_WHITE" glib:nick="bg-white"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Use white as background color.</doc> + </member> + <member name="bold" value="256" c:identifier="GST_DEBUG_BOLD" glib:nick="bold"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Make the output bold.</doc> + </member> + <member name="underline" value="512" c:identifier="GST_DEBUG_UNDERLINE" glib:nick="underline"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Underline the output.</doc> + </member> + </bitfield> + <enumeration name="DebugColorMode" glib:type-name="GstDebugColorMode" glib:get-type="gst_debug_color_mode_get_type" c:type="GstDebugColorMode"> + <member name="off" value="0" c:identifier="GST_DEBUG_COLOR_MODE_OFF" glib:nick="off"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Do not use colors in logs.</doc> + </member> + <member name="on" value="1" c:identifier="GST_DEBUG_COLOR_MODE_ON" glib:nick="on"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Paint logs in a platform-specific way.</doc> + </member> + <member name="unix" value="2" c:identifier="GST_DEBUG_COLOR_MODE_UNIX" glib:nick="unix"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Paint logs with UNIX terminal color codes + no matter what platform GStreamer is running on.</doc> + </member> + </enumeration> + <callback name="DebugFuncPtr" c:type="GstDebugFuncPtr"> + <attribute name="doc.skip" value="true"/> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">we define this to avoid a compiler warning regarding a cast from a function +pointer to a void pointer +(see https://bugzilla.gnome.org/show_bug.cgi?id=309253)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </callback> + <bitfield name="DebugGraphDetails" glib:type-name="GstDebugGraphDetails" glib:get-type="gst_debug_graph_details_get_type" c:type="GstDebugGraphDetails"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE() +and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().</doc> + <member name="media_type" value="1" c:identifier="GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE" glib:nick="media-type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">show caps-name on edges</doc> + </member> + <member name="caps_details" value="2" c:identifier="GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS" glib:nick="caps-details"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">show caps-details on edges</doc> + </member> + <member name="non_default_params" value="4" c:identifier="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS" glib:nick="non-default-params"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">show modified parameters on + elements</doc> + </member> + <member name="states" value="8" c:identifier="GST_DEBUG_GRAPH_SHOW_STATES" glib:nick="states"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">show element states</doc> + </member> + <member name="full_params" value="16" c:identifier="GST_DEBUG_GRAPH_SHOW_FULL_PARAMS" glib:nick="full-params"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">show full element parameter values even + if they are very long</doc> + </member> + <member name="all" value="15" c:identifier="GST_DEBUG_GRAPH_SHOW_ALL" glib:nick="all"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">show all the typical details that one might want</doc> + </member> + <member name="verbose" value="4294967295" c:identifier="GST_DEBUG_GRAPH_SHOW_VERBOSE" glib:nick="verbose"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.h">show all details regardless of how large or + verbose they make the resulting output</doc> + </member> + </bitfield> + <enumeration name="DebugLevel" glib:type-name="GstDebugLevel" glib:get-type="gst_debug_level_get_type" c:type="GstDebugLevel"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">The level defines the importance of a debugging message. The more important a +message is, the greater the probability that the debugging system outputs it.</doc> + <member name="none" value="0" c:identifier="GST_LEVEL_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">No debugging level specified or desired. Used to deactivate + debugging output.</doc> + </member> + <member name="error" value="1" c:identifier="GST_LEVEL_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Error messages are to be used only when an error occurred + that stops the application from keeping working correctly. + An examples is gst_element_error, which outputs a message with this priority. + It does not mean that the application is terminating as with g_error.</doc> + </member> + <member name="warning" value="2" c:identifier="GST_LEVEL_WARNING" glib:nick="warning"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Warning messages are to inform about abnormal behaviour + that could lead to problems or weird behaviour later on. An example of this + would be clocking issues ("your computer is pretty slow") or broken input + data ("Can't synchronize to stream.")</doc> + </member> + <member name="fixme" value="3" c:identifier="GST_LEVEL_FIXME" glib:nick="fixme"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Fixme messages are messages that indicate that something + in the executed code path is not fully implemented or handled yet. Note + that this does not replace proper error handling in any way, the purpose + of this message is to make it easier to spot incomplete/unfinished pieces + of code when reading the debug log.</doc> + </member> + <member name="info" value="4" c:identifier="GST_LEVEL_INFO" glib:nick="info"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Informational messages should be used to keep the developer + updated about what is happening. + Examples where this should be used are when a typefind function has + successfully determined the type of the stream or when an mp3 plugin detects + the format to be used. ("This file has mono sound.")</doc> + </member> + <member name="debug" value="5" c:identifier="GST_LEVEL_DEBUG" glib:nick="debug"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Debugging messages should be used when something common + happens that is not the expected default behavior, or something that's + useful to know but doesn't happen all the time (ie. per loop iteration or + buffer processed or event handled). + An example would be notifications about state changes or receiving/sending + of events.</doc> + </member> + <member name="log" value="6" c:identifier="GST_LEVEL_LOG" glib:nick="log"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Log messages are messages that are very common but might be + useful to know. As a rule of thumb a pipeline that is running as expected + should never output anything else but LOG messages whilst processing data. + Use this log level to log recurring information in chain functions and + loop functions, for example.</doc> + </member> + <member name="trace" value="7" c:identifier="GST_LEVEL_TRACE" glib:nick="trace"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Tracing-related messages. + Examples for this are referencing/dereferencing of objects.</doc> + </member> + <member name="memdump" value="9" c:identifier="GST_LEVEL_MEMDUMP" glib:nick="memdump"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">memory dump messages are used to log (small) chunks of + data as memory dumps in the log. They will be displayed as hexdump with + ASCII characters.</doc> + </member> + <member name="count" value="10" c:identifier="GST_LEVEL_COUNT" glib:nick="count"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">The number of defined debugging levels.</doc> + </member> + <function name="get_name" c:identifier="gst_debug_level_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Get the string representation of a debugging level</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the name</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the level to get the name for</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + </parameters> + </function> + </enumeration> + <record name="DebugMessage" c:type="GstDebugMessage" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <method name="get" c:identifier="gst_debug_message_get"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Gets the string representation of a #GstDebugMessage. This function is used +in debug handlers to extract the message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the string representation of a #GstDebugMessage.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a debug message</doc> + <type name="DebugMessage" c:type="GstDebugMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_id" c:identifier="gst_debug_message_get_id" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Get the id of the object that emitted this message. This function is used in +debug handlers. Can be empty.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">The emitter of a #GstDebugMessage.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a debug message</doc> + <type name="DebugMessage" c:type="GstDebugMessage*"/> + </instance-parameter> + </parameters> + </method> + </record> + <class name="Device" c:symbol-prefix="device" c:type="GstDevice" version="1.4" parent="Object" abstract="1" glib:type-name="GstDevice" glib:get-type="gst_device_get_type" glib:type-struct="DeviceClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">#GstDevice are objects representing a device, they contain +relevant metadata about the device, such as its class and the #GstCaps +representing the media types it can produce or handle. + +#GstDevice are created by #GstDeviceProvider objects which can be +aggregated by #GstDeviceMonitor objects.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <virtual-method name="create_element" invoker="create_element" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Creates the element with all of the required parameters set to use +this device.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a new #GstElement configured to use +this device</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">name of new element, or %NULL to automatically +create a unique name.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="reconfigure_element" invoker="reconfigure_element" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Tries to reconfigure an existing element to use the device. If this +function fails, then one must destroy the element and create a new one +using gst_device_create_element(). + +Note: This should only be implemented for elements can change their +device in the PLAYING state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">%TRUE if the element could be reconfigured to use this device, +%FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </virtual-method> + <method name="create_element" c:identifier="gst_device_create_element" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Creates the element with all of the required parameters set to use +this device.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a new #GstElement configured to use +this device</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">name of new element, or %NULL to automatically +create a unique name.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_caps" c:identifier="gst_device_get_caps" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Getter for the #GstCaps that this device supports.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">The #GstCaps supported by this device. Unref with +gst_caps_unref() when done.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_device_class" c:identifier="gst_device_get_device_class" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Gets the "class" of a device. This is a "/" separated list of +classes that represent this device. They are a subset of the +classes of the #GstDeviceProvider that produced this device.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">The device class. Free with g_free() after use.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_display_name" c:identifier="gst_device_get_display_name" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Gets the user-friendly name of the device.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">The device name. Free with g_free() after use.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_properties" c:identifier="gst_device_get_properties" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Gets the extra properties of a device.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">The extra properties or %NULL when there are none. + Free with gst_structure_free() after use.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_classes" c:identifier="gst_device_has_classes" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Check if @device matches all of the given classes</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">%TRUE if @device matches.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + <parameter name="classes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a "/"-separated list of device classes to match, only match if + all classes are matched</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="has_classesv" c:identifier="gst_device_has_classesv" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Check if @factory matches all of the given classes</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">%TRUE if @device matches.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + <parameter name="classes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a %NULL terminated array of classes + to match, only match if all classes are matched</doc> + <array c:type="gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </method> + <method name="reconfigure_element" c:identifier="gst_device_reconfigure_element" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">Tries to reconfigure an existing element to use the device. If this +function fails, then one must destroy the element and create a new one +using gst_device_create_element(). + +Note: This should only be implemented for elements can change their +device in the PLAYING state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">%TRUE if the element could be reconfigured to use this device, +%FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <property name="caps" writable="1" construct-only="1" transfer-ownership="none"> + <type name="Caps"/> + </property> + <property name="device-class" writable="1" construct-only="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="display-name" writable="1" construct-only="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="properties" writable="1" construct-only="1" transfer-ownership="none"> + <type name="Structure"/> + </property> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.h">The parent #GstObject structure.</doc> + <type name="Object" c:type="GstObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="DevicePrivate" c:type="GstDevicePrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="removed" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + </class> + <record name="DeviceClass" c:type="GstDeviceClass" glib:is-gtype-struct-for="Device" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.h">The class structure for a #GstDevice object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.h">The parent #GstObjectClass structure.</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="create_element"> + <callback name="create_element"> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a new #GstElement configured to use +this device</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">name of new element, or %NULL to automatically +create a unique name.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="reconfigure_element"> + <callback name="reconfigure_element"> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">%TRUE if the element could be reconfigured to use this device, +%FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevice.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="DeviceMonitor" c:symbol-prefix="device_monitor" c:type="GstDeviceMonitor" version="1.4" parent="Object" glib:type-name="GstDeviceMonitor" glib:get-type="gst_device_monitor_get_type" glib:type-struct="DeviceMonitorClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Applications should create a #GstDeviceMonitor when they want +to probe, list and monitor devices of a specific type. The +#GstDeviceMonitor will create the appropriate +#GstDeviceProvider objects and manage them. It will then post +messages on its #GstBus for devices that have been added and +removed. + +The device monitor will monitor all devices matching the filters that +the application has set. + +The basic use pattern of a device monitor is as follows: +|[ + static gboolean + my_bus_func (GstBus * bus, GstMessage * message, gpointer user_data) + { + GstDevice *device; + gchar *name; + + switch (GST_MESSAGE_TYPE (message)) { + case GST_MESSAGE_DEVICE_ADDED: + gst_message_parse_device_added (message, &device); + name = gst_device_get_display_name (device); + g_print("Device added: %s\n", name); + g_free (name); + gst_object_unref (device); + break; + case GST_MESSAGE_DEVICE_REMOVED: + gst_message_parse_device_removed (message, &device); + name = gst_device_get_display_name (device); + g_print("Device removed: %s\n", name); + g_free (name); + gst_object_unref (device); + break; + default: + break; + } + + return G_SOURCE_CONTINUE; + } + + GstDeviceMonitor * + setup_raw_video_source_device_monitor (void) { + GstDeviceMonitor *monitor; + GstBus *bus; + GstCaps *caps; + + monitor = gst_device_monitor_new (); + + bus = gst_device_monitor_get_bus (monitor); + gst_bus_add_watch (bus, my_bus_func, NULL); + gst_object_unref (bus); + + caps = gst_caps_new_empty_simple ("video/x-raw"); + gst_device_monitor_add_filter (monitor, "Video/Source", caps); + gst_caps_unref (caps); + + gst_device_monitor_start (monitor); + + return monitor; + } +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <constructor name="new" c:identifier="gst_device_monitor_new" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Create a new #GstDeviceMonitor</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">a new device monitor.</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </return-value> + </constructor> + <method name="add_filter" c:identifier="gst_device_monitor_add_filter" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Adds a filter for which #GstDevice will be monitored, any device that matches +all these classes and the #GstCaps will be returned. + +If this function is called multiple times to add more filters, each will be +matched independently. That is, adding more filters will not further restrict +what devices are matched. + +The #GstCaps supported by the device as returned by gst_device_get_caps() are +not intersected with caps filters added using this function. + +Filters must be added before the #GstDeviceMonitor is started.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">The id of the new filter or 0 if no provider matched the filter's + classes.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="monitor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">a device monitor</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </instance-parameter> + <parameter name="classes" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">device classes to use as filter or %NULL for any class</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">the #GstCaps to filter or %NULL for ANY</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="get_bus" c:identifier="gst_device_monitor_get_bus" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Gets the #GstBus of this #GstDeviceMonitor</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">a #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </return-value> + <parameters> + <instance-parameter name="monitor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">a #GstDeviceProvider</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_devices" c:identifier="gst_device_monitor_get_devices" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Gets a list of devices from all of the relevant monitors. This may actually +probe the hardware if the monitor is not currently started.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">a #GList of + #GstDevice</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Device"/> + </type> + </return-value> + <parameters> + <instance-parameter name="monitor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">A #GstDeviceProvider</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_providers" c:identifier="gst_device_monitor_get_providers" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Get a list of the currently selected device provider factories. + +This</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c"> + A list of device provider factory names that are currently being + monitored by @monitor or %NULL when nothing is being monitored.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="monitor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">a #GstDeviceMonitor</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_show_all_devices" c:identifier="gst_device_monitor_get_show_all_devices" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Get if @monitor is currently showing all devices, even those from hidden +providers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">%TRUE when all devices will be shown.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="monitor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">a #GstDeviceMonitor</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_filter" c:identifier="gst_device_monitor_remove_filter" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Removes a filter from the #GstDeviceMonitor using the id that was returned +by gst_device_monitor_add_filter().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">%TRUE of the filter id was valid, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="monitor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">a device monitor</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </instance-parameter> + <parameter name="filter_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">the id of the filter</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_show_all_devices" c:identifier="gst_device_monitor_set_show_all_devices" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Set if all devices should be visible, even those devices from hidden +providers. Setting @show_all to true might show some devices multiple times.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="monitor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">a #GstDeviceMonitor</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </instance-parameter> + <parameter name="show_all" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">show all devices</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="start" c:identifier="gst_device_monitor_start" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Starts monitoring the devices, one this has succeeded, the +%GST_MESSAGE_DEVICE_ADDED and %GST_MESSAGE_DEVICE_REMOVED messages +will be emitted on the bus when the list of devices changes.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">%TRUE if the device monitoring could be started, i.e. at least a + single device provider was started successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="monitor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">A #GstDeviceMonitor</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </instance-parameter> + </parameters> + </method> + <method name="stop" c:identifier="gst_device_monitor_stop" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">Stops monitoring the devices.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="monitor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.c">A #GstDeviceProvider</doc> + <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/> + </instance-parameter> + </parameters> + </method> + <property name="show-all" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.h">the parent #GstObject structure</doc> + <type name="Object" c:type="GstObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="DeviceMonitorPrivate" c:type="GstDeviceMonitorPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="DeviceMonitorClass" c:type="GstDeviceMonitorClass" glib:is-gtype-struct-for="DeviceMonitor" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.h">Opaque device monitor class structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdevicemonitor.h">the parent #GstObjectClass structure</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="DeviceMonitorPrivate" c:type="GstDeviceMonitorPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + </record> + <record name="DevicePrivate" c:type="GstDevicePrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + </record> + <class name="DeviceProvider" c:symbol-prefix="device_provider" c:type="GstDeviceProvider" version="1.4" parent="Object" abstract="1" glib:type-name="GstDeviceProvider" glib:get-type="gst_device_provider_get_type" glib:type-struct="DeviceProviderClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">A #GstDeviceProvider subclass is provided by a plugin that handles devices +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 +normally provide a single subclass for all devices. + +Applications would normally use a #GstDeviceMonitor to monitor devices +from all relevant providers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <function name="register" c:identifier="gst_device_provider_register" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Create a new device providerfactory capable of instantiating objects of the +@type and add the factory to @plugin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">%TRUE, if the registering succeeded, %FALSE on error</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">#GstPlugin to register the device provider with, or %NULL for + a static device provider.</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">name of device providers of this type</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="rank" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">rank of device provider (higher rank means more importance when autoplugging)</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">GType of device provider to register</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + <virtual-method name="probe" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="start" invoker="start" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Starts providering the devices. This will cause #GST_MESSAGE_DEVICE_ADDED +and #GST_MESSAGE_DEVICE_REMOVED messages to be posted on the provider's bus +when devices are added or removed from the system. + +Since the #GstDeviceProvider is a singleton, +gst_device_provider_start() may already have been called by another +user of the object, gst_device_provider_stop() needs to be called the same +number of times. + +After this function has been called, gst_device_provider_get_devices() will +return the same objects that have been received from the +#GST_MESSAGE_DEVICE_ADDED messages and will no longer probe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">%TRUE if the device providering could be started</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">A #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop" invoker="stop" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Decreases the use-count by one. If the use count reaches zero, this +#GstDeviceProvider will stop providering the devices. This needs to be +called the same number of times that gst_device_provider_start() was called.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">A #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="can_monitor" c:identifier="gst_device_provider_can_monitor"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </method> + <method name="device_add" c:identifier="gst_device_provider_device_add" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Posts a message on the provider's #GstBus to inform applications that +a new device has been added. + +This is for use by subclasses. + +@device's reference count will be incremented, and any floating reference +will be removed (see gst_object_ref_sink()).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + <parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDevice that has been added</doc> + <type name="Device" c:type="GstDevice*"/> + </parameter> + </parameters> + </method> + <method name="device_changed" c:identifier="gst_device_provider_device_changed" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">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> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <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" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">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" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the old version of the device that has been updated</doc> + <type name="Device" c:type="GstDevice*"/> + </parameter> + </parameters> + </method> + <method name="device_remove" c:identifier="gst_device_provider_device_remove" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Posts a message on the provider's #GstBus to inform applications that +a device has been removed. + +This is for use by subclasses.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + <parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDevice that has been removed</doc> + <type name="Device" c:type="GstDevice*"/> + </parameter> + </parameters> + </method> + <method name="get_bus" c:identifier="gst_device_provider_get_bus" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Gets the #GstBus of this #GstDeviceProvider</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstBus</doc> + <type name="Bus" c:type="GstBus*"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_devices" c:identifier="gst_device_provider_get_devices" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Gets a list of devices that this provider understands. This may actually +probe the hardware if the provider is not currently started. + +If the provider has been started, this will returned the same #GstDevice +objedcts that have been returned by the #GST_MESSAGE_DEVICE_ADDED messages.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GList of + #GstDevice</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Device"/> + </type> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">A #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_factory" c:identifier="gst_device_provider_get_factory" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Retrieves the factory that was used to create this device provider.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the #GstDeviceProviderFactory used for + creating this device provider. no refcounting is needed.</doc> + <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDeviceProvider to request the device provider factory of.</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_hidden_providers" c:identifier="gst_device_provider_get_hidden_providers" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Get the provider factory names of the #GstDeviceProvider instances that +are hidden by @provider.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c"> + a list of hidden providers factory names or %NULL when + nothing is hidden by @provider. Free with g_strfreev.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_metadata" c:identifier="gst_device_provider_get_metadata" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Get metadata with @key in @provider.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the metadata for @key.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">provider to get metadata for</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the key to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="hide_provider" c:identifier="gst_device_provider_hide_provider" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Make @provider hide the devices from the factory with @name. + +This function is used when @provider will also provide the devices reported +by provider factory @name. A monitor should stop monitoring the +device provider with @name to avoid duplicate devices.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a provider factory name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="is_started" c:identifier="gst_device_provider_is_started" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">This function can be used to know if the @provider was successfully started.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </method> + <method name="start" c:identifier="gst_device_provider_start" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Starts providering the devices. This will cause #GST_MESSAGE_DEVICE_ADDED +and #GST_MESSAGE_DEVICE_REMOVED messages to be posted on the provider's bus +when devices are added or removed from the system. + +Since the #GstDeviceProvider is a singleton, +gst_device_provider_start() may already have been called by another +user of the object, gst_device_provider_stop() needs to be called the same +number of times. + +After this function has been called, gst_device_provider_get_devices() will +return the same objects that have been received from the +#GST_MESSAGE_DEVICE_ADDED messages and will no longer probe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">%TRUE if the device providering could be started</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">A #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </method> + <method name="stop" c:identifier="gst_device_provider_stop" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Decreases the use-count by one. If the use count reaches zero, this +#GstDeviceProvider will stop providering the devices. This needs to be +called the same number of times that gst_device_provider_start() was called.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">A #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + </parameters> + </method> + <method name="unhide_provider" c:identifier="gst_device_provider_unhide_provider" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Make @provider unhide the devices from factory @name. + +This function is used when @provider will no longer provide the devices +reported by provider factory @name. A monitor should start +monitoring the devices from provider factory @name in order to see +all devices again.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">a provider factory name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The parent #GstObject</doc> + <type name="Object" c:type="GstObject"/> + </field> + <field name="devices"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">a #GList of the #GstDevice objects</doc> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </field> + <field name="priv" readable="0" private="1"> + <type name="DeviceProviderPrivate" c:type="GstDeviceProviderPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="provider-hidden" when="first"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="provider-unhidden" when="first"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="DeviceProviderClass" c:type="GstDeviceProviderClass" glib:is-gtype-struct-for="DeviceProvider" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">The structure of the base #GstDeviceProviderClass</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">the parent #GstObjectClass structure</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="factory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.h">a pointer to the #GstDeviceProviderFactory that creates this + provider</doc> + <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/> + </field> + <field name="probe" introspectable="0"> + <callback name="probe" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </return-value> + <parameters> + <parameter name="provider" transfer-ownership="none"> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">%TRUE if the device providering could be started</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">A #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">A #GstDeviceProvider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="metadata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="add_metadata" c:identifier="gst_device_provider_class_add_metadata" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Set @key with @value as metadata in @klass.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">class to set metadata for</doc> + <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the key to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the value to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_static_metadata" c:identifier="gst_device_provider_class_add_static_metadata" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Set @key with @value as metadata in @klass. + +Same as gst_device_provider_class_add_metadata(), but @value must be a static string +or an inlined string, as it will not be copied. (GStreamer plugins will +be made resident once loaded, so this function can be used even from +dynamically loaded plugins.)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">class to set metadata for</doc> + <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the key to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the value to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_metadata" c:identifier="gst_device_provider_class_get_metadata" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Get metadata with @key in @klass.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the metadata for @key.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">class to get metadata for</doc> + <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">the key to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_metadata" c:identifier="gst_device_provider_class_set_metadata" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Sets the detailed information for a #GstDeviceProviderClass. + +> This function is for use in _class_init functions only.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">class to set metadata for</doc> + <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/> + </instance-parameter> + <parameter name="longname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">The long English name of the device provider. E.g. "File Sink"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="classification" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">String describing the type of device provider, as an + unordered list separated with slashes ('/'). See draft-klass.txt of the + design docs +for more details and common types. E.g: "Sink/File"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Sentence describing the purpose of the device provider. +E.g: "Write stream to a file"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="author" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Name and contact details of the author(s). Use \n to separate +multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_static_metadata" c:identifier="gst_device_provider_class_set_static_metadata" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Sets the detailed information for a #GstDeviceProviderClass. + +> This function is for use in _class_init functions only. + +Same as gst_device_provider_class_set_metadata(), but @longname, @classification, +@description, and @author must be static strings or inlined strings, as +they will not be copied. (GStreamer plugins will be made resident once +loaded, so this function can be used even from dynamically loaded plugins.)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">class to set metadata for</doc> + <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/> + </instance-parameter> + <parameter name="longname" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">The long English name of the element. E.g. "File Sink"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="classification" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">String describing the type of element, as +an unordered list separated with slashes ('/'). See draft-klass.txt of the +design docs for more details and common types. E.g: "Sink/File"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Sentence describing the purpose of the +element. E.g: "Write stream to a file"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="author" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceprovider.c">Name and contact details of the author(s). Use \n +to separate multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at +foo.com&gt;"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </record> + <class name="DeviceProviderFactory" c:symbol-prefix="device_provider_factory" c:type="GstDeviceProviderFactory" version="1.4" parent="PluginFeature" glib:type-name="GstDeviceProviderFactory" glib:get-type="gst_device_provider_factory_get_type" glib:type-struct="DeviceProviderFactoryClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">#GstDeviceProviderFactory is used to create instances of device providers. A +GstDeviceProviderfactory can be added to a #GstPlugin as it is also a +#GstPluginFeature. + +Use the gst_device_provider_factory_find() and +gst_device_provider_factory_get() functions to create device +provider instances or use gst_device_provider_factory_get_by_name() as a +convenient shortcut.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <function name="find" c:identifier="gst_device_provider_factory_find" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Search for an device provider factory of the given name. Refs the returned +device provider factory; caller is responsible for unreffing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">#GstDeviceProviderFactory if +found, %NULL otherwise</doc> + <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">name of factory to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_by_name" c:identifier="gst_device_provider_factory_get_by_name" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Returns the device provider of the type defined by the given device +provider factory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">a #GstDeviceProvider or %NULL +if unable to create device provider</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </return-value> + <parameters> + <parameter name="factoryname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">a named factory to instantiate</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="list_get_device_providers" c:identifier="gst_device_provider_factory_list_get_device_providers" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Get a list of factories with a rank greater or equal to @minrank. +The list of factories is returned by decreasing rank.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c"> +a #GList of #GstDeviceProviderFactory device providers. Use +gst_plugin_feature_list_free() after usage.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="DeviceProviderFactory"/> + </type> + </return-value> + <parameters> + <parameter name="minrank" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Minimum rank</doc> + <type name="Rank" c:type="GstRank"/> + </parameter> + </parameters> + </function> + <method name="get" c:identifier="gst_device_provider_factory_get" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Returns the device provider of the type defined by the given device +providerfactory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">the #GstDeviceProvider or %NULL +if the device provider couldn't be created</doc> + <type name="DeviceProvider" c:type="GstDeviceProvider*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">factory to instantiate</doc> + <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_device_provider_type" c:identifier="gst_device_provider_factory_get_device_provider_type" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Get the #GType for device providers managed by this factory. The type can +only be retrieved if the device provider factory is loaded, which can be +assured with gst_plugin_feature_load().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">the #GType for device providers managed by this factory.</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">factory to get managed #GType from</doc> + <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_metadata" c:identifier="gst_device_provider_factory_get_metadata" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Get the metadata on @factory with @key.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">the metadata with @key on @factory or %NULL +when there was no metadata with the given @key.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">a #GstDeviceProviderFactory</doc> + <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">a key</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_metadata_keys" c:identifier="gst_device_provider_factory_get_metadata_keys" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Get the available keys for the metadata on @factory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c"> +a %NULL-terminated array of key strings, or %NULL when there is no +metadata. Free with g_strfreev() when no longer needed.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">a #GstDeviceProviderFactory</doc> + <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_classes" c:identifier="gst_device_provider_factory_has_classes" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Check if @factory matches all of the given @classes</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">%TRUE if @factory matches or if @classes is %NULL.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">a #GstDeviceProviderFactory</doc> + <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/> + </instance-parameter> + <parameter name="classes" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">a "/" separate list of classes to match, only match + if all classes are matched</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="has_classesv" c:identifier="gst_device_provider_factory_has_classesv" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">Check if @factory matches all of the given classes</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">%TRUE if @factory matches.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">a #GstDeviceProviderFactory</doc> + <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/> + </instance-parameter> + <parameter name="classes" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.c">a %NULL terminated array + of classes to match, only match if all classes are matched</doc> + <array c:type="gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </method> + </class> + <record name="DeviceProviderFactoryClass" c:type="GstDeviceProviderFactoryClass" disguised="1" glib:is-gtype-struct-for="DeviceProviderFactory" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h">The opaque #GstDeviceProviderFactoryClass data structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + </record> + <record name="DeviceProviderPrivate" c:type="GstDeviceProviderPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + </record> + <class name="DoubleRange" c:symbol-prefix="double_range" glib:type-name="GstDoubleRange" glib:get-type="gst_double_range_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A fundamental type that describes a #gdouble range</doc> + </class> + <class name="DynamicTypeFactory" c:symbol-prefix="dynamic_type_factory" c:type="GstDynamicTypeFactory" version="1.12" parent="PluginFeature" glib:type-name="GstDynamicTypeFactory" glib:get-type="gst_dynamic_type_factory_get_type" glib:type-struct="DynamicTypeFactoryClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.c">#GstDynamicTypeFactory is used to represent a type that can be +automatically loaded the first time it is used. For example, +a non-standard type for use in caps fields. + +In general, applications and plugins don't need to use the factory +beyond registering the type in a plugin init function. Once that is +done, the type is stored in the registry, and ready as soon as the +registry is loaded. + +## Registering a type for dynamic loading + +|[<!-- language="C" --> + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_dynamic_type_register (plugin, GST_TYPE_CUSTOM_CAPS_FIELD); +} +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <function name="load" c:identifier="gst_dynamic_type_factory_load"> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <parameter name="factoryname" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + </class> + <record name="DynamicTypeFactoryClass" c:type="GstDynamicTypeFactoryClass" disguised="1" glib:is-gtype-struct-for="DynamicTypeFactory"> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + </record> + <function-macro name="ELEMENT" c:identifier="GST_ELEMENT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_BUS" c:identifier="GST_ELEMENT_BUS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Get the message bus of this element. This is not thread-safe by default +(i.e. you will have to make sure the object lock is taken yourself). +If in doubt use gst_element_get_bus() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A #GstElement to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_CAST" c:identifier="GST_ELEMENT_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_CLASS" c:identifier="GST_ELEMENT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_CLOCK" c:identifier="GST_ELEMENT_CLOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Get the clock of this element.This is not thread-safe by default +(i.e. you will have to make sure it is safe yourself). +If in doubt use gst_element_get_clock() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A #GstElement to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_ERROR" c:identifier="GST_ELEMENT_ERROR" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Utility function that elements can use in case they encountered a fatal +data processing error. The pipeline will post an error message and the +application will be requested to stop further media processing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="el"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element that generates the error</doc> + </parameter> + <parameter name="domain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">like CORE, LIBRARY, RESOURCE or STREAM (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="code"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">error code defined for that domain (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="text"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the message to display (format string and args enclosed in + parentheses)</doc> + </parameter> + <parameter name="debug"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">debugging information for the message (format string and args + enclosed in parentheses)</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_ERROR_WITH_DETAILS" c:identifier="GST_ELEMENT_ERROR_WITH_DETAILS" version="1.10" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Utility function that elements can use in case they encountered a fatal +data processing error. The pipeline will post an error message and the +application will be requested to stop further media processing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="el"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element that generates the error</doc> + </parameter> + <parameter name="domain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">like CORE, LIBRARY, RESOURCE or STREAM (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="code"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">error code defined for that domain (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="text"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the message to display (format string and args enclosed in + parentheses)</doc> + </parameter> + <parameter name="debug"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">debugging information for the message (format string and args + enclosed in parentheses)</doc> + </parameter> + <parameter name="args"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">optional name, type, value triplets, which will be stored + in the associated GstStructure. NULL terminator required. + Must be enclosed within parentheses.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_FACTORY" c:identifier="GST_ELEMENT_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_FACTORY_CAST" c:identifier="GST_ELEMENT_FACTORY_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_FACTORY_CLASS" c:identifier="GST_ELEMENT_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <constant name="ELEMENT_FACTORY_KLASS_DECODER" value="Decoder" c:type="GST_ELEMENT_FACTORY_KLASS_DECODER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_DECRYPTOR" value="Decryptor" c:type="GST_ELEMENT_FACTORY_KLASS_DECRYPTOR"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_DEMUXER" value="Demuxer" c:type="GST_ELEMENT_FACTORY_KLASS_DEMUXER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_DEPAYLOADER" value="Depayloader" c:type="GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_ENCODER" value="Encoder" c:type="GST_ELEMENT_FACTORY_KLASS_ENCODER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_ENCRYPTOR" value="Encryptor" c:type="GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_FORMATTER" value="Formatter" c:type="GST_ELEMENT_FACTORY_KLASS_FORMATTER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <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" filename="../subprojects/gstreamer/gst/gstelementfactory.h">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> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_MEDIA_AUDIO" value="Audio" c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_MEDIA_IMAGE" value="Image" c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_MEDIA_METADATA" value="Metadata" c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE" value="Subtitle" c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_MEDIA_VIDEO" value="Video" c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_MUXER" value="Muxer" c:type="GST_ELEMENT_FACTORY_KLASS_MUXER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_PARSER" value="Parser" c:type="GST_ELEMENT_FACTORY_KLASS_PARSER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_PAYLOADER" value="Payloader" c:type="GST_ELEMENT_FACTORY_KLASS_PAYLOADER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_SINK" value="Sink" c:type="GST_ELEMENT_FACTORY_KLASS_SINK"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_KLASS_SRC" value="Source" c:type="GST_ELEMENT_FACTORY_KLASS_SRC"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_ANY" value="562949953421311" c:type="GST_ELEMENT_FACTORY_TYPE_ANY"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.h">Elements of any of the defined GST_ELEMENT_FACTORY_LIST types</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS" value="3940649673949188" c:type="GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.h">All sinks handling audio, video or image media types</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_AUDIO_ENCODER" value="1125899906842626" c:type="GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.h">All encoders handling audio media types</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_DECODABLE" value="1377" c:type="GST_ELEMENT_FACTORY_TYPE_DECODABLE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.h">All elements used to 'decode' streams (decoders, demuxers, parsers, depayloaders)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_DECODER" value="1" c:type="GST_ELEMENT_FACTORY_TYPE_DECODER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_DECRYPTOR" value="1024" c:type="GST_ELEMENT_FACTORY_TYPE_DECRYPTOR"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_DEMUXER" value="32" c:type="GST_ELEMENT_FACTORY_TYPE_DEMUXER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_DEPAYLOADER" value="256" c:type="GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_ENCODER" value="2" c:type="GST_ELEMENT_FACTORY_TYPE_ENCODER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_ENCRYPTOR" value="2048" c:type="GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_FORMATTER" value="512" c:type="GST_ELEMENT_FACTORY_TYPE_FORMATTER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_HARDWARE" value="4096" c:type="GST_ELEMENT_FACTORY_TYPE_HARDWARE"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_MAX_ELEMENTS" value="281474976710656" c:type="GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_MEDIA_ANY" value="18446462598732840960" c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.h">Elements matching any of the defined GST_ELEMENT_FACTORY_TYPE_MEDIA types + +Note: Do not use this if you wish to not filter against any of the defined +media types. If you wish to do this, simply don't specify any +GST_ELEMENT_FACTORY_TYPE_MEDIA flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_MEDIA_AUDIO" value="1125899906842624" c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_MEDIA_IMAGE" value="2251799813685248" c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_MEDIA_METADATA" value="9007199254740992" c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE" value="4503599627370496" c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_MEDIA_VIDEO" value="562949953421312" c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_MUXER" value="16" c:type="GST_ELEMENT_FACTORY_TYPE_MUXER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_PARSER" value="64" c:type="GST_ELEMENT_FACTORY_TYPE_PARSER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_PAYLOADER" value="128" c:type="GST_ELEMENT_FACTORY_TYPE_PAYLOADER"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_SINK" value="4" c:type="GST_ELEMENT_FACTORY_TYPE_SINK"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_SRC" value="8" c:type="GST_ELEMENT_FACTORY_TYPE_SRC"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_TIMESTAMPER" value="8192" c:type="GST_ELEMENT_FACTORY_TYPE_TIMESTAMPER" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.h">Timestamp correcting elements</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <constant name="ELEMENT_FACTORY_TYPE_VIDEO_ENCODER" value="2814749767106562" c:type="GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.h">All encoders handling video or image media types</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </constant> + <function-macro name="ELEMENT_FLOW_ERROR" c:identifier="GST_ELEMENT_FLOW_ERROR" version="1.10" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Utility function that elements can use in case they encountered a fatal +data processing error due to wrong flow processing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="el"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element that generates the error</doc> + </parameter> + <parameter name="flow_return"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the GstFlowReturn leading to that ERROR message</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_GET_CLASS" c:identifier="GST_ELEMENT_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_INFO" c:identifier="GST_ELEMENT_INFO" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Utility function that elements can use in case they want to inform +the application of something noteworthy that is not an error. +The pipeline will post a info message and the +application will be informed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="el"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element that generates the information</doc> + </parameter> + <parameter name="domain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">like CORE, LIBRARY, RESOURCE or STREAM (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="code"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">error code defined for that domain (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="text"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the message to display (format string and args enclosed in + parentheses)</doc> + </parameter> + <parameter name="debug"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">debugging information for the message (format string and args + enclosed in parentheses)</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_INFO_WITH_DETAILS" c:identifier="GST_ELEMENT_INFO_WITH_DETAILS" version="1.10" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Utility function that elements can use in case they want to inform +the application of something noteworthy that is not an error. +The pipeline will post a info message and the +application will be informed. +Optional name, type, value triplets may be supplied, and will be stored +in the associated GstStructure. NULL terminator required.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="el"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element that generates the information</doc> + </parameter> + <parameter name="domain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">like CORE, LIBRARY, RESOURCE or STREAM (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="code"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">error code defined for that domain (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="text"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the message to display (format string and args enclosed in + parentheses)</doc> + </parameter> + <parameter name="debug"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">debugging information for the message (format string and args + enclosed in parentheses)</doc> + </parameter> + <parameter name="args"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">optional name, type, value triplets, which will be stored + in the associated GstStructure. NULL terminator required. + Must be enclosed within parentheses.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_IS_LOCKED_STATE" c:identifier="GST_ELEMENT_IS_LOCKED_STATE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Check if the element is in the locked state and therefore will ignore state +changes from its parent object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A #GstElement to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_MESSAGE_MAKE_DETAILS" c:identifier="GST_ELEMENT_MESSAGE_MAKE_DETAILS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="args"> + </parameter> + </parameters> + </function-macro> + <constant name="ELEMENT_METADATA_AUTHOR" value="author" c:type="GST_ELEMENT_METADATA_AUTHOR"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementmetadata.h">Name and contact details of the author(s). Use \n to separate +multiple author details. +E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementmetadata.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_METADATA_DESCRIPTION" value="description" c:type="GST_ELEMENT_METADATA_DESCRIPTION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementmetadata.h">Sentence describing the purpose of the element. +E.g: "Write stream to a file"</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementmetadata.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_METADATA_DOC_URI" value="doc-uri" c:type="GST_ELEMENT_METADATA_DOC_URI"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementmetadata.h">Set uri pointing to user documentation. Applications can use this to show +help for e.g. effects to users.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementmetadata.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_METADATA_ICON_NAME" value="icon-name" c:type="GST_ELEMENT_METADATA_ICON_NAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementmetadata.h">Elements that bridge to certain other products can include an icon of that +used product. Application can show the icon in menus/selectors to help +identifying specific elements.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementmetadata.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_METADATA_KLASS" value="klass" c:type="GST_ELEMENT_METADATA_KLASS"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementmetadata.h">String describing the type of element, as an unordered list +separated with slashes ('/'). See draft-klass.txt of the design docs +for more details and common types. E.g: "Sink/File"</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementmetadata.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ELEMENT_METADATA_LONGNAME" value="long-name" c:type="GST_ELEMENT_METADATA_LONGNAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementmetadata.h">The long English name of the element. E.g. "File Sink"</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementmetadata.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="ELEMENT_NAME" c:identifier="GST_ELEMENT_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Gets the name of this element. This is not thread-safe by default +(i.e. you will have to make sure the object lock is taken yourself). +If in doubt use gst_element_get_name() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A #GstElement to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_PADS" c:identifier="GST_ELEMENT_PADS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Get the pads of this elements.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A #GstElement to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_PARENT" c:identifier="GST_ELEMENT_PARENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Get the parent object of this element. This is not thread-safe by default +(i.e. you will have to make sure the object lock is taken yourself). +If in doubt use gst_object_get_parent() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A #GstElement to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_REGISTER" c:identifier="GST_ELEMENT_REGISTER" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">This macro can be used to register an element into a #GstPlugin. +This method will be usually called in the plugin init function +but can also be called with a NULL plugin, +for example with a static registration of the element. +It has to be used in combination with #GST_ELEMENT_REGISTER_DECLARE. + +``` +GstPlugin* plugin; + +... + +GST_ELEMENT_REGISTER (stream_filter, plugin); +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The element name in lower case, with words separated by '_'.</doc> + </parameter> + <parameter name="plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The #GstPlugin where to register the element.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_REGISTER_DECLARE" c:identifier="GST_ELEMENT_REGISTER_DECLARE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">This macro can be used to declare a new element. +It has to be used in combination with #GST_ELEMENT_REGISTER_DEFINE macros +and must be placed outside any block to declare the element registration +function. +As an example, you may declare the element named "stream-filter" +with the namespace `my` as following: + +``` +GST_ELEMENT_REGISTER_DECLARE (stream_filter) +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The element name in lower case, with words separated by '_'.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_REGISTER_DEFINE" c:identifier="GST_ELEMENT_REGISTER_DEFINE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A convenience macro to define the entry point of an +element `gst_element_register_*(GstPlugin* plugin)`. +As an example, you may define the element named "streamer-filter" +with the namespace `my` as following: + +``` +GST_ELEMENT_REGISTER_REGISTER_DEFINE (stream_filter, "stream-filter", GST_RANK_PRIMARY, MY_TYPE_STREAM_FILTER) +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="e"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The element name in lower case, with words separated by '_'. +Used to generate `gst_element_register_*(GstPlugin* plugin)`.</doc> + </parameter> + <parameter name="e_n"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The public name of the element</doc> + </parameter> + <parameter name="r"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The #GstRank of the element (higher rank means more importance when autoplugging, see #GstRank)</doc> + </parameter> + <parameter name="t"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The #GType of the element.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_REGISTER_DEFINE_CUSTOM" c:identifier="GST_ELEMENT_REGISTER_DEFINE_CUSTOM" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A convenience macro to define the entry point of an +element `gst_element_register_*(GstPlugin* plugin)` which uses +register_func as the main registration method for the element. +As an example, you may define the element named "streamer-filter" +with the namespace `my` as following using `element_register_custom`: + +``` +GST_ELEMENT_REGISTER_DEFINE_CUSTOM (my_element, element_register_custom) +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The element name in lower case, with words separated by '_'. +Used to generate `gst_element_register_*(GstPlugin* plugin)`.</doc> + </parameter> + <parameter name="register_func"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">pointer to a method with the format: `gboolean register_func (GstPlugin* plugin);`</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_REGISTER_DEFINE_WITH_CODE" c:identifier="GST_ELEMENT_REGISTER_DEFINE_WITH_CODE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A convenience macro to define the entry point of an +element `gst_element_register_*(GstPlugin* plugin)` executing code +before gst_element_register in `gst_element_register_*(GstPlugin* plugin)`. + +As an example, you may define the element named "stream-filter" +with the namespace `my` as following: + +``` +#define _pre_register_init * my_stream_filter_pre_register (plugin); +; +GST_ELEMENT_REGISTER_DEFINE_WITH_CODE (stream_filter, "stream-filter", GST_RANK_PRIMARY, MY_TYPE_STREAM_FILTER, _pre_register_init) +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="e"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The element name in lower case, with words separated by '_'. +Used to generate `gst_element_register_*(GstPlugin* plugin)`.</doc> + </parameter> + <parameter name="e_n"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The public name of the element</doc> + </parameter> + <parameter name="r"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The #GstRank of the element (higher rank means more importance when autoplugging, see #GstRank)</doc> + </parameter> + <parameter name="t"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The #GType of the element.</doc> + </parameter> + <parameter name="_c_"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Custom code that gets inserted in the gst_element_register_*() function.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_START_TIME" c:identifier="GST_ELEMENT_START_TIME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">This macro returns the start_time of the @elem. The start_time is the +running_time of the pipeline when the element went to PAUSED.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to return the start time for.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_WARNING" c:identifier="GST_ELEMENT_WARNING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Utility function that elements can use in case they encountered a non-fatal +data processing problem. The pipeline will post a warning message and the +application will be informed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="el"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element that generates the warning</doc> + </parameter> + <parameter name="domain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">like CORE, LIBRARY, RESOURCE or STREAM (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="code"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">error code defined for that domain (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="text"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the message to display (format string and args enclosed in + parentheses)</doc> + </parameter> + <parameter name="debug"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">debugging information for the message (format string and args + enclosed in parentheses)</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ELEMENT_WARNING_WITH_DETAILS" c:identifier="GST_ELEMENT_WARNING_WITH_DETAILS" version="1.10" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Utility function that elements can use in case they encountered a non-fatal +data processing problem. The pipeline will post a warning message and the +application will be informed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="el"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element that generates the warning</doc> + </parameter> + <parameter name="domain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">like CORE, LIBRARY, RESOURCE or STREAM (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="code"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">error code defined for that domain (see [GstGError](gsterror))</doc> + </parameter> + <parameter name="text"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the message to display (format string and args enclosed in + parentheses)</doc> + </parameter> + <parameter name="debug"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">debugging information for the message (format string and args + enclosed in parentheses)</doc> + </parameter> + <parameter name="args"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">optional name, type, value triplets, which will be stored + in the associated GstStructure. NULL terminator required. + Must be enclosed within parentheses.</doc> + </parameter> + </parameters> + </function-macro> + <constant name="ERROR_SYSTEM" value="system error: %s" c:type="GST_ERROR_SYSTEM" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">Builds a string using errno describing the previously failed system +call. To be used as the debug argument in #GST_ELEMENT_ERROR.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsterror.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="EVENT" c:identifier="GST_EVENT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="EVENT_CAST" c:identifier="GST_EVENT_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="EVENT_IS_DOWNSTREAM" c:identifier="GST_EVENT_IS_DOWNSTREAM" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Check if an event can travel downstream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="ev"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="EVENT_IS_SERIALIZED" c:identifier="GST_EVENT_IS_SERIALIZED" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Check if an event is serialized with the data stream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="ev"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="EVENT_IS_STICKY" c:identifier="GST_EVENT_IS_STICKY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Check if an event is sticky on the pads.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="ev"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="EVENT_IS_UPSTREAM" c:identifier="GST_EVENT_IS_UPSTREAM" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Check if an event can travel upstream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="ev"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="EVENT_MAKE_TYPE" c:identifier="GST_EVENT_MAKE_TYPE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">when making custom event types, use this macro with the num and +the given flags</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event number to create</doc> + </parameter> + <parameter name="flags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event flags</doc> + </parameter> + </parameters> + </function-macro> + <constant name="EVENT_NUM_SHIFT" value="8" c:type="GST_EVENT_NUM_SHIFT"> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="EVENT_SEQNUM" c:identifier="GST_EVENT_SEQNUM" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">The sequence number of @event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="EVENT_TIMESTAMP" c:identifier="GST_EVENT_TIMESTAMP" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Get the #GstClockTime timestamp of the event. This is the time when the event +was created.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="EVENT_TYPE" c:identifier="GST_EVENT_TYPE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Get the #GstEventType of the event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event to query</doc> + </parameter> + </parameters> + </function-macro> + <constant name="EVENT_TYPE_BOTH" value="3" c:type="GST_EVENT_TYPE_BOTH"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">The same thing as #GST_EVENT_TYPE_UPSTREAM | #GST_EVENT_TYPE_DOWNSTREAM.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <type name="EventTypeFlags" c:type="GstEventTypeFlags"/> + </constant> + <function-macro name="EVENT_TYPE_NAME" c:identifier="GST_EVENT_TYPE_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Get a constant string representation of the #GstEventType of the event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the event to query</doc> + </parameter> + </parameters> + </function-macro> + <class name="Element" c:symbol-prefix="element" c:type="GstElement" parent="Object" abstract="1" glib:type-name="GstElement" glib:get-type="gst_element_get_type" glib:type-struct="ElementClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">GstElement is the abstract base class needed to construct an element that +can be used in a GStreamer pipeline. Please refer to the plugin writers +guide for more information on creating #GstElement subclasses. + +The name of a #GstElement can be get with gst_element_get_name() and set with +gst_element_set_name(). For speed, GST_ELEMENT_NAME() can be used in the +core when using the appropriate locking. Do not use this in plug-ins or +applications in order to retain ABI compatibility. + +Elements can have pads (of the type #GstPad). These pads link to pads on +other elements. #GstBuffer flow between these linked pads. +A #GstElement has a #GList of #GstPad structures for all their input (or sink) +and output (or source) pads. +Core and plug-in writers can add and remove pads with gst_element_add_pad() +and gst_element_remove_pad(). + +An existing pad of an element can be retrieved by name with +gst_element_get_static_pad(). A new dynamic pad can be created using +gst_element_request_pad() with a #GstPadTemplate. +An iterator of all pads can be retrieved with gst_element_iterate_pads(). + +Elements can be linked through their pads. +If the link is straightforward, use the gst_element_link() +convenience function to link two elements, or gst_element_link_many() +for more elements in a row. +Use gst_element_link_filtered() to link two elements constrained by +a specified set of #GstCaps. +For finer control, use gst_element_link_pads() and +gst_element_link_pads_filtered() to specify the pads to link on +each element by name. + +Each element has a state (see #GstState). You can get and set the state +of an element with gst_element_get_state() and gst_element_set_state(). +Setting a state triggers a #GstStateChange. To get a string representation +of a #GstState, use gst_element_state_get_name(). + +You can get and set a #GstClock on an element using gst_element_get_clock() +and gst_element_set_clock(). +Some elements can provide a clock for the pipeline if +the #GST_ELEMENT_FLAG_PROVIDE_CLOCK flag is set. With the +gst_element_provide_clock() method one can retrieve the clock provided by +such an element. +Not all elements require a clock to operate correctly. If the +#GST_ELEMENT_FLAG_REQUIRE_CLOCK() flag is set, a clock should be set on the +element with gst_element_set_clock(). + +Note that clock selection and distribution is normally handled by the +toplevel #GstPipeline so the clock functions are only to be used in very +specific situations.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <function name="make_from_uri" c:identifier="gst_element_make_from_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Creates an element for handling the given URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">a new element or %NULL if none +could be created</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Whether to create a source or a sink</doc> + <type name="URIType" c:type="const GstURIType"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">URI to create an element for</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="elementname" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Name of created element, can be %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="register" c:identifier="gst_element_register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Create a new elementfactory capable of instantiating objects of the +@type and add the factory to @plugin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">%TRUE, if the registering succeeded, %FALSE on error</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">#GstPlugin to register the element with, or %NULL for + a static element.</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">name of elements of this type</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="rank" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">rank of element (higher rank means more importance when autoplugging)</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">GType of element to register</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + <function name="state_change_return_get_name" c:identifier="gst_element_state_change_return_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Gets a string representing the given state change result.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a string with the name of the state + result.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="state_ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstStateChangeReturn to get the name of.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </parameter> + </parameters> + </function> + <function name="state_get_name" c:identifier="gst_element_state_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Gets a string representing the given state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a string with the name of the state.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstState to get the name of.</doc> + <type name="State" c:type="GstState"/> + </parameter> + </parameters> + </function> + <function name="type_set_skip_documentation" c:identifier="gst_element_type_set_skip_documentation" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Marks @type as "documentation should be skipped". +Can be useful for dynamically registered element to be excluded from +plugin documentation system. + +Example: +```c +GType my_type; +GTypeInfo my_type_info; + +// Fill "my_type_info" +... + +my_type = g_type_register_static (GST_TYPE_MY_ELEMENT, "my-type-name", + &my_type_info, 0); +gst_element_type_set_skip_documentation (my_type); +gst_element_register (plugin, "my-plugin-feature-name", rank, my_type); +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GType of element</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + <virtual-method name="change_state" invoker="change_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Perform @transition on @element. + +This function must be called with STATE_LOCK held and is mainly used +internally.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstStateChangeReturn of the state transition.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="transition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the requested transition</doc> + <type name="StateChange" c:type="GstStateChange"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_state" invoker="get_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Gets the state of the element. + +For elements that performed an ASYNC state change, as reported by +gst_element_set_state(), this function will block up to the +specified timeout value for the state change to complete. +If the element completes the state change or goes into +an error, this function returns immediately with a return value of +%GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively. + +For elements that did not return %GST_STATE_CHANGE_ASYNC, this function +returns the current and pending state immediately. + +This function returns %GST_STATE_CHANGE_NO_PREROLL if the element +successfully changed its state but is not able to provide data yet. +This mostly happens for live sources that only produce data in +%GST_STATE_PLAYING. While the state change return is equivalent to +%GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that +some sink elements might not be able to complete their state change because +an element is not producing data to complete the preroll. When setting the +element to playing, the preroll will complete and playback will start.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state + and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the + element is still performing a state change or + %GST_STATE_CHANGE_FAILURE if the last state change failed. + +MT safe.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to get the state of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="state" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a pointer to #GstState to hold the state. + Can be %NULL.</doc> + <type name="State" c:type="GstState*"/> + </parameter> + <parameter name="pending" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a pointer to #GstState to hold the pending + state. Can be %NULL.</doc> + <type name="State" c:type="GstState*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstClockTime to specify the timeout for an async + state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="no_more_pads" invoker="no_more_pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Use this function to signal that the element does not expect any more pads +to show up in the current pipeline. This function should be called whenever +pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES +pad templates use this in combination with autopluggers to figure out that +the element is done initializing its pads. + +This function emits the #GstElement::no-more-pads signal. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="pad_added"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pad_removed"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="post_message" invoker="post_message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Post a message on the element's #GstBus. This function takes ownership of the +message; if you want to access the message after this call, you should add an +additional reference before calling.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the message was successfully posted. The function returns +%FALSE if the element did not have a bus. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement posting the message</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstMessage to post</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="provide_clock" invoker="provide_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Get the clock provided by the given element. +> An element is only required to provide a clock in the PAUSED +> state. Some elements can provide a clock in other states.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the GstClock provided by the +element or %NULL if no clock could be provided. Unref after usage. + +MT safe.</doc> + <type name="Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to query</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="query" invoker="query"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Performs a query on the given element. + +For elements that don't implement a query handler, this function +forwards the query to a random srcpad or to the peer of a +random linked sinkpad of this element. + +Please note that some queries might need a running pipeline to work.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the query could be performed. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to perform the query on.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstQuery.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="release_pad"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="request_new_pad" invoker="request_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves a request pad from the element according to the provided template. +Pad templates can be looked up using +gst_element_factory_get_static_pad_templates(). + +The pad should be released with gst_element_release_request_pad().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">requested #GstPad if found, + otherwise %NULL. Release after usage.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to find a request pad of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstPadTemplate of which we want a pad of.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the name of the request #GstPad +to retrieve. Can be %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the caps of the pad we want to +request. Can be %NULL.</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="send_event" invoker="send_event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sends an event to an element. If the element doesn't implement an +event handler, the event will be pushed on a random linked sink pad for +downstream events or a random linked source pad for upstream events. + +This function takes ownership of the provided event so you should +gst_event_ref() it if you want to reuse the event after this call. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the event was handled. Events that trigger a preroll (such +as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to send the event to.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstEvent to send to the element.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_bus" invoker="set_bus"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the bus of the element. Increases the refcount on the bus. +For internal use only, unless you're testing elements. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the bus of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="bus" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstBus to set.</doc> + <type name="Bus" c:type="GstBus*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_clock" invoker="set_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the clock for the element. This function increases the +refcount on the clock. Any previously set clock on the object +is unreffed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the element accepted the clock. An element can refuse a +clock when it, for example, is not able to slave its internal clock to the +@clock or when it requires a specific clock to operate. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the clock for.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstClock to set for the element.</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_context" invoker="set_context"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the context of the element. Increases the refcount of the context. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the context of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstContext to set.</doc> + <type name="Context" c:type="GstContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_state" invoker="set_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the state of the element. This function will try to set the +requested state by going through all the intermediary states and calling +the class's state change function for each. + +This function can return #GST_STATE_CHANGE_ASYNC, in which case the +element will perform the remainder of the state change asynchronously in +another thread. +An application can use gst_element_get_state() to wait for the completion +of the state change or it can wait for a %GST_MESSAGE_ASYNC_DONE or +%GST_MESSAGE_STATE_CHANGED on the bus. + +State changes to %GST_STATE_READY or %GST_STATE_NULL never return +#GST_STATE_CHANGE_ASYNC.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Result of the state change using #GstStateChangeReturn. + +MT safe.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to change state of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the element's new #GstState.</doc> + <type name="State" c:type="GstState"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="state_changed"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="oldstate" transfer-ownership="none"> + <type name="State" c:type="GstState"/> + </parameter> + <parameter name="newstate" transfer-ownership="none"> + <type name="State" c:type="GstState"/> + </parameter> + <parameter name="pending" transfer-ownership="none"> + <type name="State" c:type="GstState"/> + </parameter> + </parameters> + </virtual-method> + <method name="abort_state" c:identifier="gst_element_abort_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Abort the state change of the element. This function is used +by elements that do asynchronous state changes and find out +something is wrong. + +This function should be called with the STATE_LOCK held. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to abort the state of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="add_pad" c:identifier="gst_element_add_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">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 automatically activated when added in the PAUSED or PLAYING +state. + +The pad and the element should be unlocked when calling this function. + +This function will emit the #GstElement::pad-added signal on the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the pad could be added. This function can fail when +a pad with the same name already existed or the pad already had another +parent. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to add the pad to.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstPad to add to the element.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="add_property_deep_notify_watch" c:identifier="gst_element_add_property_deep_notify_watch" version="1.10"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a watch id, which can be used in connection with + gst_element_remove_property_notify_watch() to remove the watch again.</doc> + <type name="gulong" c:type="gulong"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to watch (recursively) for property changes</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">name of property to watch for changes, or + NULL to watch all properties</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="include_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">whether to include the new property value in the message</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="add_property_notify_watch" c:identifier="gst_element_add_property_notify_watch" version="1.10"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a watch id, which can be used in connection with + gst_element_remove_property_notify_watch() to remove the watch again.</doc> + <type name="gulong" c:type="gulong"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to watch for property changes</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">name of property to watch for changes, or + NULL to watch all properties</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="include_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">whether to include the new property value in the message</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="call_async" c:identifier="gst_element_call_async" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Calls @func from another thread and passes @user_data to it. This is to be +used for cases when a state change has to be performed from a streaming +thread, directly via gst_element_set_state() or indirectly e.g. via SEEK +events. + +Calling those functions directly from the streaming thread will cause +deadlocks in many situations, as they might involve waiting for the +streaming thread to shut down from this very streaming thread. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Function to call asynchronously from another thread</doc> + <type name="ElementCallAsyncFunc" c:type="GstElementCallAsyncFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Data to pass to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">GDestroyNotify for @user_data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="change_state" c:identifier="gst_element_change_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Perform @transition on @element. + +This function must be called with STATE_LOCK held and is mainly used +internally.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstStateChangeReturn of the state transition.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="transition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the requested transition</doc> + <type name="StateChange" c:type="GstStateChange"/> + </parameter> + </parameters> + </method> + <method name="continue_state" c:identifier="gst_element_continue_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Commit the state change of the element and proceed to the next +pending state if any. This function is used +by elements that do asynchronous state changes. +The core will normally call this method automatically when an +element returned %GST_STATE_CHANGE_SUCCESS from the state change function. + +If after calling this method the element still has not reached +the pending state, the next state change is performed. + +This method is used internally and should normally not be called by plugins +or applications. + +This function must be called with STATE_LOCK held.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The result of the commit state change. + +MT safe.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to continue the state change of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The previous state return value</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </parameter> + </parameters> + </method> + <method name="create_all_pads" c:identifier="gst_element_create_all_pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Creates a pad for each pad template that is always available. +This function is only useful during object initialization of +subclasses of #GstElement.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement to create pads for</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="decorate_stream_id" c:identifier="gst_element_decorate_stream_id" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Creates a stream-id for @element by combining the upstream information with +the @stream_id. + +This function generates an unique stream-id by getting the upstream +stream-start event stream ID and appending @stream_id to it. If the element +has no sinkpad it will generate an upstream stream-id by doing an URI query +on the element and in the worst case just uses a random number. Source +elements that don't implement the URI handler interface should ideally +generate a unique, deterministic stream-id manually instead. + +Since stream IDs are sorted alphabetically, any numbers in the stream ID +should be printed with a fixed number of characters, preceded by 0's, such as +by using the format \%03u instead of \%u.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A stream-id for @element.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The #GstElement to create a stream-id for</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="stream_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The stream-id</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="decorate_stream_id_printf" c:identifier="gst_element_decorate_stream_id_printf" version="1.24" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Creates a stream-id for @element by combining the upstream information with +the @format. + +This function generates an unique stream-id by getting the upstream +stream-start event stream ID and appending the stream-id to it. If the element +has no sinkpad it will generate an upstream stream-id by doing an URI query +on the element and in the worst case just uses a random number. Source +elements that don't implement the URI handler interface should ideally +generate a unique, deterministic stream-id manually instead. + +Since stream IDs are sorted alphabetically, any numbers in the stream ID +should be printed with a fixed number of characters, preceded by 0's, such as +by using the format \%03u instead of \%u.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A stream-id for @element.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The #GstElement to create a stream-id for</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The stream-id</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <varargs/> + </parameter> + </parameters> + </method> + <method name="decorate_stream_id_printf_valist" c:identifier="gst_element_decorate_stream_id_printf_valist" version="1.24" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Creates a stream-id for @element by combining the upstream information with +the @format. + +This function generates an unique stream-id by getting the upstream +stream-start event stream ID and appending @format to it. If the element +has no sinkpad it will generate an upstream stream-id by doing an URI query +on the element and in the worst case just uses a random number. Source +elements that don't implement the URI handler interface should ideally +generate a unique, deterministic stream-id manually instead. + +Since stream IDs are sorted alphabetically, any numbers in the stream ID +should be printed with a fixed number of characters, preceded by 0's, such as +by using the format \%03u instead of \%u.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A stream-id for @element.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The #GstElement to create a stream-id for</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The stream-id</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">parameters for the @format string</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="foreach_pad" c:identifier="gst_element_foreach_pad" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Call @func with @user_data for each of @element's pads. @func will be called +exactly once for each pad that exists at the time of this call, unless +one of the calls to @func returns %FALSE in which case we will stop +iterating pads and return early. If new pads are added or pads are removed +while pads are being iterated, this will not be taken into account until +next time this function is used.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%FALSE if @element had no pads or if one of the calls to @func + returned %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to iterate pads of</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">function to call for each pad</doc> + <type name="ElementForeachPadFunc" c:type="GstElementForeachPadFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">user data passed to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="foreach_sink_pad" c:identifier="gst_element_foreach_sink_pad" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Call @func with @user_data for each of @element's sink pads. @func will be +called exactly once for each sink pad that exists at the time of this call, +unless one of the calls to @func returns %FALSE in which case we will stop +iterating pads and return early. If new sink pads are added or sink pads +are removed while the sink pads are being iterated, this will not be taken +into account until next time this function is used.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%FALSE if @element had no sink pads or if one of the calls to @func + returned %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to iterate sink pads of</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">function to call for each sink pad</doc> + <type name="ElementForeachPadFunc" c:type="GstElementForeachPadFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">user data passed to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="foreach_src_pad" c:identifier="gst_element_foreach_src_pad" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Call @func with @user_data for each of @element's source pads. @func will be +called exactly once for each source pad that exists at the time of this call, +unless one of the calls to @func returns %FALSE in which case we will stop +iterating pads and return early. If new source pads are added or source pads +are removed while the source pads are being iterated, this will not be taken +into account until next time this function is used.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%FALSE if @element had no source pads or if one of the calls + to @func returned %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to iterate source pads of</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">function to call for each source pad</doc> + <type name="ElementForeachPadFunc" c:type="GstElementForeachPadFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">user data passed to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="get_base_time" c:identifier="gst_element_get_base_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Returns the base time of the element. The base time is the +absolute time of the clock when this element was last put to +PLAYING. Subtracting the base time from the clock time gives +the running time of the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the base time of the element. + +MT safe.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_bus" c:identifier="gst_element_get_bus"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Returns the bus of the element. Note that only a #GstPipeline will provide a +bus for the application.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the element's #GstBus. unref after +usage. + +MT safe.</doc> + <type name="Bus" c:type="GstBus*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to get the bus of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_clock" c:identifier="gst_element_get_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Gets the currently configured clock of the element. This is the clock as was +last set with gst_element_set_clock(). + +Elements in a pipeline will only have their clock set when the +pipeline is in the PLAYING state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstClock of the element. unref after usage. + +MT safe.</doc> + <type name="Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to get the clock of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_compatible_pad" c:identifier="gst_element_get_compatible_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Looks for an unlinked pad to which the given pad can link. It is not +guaranteed that linking the pads will work, though it should work in most +cases. + +This function will first attempt to find a compatible unlinked ALWAYS pad, +and if none can be found, it will request a compatible REQUEST pad by looking +at the templates of @element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstPad to which a link + can be made, or %NULL if one cannot be found. gst_object_unref() + after usage.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement in which the pad should be found.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstPad to find a compatible one for.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstCaps to use as a filter.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="get_compatible_pad_template" c:identifier="gst_element_get_compatible_pad_template"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Retrieves a pad template from @element that is compatible with @compattempl. +Pads from compatible templates can be linked together.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a compatible #GstPadTemplate, + or %NULL if none was found. No unreferencing is necessary.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement to get a compatible pad template for</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="compattempl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstPadTemplate to find a compatible + template for</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + </parameters> + </method> + <method name="get_context" c:identifier="gst_element_get_context" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Gets the context with @context_type set on the element or NULL. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">A #GstContext or NULL</doc> + <type name="Context" c:type="GstContext*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to get the context of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="context_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a name of a context to retrieve</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_context_unlocked" c:identifier="gst_element_get_context_unlocked" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Gets the context with @context_type set on the element or NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">A #GstContext or NULL</doc> + <type name="Context" c:type="GstContext*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to get the context of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="context_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a name of a context to retrieve</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_contexts" c:identifier="gst_element_get_contexts" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Gets the contexts set on the element. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">List of #GstContext</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Context"/> + </type> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the context of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_clock_time" c:identifier="gst_element_get_current_clock_time" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Returns the current clock time of the element, as in, the time of the +element's clock, or GST_CLOCK_TIME_NONE if there is no clock.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the clock time of the element, or GST_CLOCK_TIME_NONE if there is +no clock.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_running_time" c:identifier="gst_element_get_current_running_time" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Returns the running time of the element. The running time is the +element's clock time minus its base time. Will return GST_CLOCK_TIME_NONE +if the element has no clock, or if its base time has not been set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the running time of the element, or GST_CLOCK_TIME_NONE if the +element has no clock or its base time has not been set.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_factory" c:identifier="gst_element_get_factory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves the factory that was used to create this element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstElementFactory used for creating this + element or %NULL if element has not been registered (static element). no refcounting is needed.</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to request the element factory of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_metadata" c:identifier="gst_element_get_metadata" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Get metadata with @key in @klass.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the metadata for @key.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">class to get metadata for</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the key to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_pad_template" c:identifier="gst_element_get_pad_template" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves a padtemplate from @element with the given name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstPadTemplate with the + given name, or %NULL if none was found. No unreferencing is + necessary.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to get the pad template of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the name of the #GstPadTemplate to get.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_pad_template_list" c:identifier="gst_element_get_pad_template_list" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves a list of the pad templates associated with @element. The +list must not be modified by the calling code.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GList of + pad templates.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PadTemplate"/> + </type> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to get pad templates of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_request_pad" c:identifier="gst_element_get_request_pad" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The name of this function is confusing to people learning GStreamer. +gst_element_request_pad_simple() aims at making it more explicit it is +a simplified gst_element_request_pad().</doc> + <doc-deprecated xml:space="preserve">Prefer using gst_element_request_pad_simple() which +provides the exact same functionality.</doc-deprecated> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">requested #GstPad if found, + otherwise %NULL. Release after usage.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to find a request pad of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the name of the request #GstPad to retrieve.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_start_time" c:identifier="gst_element_get_start_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Returns the start time of the element. The start time is the +running time of the clock when this element was last put to PAUSED. + +Usually the start_time is managed by a toplevel element such as +#GstPipeline. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the start time of the element.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_state" c:identifier="gst_element_get_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Gets the state of the element. + +For elements that performed an ASYNC state change, as reported by +gst_element_set_state(), this function will block up to the +specified timeout value for the state change to complete. +If the element completes the state change or goes into +an error, this function returns immediately with a return value of +%GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively. + +For elements that did not return %GST_STATE_CHANGE_ASYNC, this function +returns the current and pending state immediately. + +This function returns %GST_STATE_CHANGE_NO_PREROLL if the element +successfully changed its state but is not able to provide data yet. +This mostly happens for live sources that only produce data in +%GST_STATE_PLAYING. While the state change return is equivalent to +%GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that +some sink elements might not be able to complete their state change because +an element is not producing data to complete the preroll. When setting the +element to playing, the preroll will complete and playback will start.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state + and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the + element is still performing a state change or + %GST_STATE_CHANGE_FAILURE if the last state change failed. + +MT safe.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to get the state of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="state" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a pointer to #GstState to hold the state. + Can be %NULL.</doc> + <type name="State" c:type="GstState*"/> + </parameter> + <parameter name="pending" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a pointer to #GstState to hold the pending + state. Can be %NULL.</doc> + <type name="State" c:type="GstState*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstClockTime to specify the timeout for an async + state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_static_pad" c:identifier="gst_element_get_static_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves a pad from @element by name. This version only retrieves +already-existing (i.e. 'static') pads.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the requested #GstPad if + found, otherwise %NULL. unref after usage. + +MT safe.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to find a static pad of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the name of the static #GstPad to retrieve.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="is_locked_state" c:identifier="gst_element_is_locked_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Checks if the state of an element is locked. +If the state of an element is locked, state changes of the parent don't +affect the element. +This way you can leave currently unused elements inside bins. Just lock their +state before changing the state from #GST_STATE_NULL. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE, if the element's state is locked.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_pads" c:identifier="gst_element_iterate_pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves an iterator of @element's pads. The iterator should +be freed after usage. Also more specialized iterators exists such as +gst_element_iterate_src_pads() or gst_element_iterate_sink_pads(). + +The order of pads returned by the iterator will be the order in which +the pads were added to the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstIterator of #GstPad. + +MT safe.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to iterate pads of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_sink_pads" c:identifier="gst_element_iterate_sink_pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves an iterator of @element's sink pads. + +The order of pads returned by the iterator will be the order in which +the pads were added to the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstIterator of #GstPad. + +MT safe.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_src_pads" c:identifier="gst_element_iterate_src_pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves an iterator of @element's source pads. + +The order of pads returned by the iterator will be the order in which +the pads were added to the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstIterator of #GstPad. + +MT safe.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="link" c:identifier="gst_element_link"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Links @src to @dest. The link must be from source to +destination; the other direction will not be tried. The function looks for +existing pads that aren't linked yet. It will request new pads if necessary. +Such pads need to be released manually when unlinking. +If multiple links are possible, only one is established. + +Make sure you have added your elements to a bin or pipeline with +gst_bin_add() before trying to link them.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the elements could be linked, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement containing the source pad.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstElement containing the destination pad.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <method name="link_filtered" c:identifier="gst_element_link_filtered"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Links @src to @dest using the given caps as filtercaps. +The link must be from source to +destination; the other direction will not be tried. The function looks for +existing pads that aren't linked yet. It will request new pads if necessary. +If multiple links are possible, only one is established. + +Make sure you have added your elements to a bin or pipeline with +gst_bin_add() before trying to link them.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the pads could be linked, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement containing the source pad.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstElement containing the destination pad.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstCaps to filter the link, + or %NULL for no filter.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="link_many" c:identifier="gst_element_link_many" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Chain together a series of elements. Uses gst_element_link(). +Make sure you have added your elements to a bin or pipeline with +gst_bin_add() before trying to link them.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE on success, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element_1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the first #GstElement in the link chain.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="element_2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the second #GstElement in the link chain.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the %NULL-terminated list of elements to link in order.</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="link_pads" c:identifier="gst_element_link_pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Links the two named pads of the source and destination elements. +Side effect is that if one of the pads has no parent, it becomes a +child of the parent of the other element. If they have different +parents, the link fails.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the pads could be linked, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement containing the source pad.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="srcpadname" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the #GstPad in source element + or %NULL for any pad.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstElement containing the destination pad.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="destpadname" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the #GstPad in destination element, +or %NULL for any pad.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="link_pads_filtered" c:identifier="gst_element_link_pads_filtered"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Links the two named pads of the source and destination elements. Side effect +is that if one of the pads has no parent, it becomes a child of the parent of +the other element. If they have different parents, the link fails. If @caps +is not %NULL, makes sure that the caps of the link is a subset of @caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the pads could be linked, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement containing the source pad.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="srcpadname" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the #GstPad in source element + or %NULL for any pad.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstElement containing the destination pad.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="destpadname" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the #GstPad in destination element + or %NULL for any pad.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstCaps to filter the link, + or %NULL for no filter.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="link_pads_full" c:identifier="gst_element_link_pads_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Links the two named pads of the source and destination elements. +Side effect is that if one of the pads has no parent, it becomes a +child of the parent of the other element. If they have different +parents, the link fails. + +Calling gst_element_link_pads_full() with @flags == %GST_PAD_LINK_CHECK_DEFAULT +is the same as calling gst_element_link_pads() and the recommended way of +linking pads with safety checks applied. + +This is a convenience function for gst_pad_link_full().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the pads could be linked, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement containing the source pad.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="srcpadname" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the #GstPad in source element + or %NULL for any pad.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstElement containing the destination pad.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="destpadname" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the #GstPad in destination element, +or %NULL for any pad.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstPadLinkCheck to be performed when linking pads.</doc> + <type name="PadLinkCheck" c:type="GstPadLinkCheck"/> + </parameter> + </parameters> + </method> + <method name="lost_state" c:identifier="gst_element_lost_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Brings the element to the lost state. The current state of the +element is copied to the pending state so that any call to +gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC. + +An ASYNC_START message is posted. If the element was PLAYING, it will +go to PAUSED. The element will be restored to its PLAYING state by +the parent pipeline when it prerolls again. + +This is mostly used for elements that lost their preroll buffer +in the %GST_STATE_PAUSED or %GST_STATE_PLAYING state after a flush, +they will go to their pending state again when a new preroll buffer is +queued. This function can only be called when the element is currently +not in error or an async state change. + +This function is used internally and should normally not be called from +plugins or applications.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement the state is lost of</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="message_full" c:identifier="gst_element_message_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Post an error, warning or info message on the bus from inside an element. + +@type must be of #GST_MESSAGE_ERROR, #GST_MESSAGE_WARNING or +#GST_MESSAGE_INFO. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to send message from</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstMessageType</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + <parameter name="domain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the GStreamer GError domain this message belongs to</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the GError code belonging to the domain</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="text" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">an allocated text string to be used + as a replacement for the default message connected to code, + or %NULL</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="debug" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">an allocated debug message to be + used as a replacement for the default debugging information, + or %NULL</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the source code file where the error was generated</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the source code function where the error was generated</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the source code line where the error was generated</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="message_full_with_details" c:identifier="gst_element_message_full_with_details" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Post an error, warning or info message on the bus from inside an element. + +@type must be of #GST_MESSAGE_ERROR, #GST_MESSAGE_WARNING or +#GST_MESSAGE_INFO.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to send message from</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstMessageType</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + <parameter name="domain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the GStreamer GError domain this message belongs to</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the GError code belonging to the domain</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="text" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">an allocated text string to be used + as a replacement for the default message connected to code, + or %NULL</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="debug" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">an allocated debug message to be + used as a replacement for the default debugging information, + or %NULL</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the source code file where the error was generated</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the source code function where the error was generated</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the source code line where the error was generated</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">optional details structure</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="no_more_pads" c:identifier="gst_element_no_more_pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Use this function to signal that the element does not expect any more pads +to show up in the current pipeline. This function should be called whenever +pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES +pad templates use this in combination with autopluggers to figure out that +the element is done initializing its pads. + +This function emits the #GstElement::no-more-pads signal. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="post_message" c:identifier="gst_element_post_message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Post a message on the element's #GstBus. This function takes ownership of the +message; if you want to access the message after this call, you should add an +additional reference before calling.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the message was successfully posted. The function returns +%FALSE if the element did not have a bus. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement posting the message</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstMessage to post</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </method> + <method name="provide_clock" c:identifier="gst_element_provide_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Get the clock provided by the given element. +> An element is only required to provide a clock in the PAUSED +> state. Some elements can provide a clock in other states.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the GstClock provided by the +element or %NULL if no clock could be provided. Unref after usage. + +MT safe.</doc> + <type name="Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to query</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="query" c:identifier="gst_element_query"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Performs a query on the given element. + +For elements that don't implement a query handler, this function +forwards the query to a random srcpad or to the peer of a +random linked sinkpad of this element. + +Please note that some queries might need a running pipeline to work.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the query could be performed. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to perform the query on.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstQuery.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </method> + <method name="query_convert" c:identifier="gst_element_query_convert"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Queries an element to convert @src_val in @src_format to @dest_format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement to invoke the convert query on.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="src_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstFormat to convert from.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a value to convert.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstFormat to convert to.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a pointer to the result.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="query_duration" c:identifier="gst_element_query_duration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Queries an element (usually top-level pipeline or playbin element) for the +total stream duration in nanoseconds. This query will only work once the +pipeline is prerolled (i.e. reached PAUSED or PLAYING state). The application +will receive an ASYNC_DONE message on the pipeline bus when that is the case. + +If the duration changes for some reason, you will get a DURATION_CHANGED +message on the pipeline bus, in which case you should re-query the duration +using this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement to invoke the duration query on.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstFormat requested</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="duration" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A location in which to store the total duration, or %NULL.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="query_position" c:identifier="gst_element_query_position"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Queries an element (usually top-level pipeline or playbin element) for the +stream position in nanoseconds. This will be a value between 0 and the +stream duration (if the stream duration is known). This query will usually +only work once the pipeline is prerolled (i.e. reached PAUSED or PLAYING +state). The application will receive an ASYNC_DONE message on the pipeline +bus when that is the case. + +If one repeatedly calls this function one can also create a query and reuse +it in gst_element_query().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement to invoke the position query on.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstFormat requested</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="cur" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a location in which to store the current + position, or %NULL.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="release_request_pad" c:identifier="gst_element_release_request_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Makes the element free the previously requested pad as obtained +with gst_element_request_pad(). + +This does not unref the pad. If the pad was created by using +gst_element_request_pad(), gst_element_release_request_pad() needs to be +followed by gst_object_unref() to free the @pad. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to release the request pad of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstPad to release.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="remove_pad" c:identifier="gst_element_remove_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Removes @pad from @element. @pad will be destroyed if it has not been +referenced elsewhere using gst_object_unparent(). + +This function is used by plugin developers and should not be used +by applications. Pads that were dynamically requested from elements +with gst_element_request_pad() should be released with the +gst_element_release_request_pad() function instead. + +Pads are not automatically deactivated so elements should perform the needed +steps to deactivate the pad in case this pad is removed in the PAUSED or +PLAYING state. See gst_pad_set_active() for more information about +deactivating pads. + +The pad and the element should be unlocked when calling this function. + +This function will emit the #GstElement::pad-removed signal on the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the pad could be removed. Can return %FALSE if the +pad does not belong to the provided element. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to remove pad from.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstPad to remove from the element.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="remove_property_notify_watch" c:identifier="gst_element_remove_property_notify_watch" version="1.10"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement being watched for property changes</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="watch_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">watch id to remove</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="request_pad" c:identifier="gst_element_request_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves a request pad from the element according to the provided template. +Pad templates can be looked up using +gst_element_factory_get_static_pad_templates(). + +The pad should be released with gst_element_release_request_pad().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">requested #GstPad if found, + otherwise %NULL. Release after usage.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to find a request pad of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstPadTemplate of which we want a pad of.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the name of the request #GstPad +to retrieve. Can be %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the caps of the pad we want to +request. Can be %NULL.</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="request_pad_simple" c:identifier="gst_element_request_pad_simple" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves a pad from the element by name (e.g. "src_\%d"). This version only +retrieves request pads. The pad should be released with +gst_element_release_request_pad(). + +This method is slower than manually getting the pad template and calling +gst_element_request_pad() if the pads should have a specific name (e.g. +@name is "src_1" instead of "src_\%u"). + +Note that this function was introduced in GStreamer 1.20 in order to provide +a better name to gst_element_get_request_pad(). Prior to 1.20, users +should use gst_element_get_request_pad() which provides the same +functionality.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">requested #GstPad if found, + otherwise %NULL. Release after usage.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to find a request pad of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the name of the request #GstPad to retrieve.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="seek" c:identifier="gst_element_seek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sends a seek event to an element. See gst_event_new_seek() for the details of +the parameters. The seek event is sent to the element using +gst_element_send_event(). + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the event was handled. Flushing seeks will trigger a +preroll, which will emit %GST_MESSAGE_ASYNC_DONE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to send the event to.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The new playback rate</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The format of the seek values</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The optional seek flags.</doc> + <type name="SeekFlags" c:type="GstSeekFlags"/> + </parameter> + <parameter name="start_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The type and flags for the new start position</doc> + <type name="SeekType" c:type="GstSeekType"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The value of the new start position</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="stop_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The type and flags for the new stop position</doc> + <type name="SeekType" c:type="GstSeekType"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The value of the new stop position</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="seek_simple" c:identifier="gst_element_seek_simple"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Simple API to perform a seek on the given element, meaning it just seeks +to the given position relative to the start of the stream. For more complex +operations like segment seeks (e.g. for looping) or changing the playback +rate or seeking relative to the last configured playback segment you should +use gst_element_seek(). + +In a completely prerolled PAUSED or PLAYING pipeline, seeking is always +guaranteed to return %TRUE on a seekable media type or %FALSE when the media +type is certainly not seekable (such as a live stream). + +Some elements allow for seeking in the READY state, in this +case they will store the seek event and execute it when they are put to +PAUSED. If the element supports seek in READY, it will always return %TRUE when +it receives the event in the READY state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the seek operation succeeded. Flushing seeks will trigger a +preroll, which will emit %GST_MESSAGE_ASYNC_DONE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement to seek on</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstFormat to execute the seek in, such as #GST_FORMAT_TIME</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="seek_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">seek options; playback applications will usually want to use + GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT here</doc> + <type name="SeekFlags" c:type="GstSeekFlags"/> + </parameter> + <parameter name="seek_pos" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">position to seek to (relative to the start); if you are doing + a seek in #GST_FORMAT_TIME this value is in nanoseconds - + multiply with #GST_SECOND to convert seconds to nanoseconds or + with #GST_MSECOND to convert milliseconds to nanoseconds.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="send_event" c:identifier="gst_element_send_event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sends an event to an element. If the element doesn't implement an +event handler, the event will be pushed on a random linked sink pad for +downstream events or a random linked source pad for upstream events. + +This function takes ownership of the provided event so you should +gst_event_ref() it if you want to reuse the event after this call. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the event was handled. Events that trigger a preroll (such +as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to send the event to.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstEvent to send to the element.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </method> + <method name="set_base_time" c:identifier="gst_element_set_base_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Set the base time of an element. See gst_element_get_base_time(). + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the base time to set.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_bus" c:identifier="gst_element_set_bus"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the bus of the element. Increases the refcount on the bus. +For internal use only, unless you're testing elements. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the bus of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="bus" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstBus to set.</doc> + <type name="Bus" c:type="GstBus*"/> + </parameter> + </parameters> + </method> + <method name="set_clock" c:identifier="gst_element_set_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the clock for the element. This function increases the +refcount on the clock. Any previously set clock on the object +is unreffed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the element accepted the clock. An element can refuse a +clock when it, for example, is not able to slave its internal clock to the +@clock or when it requires a specific clock to operate. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the clock for.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstClock to set for the element.</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </method> + <method name="set_context" c:identifier="gst_element_set_context"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the context of the element. Increases the refcount of the context. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the context of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstContext to set.</doc> + <type name="Context" c:type="GstContext*"/> + </parameter> + </parameters> + </method> + <method name="set_locked_state" c:identifier="gst_element_set_locked_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">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> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the state was changed, %FALSE if bad parameters were given +or the elements state-locking needed no change.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="locked_state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE to lock the element's state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_start_time" c:identifier="gst_element_set_start_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Set the start time of an element. The start time of the element is the +running time of the element when it last went to the PAUSED state. In READY +or after a flushing seek, it is set to 0. + +Toplevel elements like #GstPipeline will manage the start_time and +base_time on its children. Setting the start_time to #GST_CLOCK_TIME_NONE +on such a toplevel element will disable the distribution of the base_time to +the children and can be useful if the application manages the base_time +itself, for example if you want to synchronize capture from multiple +pipelines, and you can also ensure that the pipelines have the same clock. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the base time to set.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_state" c:identifier="gst_element_set_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the state of the element. This function will try to set the +requested state by going through all the intermediary states and calling +the class's state change function for each. + +This function can return #GST_STATE_CHANGE_ASYNC, in which case the +element will perform the remainder of the state change asynchronously in +another thread. +An application can use gst_element_get_state() to wait for the completion +of the state change or it can wait for a %GST_MESSAGE_ASYNC_DONE or +%GST_MESSAGE_STATE_CHANGED on the bus. + +State changes to %GST_STATE_READY or %GST_STATE_NULL never return +#GST_STATE_CHANGE_ASYNC.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Result of the state change using #GstStateChangeReturn. + +MT safe.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to change state of.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the element's new #GstState.</doc> + <type name="State" c:type="GstState"/> + </parameter> + </parameters> + </method> + <method name="sync_state_with_parent" c:identifier="gst_element_sync_state_with_parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Tries to change the state of the element to the same as its parent. +If this function returns %FALSE, the state of element is undefined.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE, if the element's state could be synced to the parent's state. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="unlink" c:identifier="gst_element_unlink"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Unlinks all source pads of the source element with all sink pads +of the sink element to which they are linked. + +If the link has been made using gst_element_link(), it could have created an +requestpad, which has to be released using gst_element_release_request_pad().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the source #GstElement to unlink.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the sink #GstElement to unlink.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <method name="unlink_many" c:identifier="gst_element_unlink_many" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Unlinks a series of elements. Uses gst_element_unlink().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="element_1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the first #GstElement in the link chain.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="element_2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the second #GstElement in the link chain.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the %NULL-terminated list of elements to unlink in order.</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="unlink_pads" c:identifier="gst_element_unlink_pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Unlinks the two named pads of the source and destination elements. + +This is a convenience function for gst_pad_unlink().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a (transfer none): #GstElement containing the source pad.</doc> + <type name="Element" c:type="GstElement*"/> + </instance-parameter> + <parameter name="srcpadname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the #GstPad in source element.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstElement containing the destination pad.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="destpadname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the #GstPad in destination element.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <field name="object"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="state_lock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Used to serialize execution of gst_element_set_state()</doc> + <type name="GLib.RecMutex" c:type="GRecMutex"/> + </field> + <field name="state_cond"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Used to signal completion of a state change</doc> + <type name="GLib.Cond" c:type="GCond"/> + </field> + <field name="state_cookie"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Used to detect concurrent execution of +gst_element_set_state() and gst_element_get_state()</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="target_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the target state of an element as set by the application</doc> + <type name="State" c:type="GstState"/> + </field> + <field name="current_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the current state of an element</doc> + <type name="State" c:type="GstState"/> + </field> + <field name="next_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the next state of an element, can be #GST_STATE_VOID_PENDING if +the element is in the correct state.</doc> + <type name="State" c:type="GstState"/> + </field> + <field name="pending_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the final state the element should go to, can be +#GST_STATE_VOID_PENDING if the element is in the correct state</doc> + <type name="State" c:type="GstState"/> + </field> + <field name="last_return"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the last return value of an element state change</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </field> + <field name="bus"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the bus of the element. This bus is provided to the element by the +parent element or the application. A #GstPipeline has a bus of its own.</doc> + <type name="Bus" c:type="GstBus*"/> + </field> + <field name="clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the clock of the element. This clock is usually provided to the +element by the toplevel #GstPipeline.</doc> + <type name="Clock" c:type="GstClock*"/> + </field> + <field name="base_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the time of the clock right before the element is set to +PLAYING. Subtracting @base_time from the current clock time in the PLAYING +state will yield the running_time against the clock.</doc> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/> + </field> + <field name="start_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the running_time of the last PAUSED state</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="numpads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">number of pads of the element, includes both source and sink pads.</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">list of pads</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Pad"/> + </type> + </field> + <field name="numsrcpads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">number of source pads of the element.</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="srcpads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">list of source pads</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Pad"/> + </type> + </field> + <field name="numsinkpads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">number of sink pads of the element.</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="sinkpads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">list of sink pads</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Pad"/> + </type> + </field> + <field name="pads_cookie"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">updated whenever the a pad is added or removed</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="contexts"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">list of contexts</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Context"/> + </type> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="no-more-pads" when="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">This signals that the element will not generate more dynamic pads. +Note that this signal will usually be emitted from the context of +the streaming thread.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="pad-added" when="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a new #GstPad has been added to the element. Note that this signal will +usually be emitted from the context of the streaming thread. Also keep in +mind that if you add new elements to the pipeline in the signal handler +you will need to set them to the desired target state with +gst_element_set_state() or gst_element_sync_state_with_parent().</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="new_pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the pad that has been added</doc> + <type name="Pad"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pad-removed" when="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstPad has been removed from the element</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="old_pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the pad that has been removed</doc> + <type name="Pad"/> + </parameter> + </parameters> + </glib:signal> + </class> + <callback name="ElementCallAsyncFunc" c:type="GstElementCallAsyncFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Callback prototype used in #gst_element_call_async</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The #GstElement this function has been called against</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Data passed in the function where that callback has been passed</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="ElementClass" c:type="GstElementClass" glib:is-gtype-struct-for="Element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">GStreamer element class. Override the vmethods to implement the element +functionality.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the parent class structure</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="metadata"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">metadata for elements of this class</doc> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="elementfactory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the #GstElementFactory that creates these elements</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </field> + <field name="padtemplates"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GList of #GstPadTemplate</doc> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </field> + <field name="numpadtemplates"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the number of padtemplates</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="pad_templ_cookie"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">changed whenever the padtemplates change</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="pad_added"> + <callback name="pad_added"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pad_removed"> + <callback name="pad_removed"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="no_more_pads"> + <callback name="no_more_pads"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="request_new_pad"> + <callback name="request_new_pad"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">requested #GstPad if found, + otherwise %NULL. Release after usage.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to find a request pad of.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstPadTemplate of which we want a pad of.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the name of the request #GstPad +to retrieve. Can be %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the caps of the pad we want to +request. Can be %NULL.</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="release_pad"> + <callback name="release_pad"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_state"> + <callback name="get_state"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state + and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the + element is still performing a state change or + %GST_STATE_CHANGE_FAILURE if the last state change failed. + +MT safe.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to get the state of.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="state" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a pointer to #GstState to hold the state. + Can be %NULL.</doc> + <type name="State" c:type="GstState*"/> + </parameter> + <parameter name="pending" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a pointer to #GstState to hold the pending + state. Can be %NULL.</doc> + <type name="State" c:type="GstState*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstClockTime to specify the timeout for an async + state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_state"> + <callback name="set_state"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Result of the state change using #GstStateChangeReturn. + +MT safe.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to change state of.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the element's new #GstState.</doc> + <type name="State" c:type="GstState"/> + </parameter> + </parameters> + </callback> + </field> + <field name="change_state"> + <callback name="change_state"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstStateChangeReturn of the state transition.</doc> + <type name="StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="transition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the requested transition</doc> + <type name="StateChange" c:type="GstStateChange"/> + </parameter> + </parameters> + </callback> + </field> + <field name="state_changed"> + <callback name="state_changed"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="oldstate" transfer-ownership="none"> + <type name="State" c:type="GstState"/> + </parameter> + <parameter name="newstate" transfer-ownership="none"> + <type name="State" c:type="GstState"/> + </parameter> + <parameter name="pending" transfer-ownership="none"> + <type name="State" c:type="GstState"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_bus"> + <callback name="set_bus"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the bus of.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="bus" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstBus to set.</doc> + <type name="Bus" c:type="GstBus*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="provide_clock"> + <callback name="provide_clock"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the GstClock provided by the +element or %NULL if no clock could be provided. Unref after usage. + +MT safe.</doc> + <type name="Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to query</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_clock"> + <callback name="set_clock"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the element accepted the clock. An element can refuse a +clock when it, for example, is not able to slave its internal clock to the +@clock or when it requires a specific clock to operate. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the clock for.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstClock to set for the element.</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="send_event"> + <callback name="send_event"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the event was handled. Events that trigger a preroll (such +as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to send the event to.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstEvent to send to the element.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="query"> + <callback name="query"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the query could be performed. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to perform the query on.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstQuery.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="post_message"> + <callback name="post_message"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">%TRUE if the message was successfully posted. The function returns +%FALSE if the element did not have a bus. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement posting the message</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="message" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstMessage to post</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_context"> + <callback name="set_context"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElement to set the context of.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstContext to set.</doc> + <type name="Context" c:type="GstContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="18"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="add_metadata" c:identifier="gst_element_class_add_metadata"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Set @key with @value as metadata in @klass.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">class to set metadata for</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the key to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the value to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_pad_template" c:identifier="gst_element_class_add_pad_template"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Adds a padtemplate to an element class. This is mainly used in the _class_init +functions of classes. If a pad template with the same name as an already +existing one is added the old one is replaced by the new one. + +@templ's reference count will be incremented, and any floating +reference will be removed (see gst_object_ref_sink())</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstElementClass to add the pad template to.</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstPadTemplate to add to the element class.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + </parameters> + </method> + <method name="add_static_metadata" c:identifier="gst_element_class_add_static_metadata"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Set @key with @value as metadata in @klass. + +Same as gst_element_class_add_metadata(), but @value must be a static string +or an inlined string, as it will not be copied. (GStreamer plugins will +be made resident once loaded, so this function can be used even from +dynamically loaded plugins.)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">class to set metadata for</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the key to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the value to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_static_pad_template" c:identifier="gst_element_class_add_static_pad_template" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Adds a pad template to an element class based on the static pad template +@templ. This is mainly used in the _class_init functions of element +implementations. If a pad template with the same name already exists, +the old one is replaced by the new one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstElementClass to add the pad template to.</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + <parameter name="static_templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">#GstStaticPadTemplate to add as pad template to the element class.</doc> + <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + </parameters> + </method> + <method name="add_static_pad_template_with_gtype" c:identifier="gst_element_class_add_static_pad_template_with_gtype" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Adds a pad template to an element class based on the static pad template +@templ. This is mainly used in the _class_init functions of element +implementations. If a pad template with the same name already exists, +the old one is replaced by the new one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstElementClass to add the pad template to.</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + <parameter name="static_templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">#GstStaticPadTemplate to add as pad template to the element class.</doc> + <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="pad_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The #GType of the pad to create</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_metadata" c:identifier="gst_element_class_get_metadata"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Get metadata with @key in @klass.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the metadata for @key.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">class to get metadata for</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the key to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_pad_template" c:identifier="gst_element_class_get_pad_template"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves a padtemplate from @element_class with the given name. +> If you use this function in the GInstanceInitFunc of an object class +> that has subclasses, make sure to pass the g_class parameter of the +> GInstanceInitFunc here.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GstPadTemplate with the + given name, or %NULL if none was found. No unreferencing is + necessary.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </return-value> + <parameters> + <instance-parameter name="element_class" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElementClass to get the pad template of.</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the name of the #GstPadTemplate to get.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_pad_template_list" c:identifier="gst_element_class_get_pad_template_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Retrieves a list of the pad templates associated with @element_class. The +list must not be modified by the calling code. +> If you use this function in the GInstanceInitFunc of an object class +> that has subclasses, make sure to pass the g_class parameter of the +> GInstanceInitFunc here.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">the #GList of + pad templates.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PadTemplate"/> + </type> + </return-value> + <parameters> + <instance-parameter name="element_class" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">a #GstElementClass to get pad templates of.</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_metadata" c:identifier="gst_element_class_set_metadata"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the detailed information for a #GstElementClass. +> This function is for use in _class_init functions only.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">class to set metadata for</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + <parameter name="longname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The long English name of the element. E.g. "File Sink"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="classification" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">String describing the type of element, as an unordered list +separated with slashes ('/'). See draft-klass.txt of the design docs +for more details and common types. E.g: "Sink/File"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sentence describing the purpose of the element. +E.g: "Write stream to a file"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="author" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Name and contact details of the author(s). Use \n to separate +multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_static_metadata" c:identifier="gst_element_class_set_static_metadata"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sets the detailed information for a #GstElementClass. + +> This function is for use in _class_init functions only. + +Same as gst_element_class_set_metadata(), but @longname, @classification, +@description, and @author must be static strings or inlined strings, as +they will not be copied. (GStreamer plugins will be made resident once +loaded, so this function can be used even from dynamically loaded plugins.)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">class to set metadata for</doc> + <type name="ElementClass" c:type="GstElementClass*"/> + </instance-parameter> + <parameter name="longname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">The long English name of the element. E.g. "File Sink"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="classification" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">String describing the type of element, as an unordered list +separated with slashes ('/'). See draft-klass.txt of the design docs +for more details and common types. E.g: "Sink/File"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Sentence describing the purpose of the element. +E.g: "Write stream to a file"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="author" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Name and contact details of the author(s). Use \n to separate +multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </record> + <class name="ElementFactory" c:symbol-prefix="element_factory" c:type="GstElementFactory" parent="PluginFeature" glib:type-name="GstElementFactory" glib:get-type="gst_element_factory_get_type" glib:type-struct="ElementFactoryClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">#GstElementFactory is used to create instances of elements. A +GstElementFactory can be added to a #GstPlugin as it is also a +#GstPluginFeature. + +Use the gst_element_factory_find() and gst_element_factory_create() +functions to create element instances or use gst_element_factory_make() as a +convenient shortcut. + +The following code example shows you how to create a GstFileSrc element. + +## Using an element factory +|[<!-- language="C" --> + #include <gst/gst.h> + + GstElement *src; + GstElementFactory *srcfactory; + + gst_init (&argc, &argv); + + srcfactory = gst_element_factory_find ("filesrc"); + g_return_if_fail (srcfactory != NULL); + src = gst_element_factory_create (srcfactory, "src"); + g_return_if_fail (src != NULL); + ... +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <function name="find" c:identifier="gst_element_factory_find"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Search for an element factory of the given name. Refs the returned +element factory; caller is responsible for unreffing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">#GstElementFactory if found, +%NULL otherwise</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">name of factory to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="list_filter" c:identifier="gst_element_factory_list_filter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Filter out all the elementfactories in @list that can handle @caps in +the given direction. + +If @subsetonly is %TRUE, then only the elements whose pads templates +are a complete superset of @caps will be returned. Else any element +whose pad templates caps can intersect with @caps will be returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GList of + #GstElementFactory elements that match the given requisites. + Use #gst_plugin_feature_list_free after usage.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="ElementFactory"/> + </type> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GList of + #GstElementFactory to filter</doc> + <type name="GLib.List" c:type="GList*"> + <type name="ElementFactory"/> + </type> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstCaps</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstPadDirection to filter on</doc> + <type name="PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="subsetonly" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">whether to filter on caps subsets or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="list_get_elements" c:identifier="gst_element_factory_list_get_elements"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Get a list of factories that match the given @type. Only elements +with a rank greater or equal to @minrank will be returned. +The list of factories is returned by decreasing rank.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GList of + #GstElementFactory elements. Use gst_plugin_feature_list_free() after + usage.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="ElementFactory"/> + </type> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactoryListType</doc> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </parameter> + <parameter name="minrank" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Minimum rank</doc> + <type name="Rank" c:type="GstRank"/> + </parameter> + </parameters> + </function> + <function name="make" c:identifier="gst_element_factory_make"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Create a new element of the type defined by the given element factory. +If name is %NULL, then the element will receive a guaranteed unique name, +consisting of the element factory name and a number. +If name is given, it will be given the name supplied.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">new #GstElement or %NULL +if unable to create element</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="factoryname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a named factory to instantiate</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">name of new element, or %NULL to automatically create + a unique name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="make_full" c:identifier="gst_element_factory_make_full" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Create a new element of the type defined by the given element factory. +The supplied list of properties, will be passed at object construction.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">new #GstElement or %NULL +if unable to create element</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="factoryname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a named factory to instantiate</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="first" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">name of first property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">%NULL terminated list of properties</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="make_valist" c:identifier="gst_element_factory_make_valist" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Create a new element of the type defined by the given element factory. +The supplied list of properties, will be passed at object construction.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">new #GstElement or %NULL +if unable to create element</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="factoryname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a named factory to instantiate</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="first" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">name of first property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="properties" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">list of properties</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </function> + <function name="make_with_properties" c:identifier="gst_element_factory_make_with_properties" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Create a new element of the type defined by the given elementfactory. +The supplied list of properties, will be passed at object construction.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">new #GstElement or %NULL + if the element couldn't be created</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="factoryname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a named factory to instantiate</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">count of properties</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="names" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">array of properties names</doc> + <array length="1" zero-terminated="0" c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="values" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">array of associated properties values</doc> + <array length="1" zero-terminated="0" c:type="const GValue*"> + <type name="GObject.Value" c:type="GValue"/> + </array> + </parameter> + </parameters> + </function> + <method name="can_sink_all_caps" c:identifier="gst_element_factory_can_sink_all_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Checks if the factory can sink all possible capabilities.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the caps are fully compatible.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">factory to query</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the caps to check</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="can_sink_any_caps" c:identifier="gst_element_factory_can_sink_any_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Checks if the factory can sink any possible capability.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the caps have a common subset.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">factory to query</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the caps to check</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="can_src_all_caps" c:identifier="gst_element_factory_can_src_all_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Checks if the factory can src all possible capabilities.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the caps are fully compatible.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">factory to query</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the caps to check</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="can_src_any_caps" c:identifier="gst_element_factory_can_src_any_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Checks if the factory can src any possible capability.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the caps have a common subset.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">factory to query</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the caps to check</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="create" c:identifier="gst_element_factory_create"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Create a new element of the type defined by the given elementfactory. +It will be given the name supplied, since all elements require a name as +their first argument.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">new #GstElement or %NULL + if the element couldn't be created</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">factory to instantiate</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">name of new element, or %NULL to automatically create + a unique name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="create_full" c:identifier="gst_element_factory_create_full" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Create a new element of the type defined by the given elementfactory. +The supplied list of properties, will be passed at object construction.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">new #GstElement or %NULL + if the element couldn't be created</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">factory to instantiate</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="first" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">name of the first property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">%NULL terminated list of properties</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="create_valist" c:identifier="gst_element_factory_create_valist" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Create a new element of the type defined by the given elementfactory. +The supplied list of properties, will be passed at object construction.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">new #GstElement or %NULL + if the element couldn't be created</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">factory to instantiate</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="first" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">name of the first property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="properties" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">list of properties</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="create_with_properties" c:identifier="gst_element_factory_create_with_properties" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Create a new element of the type defined by the given elementfactory. +The supplied list of properties, will be passed at object construction.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">new #GstElement or %NULL + if the element couldn't be created</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">factory to instantiate</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">count of properties</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="names" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">array of properties names</doc> + <array length="0" zero-terminated="0" c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="values" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">array of associated properties values</doc> + <array length="0" zero-terminated="0" c:type="const GValue*"> + <type name="GObject.Value" c:type="GValue"/> + </array> + </parameter> + </parameters> + </method> + <method name="get_element_type" c:identifier="gst_element_factory_get_element_type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Get the #GType for elements managed by this factory. The type can +only be retrieved if the element factory is loaded, which can be +assured with gst_plugin_feature_load().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">the #GType for elements managed by this factory or 0 if +the factory is not loaded.</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">factory to get managed #GType from</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_metadata" c:identifier="gst_element_factory_get_metadata"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Get the metadata on @factory with @key.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">the metadata with @key on @factory or %NULL +when there was no metadata with the given @key.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactory</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a key</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_metadata_keys" c:identifier="gst_element_factory_get_metadata_keys"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Get the available keys for the metadata on @factory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c"> +a %NULL-terminated array of key strings, or %NULL when there is no +metadata. Free with g_strfreev() when no longer needed.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactory</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_num_pad_templates" c:identifier="gst_element_factory_get_num_pad_templates"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Gets the number of pad_templates in this factory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">the number of pad_templates</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactory</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_skip_documentation" c:identifier="gst_element_factory_get_skip_documentation" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Queries whether registered element managed by @factory needs to +be excluded from documentation system or not.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">%TRUE if documentation should be skipped</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactory to query documentation skip</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_static_pad_templates" c:identifier="gst_element_factory_get_static_pad_templates"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Gets the #GList of #GstStaticPadTemplate for this factory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">the + static pad templates</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="StaticPadTemplate"/> + </type> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactory</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri_protocols" c:identifier="gst_element_factory_get_uri_protocols"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Gets a %NULL-terminated array of protocols this element supports or %NULL if +no protocols are supported. You may not change the contents of the returned +array, as it is still owned by the element factory. Use g_strdupv() to +make a copy of the protocol string array if you need to.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">the supported protocols + or %NULL</doc> + <array c:type="const gchar* const*"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactory</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri_type" c:identifier="gst_element_factory_get_uri_type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">type of URIs this element supports</doc> + <type name="URIType" c:type="GstURIType"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactory</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_interface" c:identifier="gst_element_factory_has_interface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Check if @factory implements the interface with name @interfacename.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">%TRUE when @factory implement the interface.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactory</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="interfacename" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">an interface name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="list_is_type" c:identifier="gst_element_factory_list_is_type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">Check if @factory is of the given types.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">%TRUE if @factory is of @type.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactory</doc> + <type name="ElementFactory" c:type="GstElementFactory*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelementfactory.c">a #GstElementFactoryListType</doc> + <type name="ElementFactoryListType" c:type="GstElementFactoryListType"/> + </parameter> + </parameters> + </method> + </class> + <record name="ElementFactoryClass" c:type="GstElementFactoryClass" disguised="1" glib:is-gtype-struct-for="ElementFactory"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + </record> + <bitfield name="ElementFlags" glib:type-name="GstElementFlags" glib:get-type="gst_element_flags_get_type" c:type="GstElementFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The standard flags that an element may have.</doc> + <member name="locked_state" value="16" c:identifier="GST_ELEMENT_FLAG_LOCKED_STATE" glib:nick="locked-state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">ignore state changes from parent</doc> + </member> + <member name="sink" value="32" c:identifier="GST_ELEMENT_FLAG_SINK" glib:nick="sink"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element is a sink</doc> + </member> + <member name="source" value="64" c:identifier="GST_ELEMENT_FLAG_SOURCE" glib:nick="source"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element is a source.</doc> + </member> + <member name="provide_clock" value="128" c:identifier="GST_ELEMENT_FLAG_PROVIDE_CLOCK" glib:nick="provide-clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element can provide a clock</doc> + </member> + <member name="require_clock" value="256" c:identifier="GST_ELEMENT_FLAG_REQUIRE_CLOCK" glib:nick="require-clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element requires a clock</doc> + </member> + <member name="indexable" value="512" c:identifier="GST_ELEMENT_FLAG_INDEXABLE" glib:nick="indexable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element can use an index</doc> + </member> + <member name="last" value="16384" c:identifier="GST_ELEMENT_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">offset to define more flags</doc> + </member> + </bitfield> + <callback name="ElementForeachPadFunc" c:type="GstElementForeachPadFunc" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Function called for each pad when using gst_element_foreach_sink_pad(), +gst_element_foreach_src_pad(), or gst_element_foreach_pad().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">%FALSE to stop iterating pads, %TRUE to continue</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the #GstElement</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">user data passed to the foreach function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="Event" c:type="GstEvent" glib:type-name="GstEvent" glib:get-type="gst_event_get_type" c:symbol-prefix="event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event class provides factory methods to construct events for sending +and functions to query (parse) received events. + +Events are usually created with gst_event_new_*() which takes event-type +specific parameters as arguments. +To send an event application will usually use gst_element_send_event() and +elements will use gst_pad_send_event() or gst_pad_push_event(). +The event should be unreffed with gst_event_unref() if it has not been sent. + +Events that have been received can be parsed with their respective +gst_event_parse_*() functions. It is valid to pass %NULL for unwanted details. + +Events are passed between elements in parallel to the data stream. Some events +are serialized with buffers, others are not. Some events only travel downstream, +others only upstream. Some events can travel both upstream and downstream. + +The events are used to signal special conditions in the datastream such as +EOS (end of stream) or the start of a new stream-segment. +Events are also used to flush the pipeline of any pending data. + +Most of the event API is used inside plugins. Applications usually only +construct and use seek events. +To do that gst_event_new_seek() is used to create a seek event. It takes +the needed parameters to specify seeking time and mode. +|[<!-- language="C" --> + GstEvent *event; + gboolean result; + ... + // construct a seek event to play the media from second 2 to 5, flush + // the pipeline to decrease latency. + event = gst_event_new_seek (1.0, + GST_FORMAT_TIME, + GST_SEEK_FLAG_FLUSH, + GST_SEEK_TYPE_SET, 2 * GST_SECOND, + GST_SEEK_TYPE_SET, 5 * GST_SECOND); + ... + result = gst_element_send_event (pipeline, event); + if (!result) + g_warning ("seek failed"); + ... +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <field name="mini_object" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the parent structure</doc> + <type name="MiniObject" c:type="GstMiniObject"/> + </field> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the #GstEventType of the event</doc> + <type name="EventType" c:type="GstEventType"/> + </field> + <field name="timestamp" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the timestamp of the event</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="seqnum" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">the sequence number of the event</doc> + <type name="guint32" c:type="guint32"/> + </field> + <constructor name="new_buffer_size" c:identifier="gst_event_new_buffer_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new buffersize event. The event is sent downstream and notifies +elements that they should provide a buffer of the specified dimensions. + +When the @async flag is set, a thread boundary is preferred.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">buffer format</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="minsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">minimum buffer size</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="maxsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">maximum buffer size</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="async" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">thread behavior</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_caps" c:identifier="gst_event_new_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new CAPS event for @caps. The caps event can only travel downstream +synchronized with the buffer flow and contains the format of the buffers +that will follow after the event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new CAPS event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_custom" c:identifier="gst_event_new_custom"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new custom-typed event. This can be used for anything not +handled by other event-specific functions to pass an event to another +element. + +Make sure to allocate an event type with the #GST_EVENT_MAKE_TYPE macro, +assigning a free number and filling in the correct direction and +serialization flags. + +New custom events can also be created by subclassing the event type if +needed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new custom event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The type of the new event</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + <parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the structure for the event. The event will + take ownership of the structure.</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_eos" c:identifier="gst_event_new_eos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new EOS event. The eos event can only travel downstream +synchronized with the buffer flow. Elements that receive the EOS +event on a pad can return #GST_FLOW_EOS as a #GstFlowReturn +when data after the EOS event arrives. + +The EOS event will travel down to the sink elements in the pipeline +which will then post the #GST_MESSAGE_EOS on the bus after they have +finished playing any buffered data. + +When all sinks have posted an EOS message, an EOS message is +forwarded to the application. + +The EOS event itself will not cause any state transitions of the pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new EOS event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + </constructor> + <constructor name="new_flush_start" c:identifier="gst_event_new_flush_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Allocate a new flush start event. The flush start event can be sent +upstream and downstream and travels out-of-bounds with the dataflow. + +It marks pads as being flushing and will make them return +#GST_FLOW_FLUSHING when used for data flow with gst_pad_push(), +gst_pad_chain(), gst_pad_get_range() and gst_pad_pull_range(). +Any event (except a #GST_EVENT_FLUSH_STOP) received +on a flushing pad will return %FALSE immediately. + +Elements should unlock any blocking functions and exit their streaming +functions as fast as possible when this event is received. + +This event is typically generated after a seek to flush out all queued data +in the pipeline so that the new media is played as soon as possible.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new flush start event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + </constructor> + <constructor name="new_flush_stop" c:identifier="gst_event_new_flush_stop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Allocate a new flush stop event. The flush stop event can be sent +upstream and downstream and travels serialized with the dataflow. +It is typically sent after sending a FLUSH_START event to make the +pads accept data again. + +Elements can process this event synchronized with the dataflow since +the preceding FLUSH_START event stopped the dataflow. + +This event is typically generated to complete a seek and to resume +dataflow.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new flush stop event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="reset_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">if time should be reset</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_gap" c:identifier="gst_event_new_gap"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new GAP event. A gap event can be thought of as conceptually +equivalent to a buffer to signal that there is no data for a certain +amount of time. This is useful to signal a gap to downstream elements +which may wait for data, such as muxers or mixers or overlays, especially +for sparse streams such as subtitle streams.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new GAP event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the start time (pts) of the gap</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the duration of the gap</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_instant_rate_change" c:identifier="gst_event_new_instant_rate_change" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new instant-rate-change event. This event is sent by seek +handlers (e.g. demuxers) when receiving a seek with the +%GST_SEEK_FLAG_INSTANT_RATE_CHANGE and signals to downstream elements that +the playback rate in the existing segment should be immediately multiplied +by the @rate_multiplier factor. + +The flags provided replace any flags in the existing segment, for the +flags within the %GST_SEGMENT_INSTANT_FLAGS set. Other GstSegmentFlags +are ignored and not transferred in the event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new instant-rate-change event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="rate_multiplier" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the multiplier to be applied to the playback rate</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="new_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A new subset of segment flags to replace in segments</doc> + <type name="SegmentFlags" c:type="GstSegmentFlags"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_instant_rate_sync_time" c:identifier="gst_event_new_instant_rate_sync_time" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new instant-rate-sync-time event. This event is sent by the +pipeline to notify elements handling the instant-rate-change event about +the running-time when the new rate should be applied. The running time +may be in the past when elements handle this event, which can lead to +switching artifacts. The magnitude of those depends on the exact timing +of event delivery to each element and the magnitude of the change in +playback rate being applied. + +The @running_time and @upstream_running_time are the same if this +is the first instant-rate adjustment, but will differ for later ones +to compensate for the accumulated offset due to playing at a rate +different to the one indicated in the playback segments.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new instant-rate-sync-time event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="rate_multiplier" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new playback rate multiplier to be applied</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="running_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Running time when the rate change should be applied</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="upstream_running_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The upstream-centric running-time when the + rate change should be applied.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_latency" c:identifier="gst_event_new_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new latency event. The event is sent upstream from the sinks and +notifies elements that they should add an additional @latency to the +running time before synchronising against the clock. + +The latency is mostly used in live sinks and is always expressed in +the time format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new latency value</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_navigation" c:identifier="gst_event_new_navigation"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new navigation event from the given description.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">description of the event. The event will take + ownership of the structure. See #GstNavigation for more specific + constructors.</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_protection" c:identifier="gst_event_new_protection" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Creates a new event containing information specific to a particular +protection system (uniquely identified by @system_id), by which that +protection system can acquire key(s) to decrypt a protected stream. + +In order for a decryption element to decrypt media +protected using a specific system, it first needs all the +protection system specific information necessary to acquire the decryption +key(s) for that stream. The functions defined here enable this information +to be passed in events from elements that extract it +(e.g., ISOBMFF demuxers, MPEG DASH demuxers) to protection decrypter +elements that use it. + +Events containing protection system specific information are created using +#gst_event_new_protection, and they can be parsed by downstream elements +using #gst_event_parse_protection. + +In Common Encryption, protection system specific information may be located +within ISOBMFF files, both in movie (moov) boxes and movie fragment (moof) +boxes; it may also be contained in ContentProtection elements within MPEG +DASH MPDs. The events created by #gst_event_new_protection contain data +identifying from which of these locations the encapsulated protection system +specific information originated. This origin information is required as +some protection systems use different encodings depending upon where the +information originates. + +The events returned by gst_event_new_protection() are implemented +in such a way as to ensure that the most recently-pushed protection info +event of a particular @origin and @system_id will +be stuck to the output pad of the sending element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GST_EVENT_PROTECTION event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="system_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a string holding a UUID that uniquely +identifies a protection system.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstBuffer holding protection system specific +information. The reference count of the buffer will be incremented by one.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="origin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a string indicating where the protection +information carried in the event was extracted from. The allowed values +of this string will depend upon the protection scheme.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_qos" c:identifier="gst_event_new_qos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Allocate a new qos event with the given values. +The QOS event is generated in an element that wants an upstream +element to either reduce or increase its rate because of +high/low CPU load or other resource usage such as network performance or +throttling. Typically sinks generate these events for each buffer +they receive. + +@type indicates the reason for the QoS event. #GST_QOS_TYPE_OVERFLOW is +used when a buffer arrived in time or when the sink cannot keep up with +the upstream datarate. #GST_QOS_TYPE_UNDERFLOW is when the sink is not +receiving buffers fast enough and thus has to drop late buffers. +#GST_QOS_TYPE_THROTTLE is used when the datarate is artificially limited +by the application, for example to reduce power consumption. + +@proportion indicates the real-time performance of the streaming in the +element that generated the QoS event (usually the sink). The value is +generally computed based on more long term statistics about the streams +timestamps compared to the clock. +A value < 1.0 indicates that the upstream element is producing data faster +than real-time. A value > 1.0 indicates that the upstream element is not +producing data fast enough. 1.0 is the ideal @proportion value. The +proportion value can safely be used to lower or increase the quality of +the element. + +@diff is the difference against the clock in running time of the last +buffer that caused the element to generate the QOS event. A negative value +means that the buffer with @timestamp arrived in time. A positive value +indicates how late the buffer with @timestamp was. When throttling is +enabled, @diff will be set to the requested throttling interval. + +@timestamp is the timestamp of the last buffer that cause the element +to generate the QOS event. It is expressed in running time and thus an ever +increasing value. + +The upstream element can use the @diff and @timestamp values to decide +whether to process more buffers. For positive @diff, all buffers with +timestamp <= @timestamp + @diff will certainly arrive late in the sink +as well. A (negative) @diff value so that @timestamp + @diff would yield a +result smaller than 0 is not allowed. + +The application can use general event probes to intercept the QoS +event and implement custom application specific QoS handling.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new QOS event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the QoS type</doc> + <type name="QOSType" c:type="GstQOSType"/> + </parameter> + <parameter name="proportion" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the proportion of the qos message</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="diff" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The time difference of the last Clock sync</doc> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The timestamp of the buffer</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_reconfigure" c:identifier="gst_event_new_reconfigure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new reconfigure event. The purpose of the reconfigure event is +to travel upstream and make elements renegotiate their caps or reconfigure +their buffer pools. This is useful when changing properties on elements +or changing the topology of the pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + </constructor> + <constructor name="new_seek" c:identifier="gst_event_new_seek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Allocate a new seek event with the given parameters. + +The seek event configures playback of the pipeline between @start to @stop +at the speed given in @rate, also called a playback segment. +The @start and @stop values are expressed in @format. + +A @rate of 1.0 means normal playback rate, 2.0 means double speed. +Negatives values means backwards playback. A value of 0.0 for the +rate is not allowed and should be accomplished instead by PAUSING the +pipeline. + +A pipeline has a default playback segment configured with a start +position of 0, a stop position of -1 and a rate of 1.0. The currently +configured playback segment can be queried with #GST_QUERY_SEGMENT. + +@start_type and @stop_type specify how to adjust the currently configured +start and stop fields in playback segment. Adjustments can be made relative +or absolute to the last configured values. A type of #GST_SEEK_TYPE_NONE +means that the position should not be updated. + +When the rate is positive and @start has been updated, playback will start +from the newly configured start position. + +For negative rates, playback will start from the newly configured stop +position (if any). If the stop position is updated, it must be different from +-1 (#GST_CLOCK_TIME_NONE) for negative rates. + +It is not possible to seek relative to the current playback position, to do +this, PAUSE the pipeline, query the current playback position with +#GST_QUERY_POSITION and update the playback segment current position with a +#GST_SEEK_TYPE_SET to the desired position.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new seek event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The new playback rate</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The format of the seek values</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The optional seek flags</doc> + <type name="SeekFlags" c:type="GstSeekFlags"/> + </parameter> + <parameter name="start_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The type and flags for the new start position</doc> + <type name="SeekType" c:type="GstSeekType"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The value of the new start position</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="stop_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The type and flags for the new stop position</doc> + <type name="SeekType" c:type="GstSeekType"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The value of the new stop position</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_segment" c:identifier="gst_event_new_segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new SEGMENT event for @segment. The segment event can only travel +downstream synchronized with the buffer flow and contains timing information +and playback properties for the buffers that will follow. + +The segment event marks the range of buffers to be processed. All +data not within the segment range is not to be processed. This can be +used intelligently by plugins to apply more efficient methods of skipping +unneeded data. The valid range is expressed with the @start and @stop +values. + +The time value of the segment is used in conjunction with the start +value to convert the buffer timestamps into the stream time. This is +usually done in sinks to report the current stream_time. +@time represents the stream_time of a buffer carrying a timestamp of +@start. @time cannot be -1. + +@start cannot be -1, @stop can be -1. If there +is a valid @stop given, it must be greater or equal the @start, including +when the indicated playback @rate is < 0. + +The @applied_rate value provides information about any rate adjustment that +has already been made to the timestamps and content on the buffers of the +stream. (@rate * @applied_rate) should always equal the rate that has been +requested for playback. For example, if an element has an input segment +with intended playback @rate of 2.0 and applied_rate of 1.0, it can adjust +incoming timestamps and buffer content by half and output a segment event +with @rate of 1.0 and @applied_rate of 2.0 + +After a segment event, the buffer stream time is calculated with: + + time + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new SEGMENT event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstSegment</doc> + <type name="Segment" c:type="const GstSegment*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_segment_done" c:identifier="gst_event_new_segment_done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new segment-done event. This event is sent by elements that +finish playback of a segment as a result of a segment seek.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The format of the position being done</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The position of the segment being done</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_select_streams" c:identifier="gst_event_new_select_streams" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Allocate a new select-streams event. + +The select-streams event requests the specified @streams to be activated. + +The list of @streams corresponds to the "Stream ID" of each stream to be +activated. Those ID can be obtained via the #GstStream objects present +in #GST_EVENT_STREAM_START, #GST_EVENT_STREAM_COLLECTION or +#GST_MESSAGE_STREAM_COLLECTION. + +Note: The list of @streams can not be empty.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new select-streams event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="streams" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the list of streams to +activate</doc> + <type name="GLib.List" c:type="GList*"> + <type name="utf8"/> + </type> + </parameter> + </parameters> + </constructor> + <constructor name="new_sink_message" c:identifier="gst_event_new_sink_message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new sink-message event. The purpose of the sink-message event is +to instruct a sink to post the message contained in the event synchronized +with the stream. + +@name is used to store multiple sticky events on one pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a name for the event</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the #GstMessage to be posted</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_step" c:identifier="gst_event_new_step"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new step event. The purpose of the step event is to instruct a sink +to skip @amount (expressed in @format) of media. It can be used to implement +stepping through the video frame by frame or for doing fast trick modes. + +A rate of <= 0.0 is not allowed. Pause the pipeline, for the effect of rate += 0.0 or first reverse the direction of playback using a seek event to get +the same effect as rate < 0.0. + +The @flush flag will clear any pending data in the pipeline before starting +the step operation. + +The @intermediate flag instructs the pipeline that this step operation is +part of a larger step operation.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the format of @amount</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="amount" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the amount of data to step</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the step rate</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="flush" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">flushing steps</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="intermediate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">intermediate steps</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_stream_collection" c:identifier="gst_event_new_stream_collection" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new STREAM_COLLECTION event. The stream collection event can only +travel downstream synchronized with the buffer flow. + +Source elements, demuxers and other elements that manage collections +of streams and post #GstStreamCollection messages on the bus also send +this event downstream on each pad involved in the collection, so that +activation of a new collection can be tracked through the downstream +data flow.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new STREAM_COLLECTION event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="collection" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Active collection for this data flow</doc> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_stream_group_done" c:identifier="gst_event_new_stream_group_done" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new Stream Group Done event. The stream-group-done event can +only travel downstream synchronized with the buffer flow. Elements +that receive the event on a pad should handle it mostly like EOS, +and emit any data or pending buffers that would depend on more data +arriving and unblock, since there won't be any more data. + +This event is followed by EOS at some point in the future, and is +generally used when switching pads - to unblock downstream so that +new pads can be exposed before sending EOS on the existing pads.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new stream-group-done event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="group_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the group id of the stream group which is ending</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_stream_start" c:identifier="gst_event_new_stream_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Create a new STREAM_START event. The stream start event can only +travel downstream synchronized with the buffer flow. It is expected +to be the first event that is sent for a new stream. + +Source elements, demuxers and other elements that create new streams +are supposed to send this event as the first event of a new stream. It +should not be sent after a flushing seek or in similar situations +and is used to mark the beginning of a new logical stream. Elements +combining multiple streams must ensure that this event is only forwarded +downstream once and not for every single input stream. + +The @stream_id should be a unique string that consists of the upstream +stream-id, / as separator and a unique stream-id for this specific +stream. A new stream-id should only be created for a stream if the upstream +stream is split into (potentially) multiple new streams, e.g. in a demuxer, +but not for every single element in the pipeline. +gst_pad_create_stream_id() or gst_pad_create_stream_id_printf() can be +used to create a stream-id. There are no particular semantics for the +stream-id, though it should be deterministic (to support stream matching) +and it might be used to order streams (besides any information conveyed by +stream flags).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new STREAM_START event.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="stream_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Identifier for this stream</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_tag" c:identifier="gst_event_new_tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Generates a metadata tag event from the given @taglist. + +The scope of the taglist specifies if the taglist applies to the +complete medium or only to this specific stream. As the tag event +is a sticky event, elements should merge tags received from +upstream with a given scope with their own tags with the same +scope and create a new tag event from it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="taglist" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">metadata list. The event will take ownership + of the taglist.</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_toc" c:identifier="gst_event_new_toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Generate a TOC event from the given @toc. The purpose of the TOC event is to +inform elements that some kind of the TOC was found.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="toc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">#GstToc structure.</doc> + <type name="Toc" c:type="GstToc*"/> + </parameter> + <parameter name="updated" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">whether @toc was updated or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_toc_select" c:identifier="gst_event_new_toc_select"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Generate a TOC select event with the given @uid. The purpose of the +TOC select event is to start playback based on the TOC's entry with the +given @uid.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a new #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="uid" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">UID in the TOC to start playback from.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="copy" c:identifier="gst_event_copy" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Copy the event using the event specific copy function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the new event</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to copy</doc> + <type name="Event" c:type="const GstEvent*"/> + </instance-parameter> + </parameters> + </method> + <method name="copy_segment" c:identifier="gst_event_copy_segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parses a segment @event and copies the #GstSegment into the location +given by @segment.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to parse</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a pointer to a #GstSegment</doc> + <type name="Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </method> + <method name="get_running_time_offset" c:identifier="gst_event_get_running_time_offset" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Retrieve the accumulated running time offset of the event. + +Events passing through #GstPads that have a running time +offset set via gst_pad_set_offset() will get their offset +adjusted according to the pad's offset. + +If the event contains any information that related to the +running time, this information will need to be updated +before usage with this offset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event's running time offset + +MT safe.</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_seqnum" c:identifier="gst_event_get_seqnum"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Retrieve the sequence number of a event. + +Events have ever-incrementing sequence numbers, which may also be set +explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to +indicate that a event corresponds to some other set of events or messages, +for example an EOS event corresponding to a SEEK event. It is considered good +practice to make this correspondence when possible, though it is not +required. + +Note that events and messages share the same sequence number incrementor; +two events or messages will never have the same sequence number unless +that correspondence was made explicitly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event's sequence number. + +MT safe.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_structure" c:identifier="gst_event_get_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Access the structure of the event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The structure of the event. The +structure is still owned by the event, which means that you should not free +it and that the pointer becomes invalid when you free the event. + +MT safe.</doc> + <type name="Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_name" c:identifier="gst_event_has_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Checks if @event has the given @name. This function is usually used to +check the name of a custom event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">%TRUE if @name matches the name of the event structure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">name to check</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="has_name_id" c:identifier="gst_event_has_name_id" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Checks if @event has the given @name. This function is usually used to +check the name of a custom event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">%TRUE if @name matches the name of the event structure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">name to check as a GQuark</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </method> + <method name="parse_buffer_size" c:identifier="gst_event_parse_buffer_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Get the format, minsize, maxsize and async-flag in the buffersize event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to query</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to store the format in</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="minsize" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to store the minsize in</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="maxsize" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to store the maxsize in</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="async" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to store the async-flag in</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_caps" c:identifier="gst_event_parse_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Get the caps from @event. The caps remains valid as long as @event remains +valid.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to parse</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="caps" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to the caps</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + </parameters> + </method> + <method name="parse_flush_stop" c:identifier="gst_event_parse_flush_stop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parse the FLUSH_STOP event and retrieve the @reset_time member.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to parse</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="reset_time" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">if time should be reset</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_gap" c:identifier="gst_event_parse_gap"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Extract timestamp and duration from a new GAP event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEvent of type #GST_EVENT_GAP</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="timestamp" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">location where to store the + start time (pts) of the gap, or %NULL</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="duration" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">location where to store the duration of + the gap, or %NULL</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="parse_gap_flags" c:identifier="gst_event_parse_gap_flags" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Retrieve the gap flags that may have been set on a gap event with +gst_event_set_gap_flags().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEvent of type #GST_EVENT_GAP</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstGapFlags or %NULL</doc> + <type name="GapFlags" c:type="GstGapFlags*"/> + </parameter> + </parameters> + </method> + <method name="parse_group_id" c:identifier="gst_event_parse_group_id" version="1.2"> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">%TRUE if a group id was set on the event and could be parsed, + %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a stream-start event</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="group_id" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">address of variable where to store the group id</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="parse_instant_rate_change" c:identifier="gst_event_parse_instant_rate_change" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Extract rate and flags from an instant-rate-change event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEvent of type #GST_EVENT_INSTANT_RATE_CHANGE</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="rate_multiplier" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">location in which to store the rate + multiplier of the instant-rate-change event, or %NULL</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="new_flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">location in which to store the new + segment flags of the instant-rate-change event, or %NULL</doc> + <type name="SegmentFlags" c:type="GstSegmentFlags*"/> + </parameter> + </parameters> + </method> + <method name="parse_instant_rate_sync_time" c:identifier="gst_event_parse_instant_rate_sync_time" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Extract the rate multiplier and running times from an instant-rate-sync-time event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEvent of type #GST_EVENT_INSTANT_RATE_CHANGE</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="rate_multiplier" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">location where to store the rate of + the instant-rate-sync-time event, or %NULL</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="running_time" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">location in which to store the running time + of the instant-rate-sync-time event, or %NULL</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="upstream_running_time" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">location in which to store the + upstream running time of the instant-rate-sync-time event, or %NULL</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="parse_latency" c:identifier="gst_event_parse_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Get the latency in the latency event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to query</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="latency" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to store the latency in.</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="parse_protection" c:identifier="gst_event_parse_protection" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parses an event containing protection system specific information and stores +the results in @system_id, @data and @origin. The data stored in @system_id, +@origin and @data are valid until @event is released.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GST_EVENT_PROTECTION event.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="system_id" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to store the UUID +string uniquely identifying a content protection system.</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to store a #GstBuffer +holding protection system specific information.</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="origin" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to store a value that +indicates where the protection information carried by @event was extracted +from.</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_qos" c:identifier="gst_event_parse_qos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Get the type, proportion, diff and timestamp in the qos event. See +gst_event_new_qos() for more information about the different QoS values. + +@timestamp will be adjusted for any pad offsets of pads it was passing through.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to query</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to store the QoS type in</doc> + <type name="QOSType" c:type="GstQOSType*"/> + </parameter> + <parameter name="proportion" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to store the proportion in</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="diff" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to store the diff in</doc> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/> + </parameter> + <parameter name="timestamp" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A pointer to store the timestamp in</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="parse_seek" c:identifier="gst_event_parse_seek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parses a seek @event and stores the results in the given result locations.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a seek event</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="rate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">result location for the rate</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">result location for the stream format</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">result location for the #GstSeekFlags</doc> + <type name="SeekFlags" c:type="GstSeekFlags*"/> + </parameter> + <parameter name="start_type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">result location for the #GstSeekType of the start position</doc> + <type name="SeekType" c:type="GstSeekType*"/> + </parameter> + <parameter name="start" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">result location for the start position expressed in @format</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="stop_type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">result location for the #GstSeekType of the stop position</doc> + <type name="SeekType" c:type="GstSeekType*"/> + </parameter> + <parameter name="stop" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">result location for the stop position expressed in @format</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_seek_trickmode_interval" c:identifier="gst_event_parse_seek_trickmode_interval" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Retrieve the trickmode interval that may have been set on a +seek event with gst_event_set_seek_trickmode_interval().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="interval" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">interval</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="parse_segment" c:identifier="gst_event_parse_segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parses a segment @event and stores the result in the given @segment location. +@segment remains valid only until the @event is freed. Don't modify the segment +and make a copy if you want to modify it or store it for later use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to parse</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="segment" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a pointer to a #GstSegment</doc> + <type name="Segment" c:type="const GstSegment**"/> + </parameter> + </parameters> + </method> + <method name="parse_segment_done" c:identifier="gst_event_parse_segment_done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Extracts the position and format from the segment done message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A valid #GstEvent of type GST_EVENT_SEGMENT_DONE.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Result location for the format, or %NULL</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="position" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Result location for the position, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_select_streams" c:identifier="gst_event_parse_select_streams" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parse the SELECT_STREAMS event and retrieve the contained streams.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to parse</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="streams" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the streams</doc> + <type name="GLib.List" c:type="GList**"> + <type name="utf8"/> + </type> + </parameter> + </parameters> + </method> + <method name="parse_sink_message" c:identifier="gst_event_parse_sink_message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parse the sink-message event. Unref @msg after usage.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to query</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="msg" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a pointer to store the #GstMessage in.</doc> + <type name="Message" c:type="GstMessage**"/> + </parameter> + </parameters> + </method> + <method name="parse_step" c:identifier="gst_event_parse_step"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parse the step event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to query</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a pointer to store the format in</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="amount" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a pointer to store the amount in</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="rate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a pointer to store the rate in</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="flush" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a pointer to store the flush boolean in</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="intermediate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a pointer to store the intermediate + boolean in</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_stream" c:identifier="gst_event_parse_stream" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parse a stream-start @event and extract the #GstStream from it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a stream-start event</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="stream" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">address of variable to store the stream</doc> + <type name="Stream" c:type="GstStream**"/> + </parameter> + </parameters> + </method> + <method name="parse_stream_collection" c:identifier="gst_event_parse_stream_collection" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Retrieve new #GstStreamCollection from STREAM_COLLECTION event @event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a stream-collection event</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="collection" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to store the collection.</doc> + <type name="StreamCollection" c:type="GstStreamCollection**"/> + </parameter> + </parameters> + </method> + <method name="parse_stream_flags" c:identifier="gst_event_parse_stream_flags" version="1.2"> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a stream-start event</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">address of variable where to store the stream flags</doc> + <type name="StreamFlags" c:type="GstStreamFlags*"/> + </parameter> + </parameters> + </method> + <method name="parse_stream_group_done" c:identifier="gst_event_parse_stream_group_done" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parse a stream-group-done @event and store the result in the given +@group_id location.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a stream-group-done event.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="group_id" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">address of variable to store the group id into</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="parse_stream_start" c:identifier="gst_event_parse_stream_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parse a stream-id @event and store the result in the given @stream_id +location. The string stored in @stream_id must not be modified and will +remain valid only until @event gets freed. Make a copy if you want to +modify it or store it for later use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a stream-start event.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="stream_id" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to store the stream-id</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_tag" c:identifier="gst_event_parse_tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parses a tag @event and stores the results in the given @taglist location. +No reference to the taglist will be returned, it remains valid only until +the @event is freed. Don't modify or free the taglist, make a copy if you +want to modify it or store it for later use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a tag event</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="taglist" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to metadata list</doc> + <type name="TagList" c:type="GstTagList**"/> + </parameter> + </parameters> + </method> + <method name="parse_toc" c:identifier="gst_event_parse_toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parse a TOC @event and store the results in the given @toc and @updated locations.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a TOC event.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="toc" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to #GstToc structure.</doc> + <type name="Toc" c:type="GstToc**"/> + </parameter> + <parameter name="updated" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to store TOC updated flag.</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_toc_select" c:identifier="gst_event_parse_toc_select"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Parse a TOC select @event and store the results in the given @uid location.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a TOC select event.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="uid" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">storage for the selection UID.</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_event_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Increase the refcount of this event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">@event (for convenience when doing assignments)</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The event to refcount</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_gap_flags" c:identifier="gst_event_set_gap_flags" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Sets @flags on @event to give additional information about the reason for +the #GST_EVENT_GAP.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEvent of type #GST_EVENT_GAP</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstGapFlags</doc> + <type name="GapFlags" c:type="GstGapFlags"/> + </parameter> + </parameters> + </method> + <method name="set_group_id" c:identifier="gst_event_set_group_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">All streams that have the same group id are supposed to be played +together, i.e. all streams inside a container file should have the +same group id but different stream ids. The group id should change +each time the stream is started, resulting in different group ids +each time a file is played for example. + +Use gst_util_group_id_next() to get a new group id.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a stream-start event</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="group_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the group id to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_running_time_offset" c:identifier="gst_event_set_running_time_offset" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Set the running time offset of a event. See +gst_event_get_running_time_offset() for more information. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A the new running time offset</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_seek_trickmode_interval" c:identifier="gst_event_set_seek_trickmode_interval" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Sets a trickmode interval on a (writable) seek event. Elements +that support TRICKMODE_KEY_UNITS seeks SHOULD use this as the minimal +interval between each frame they may output.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="interval" transfer-ownership="none"> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_seqnum" c:identifier="gst_event_set_seqnum"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Set the sequence number of a event. + +This function might be called by the creator of a event to indicate that the +event relates to other events or messages. See gst_event_get_seqnum() for +more information. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="seqnum" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A sequence number.</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_stream" c:identifier="gst_event_set_stream" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Set the @stream on the stream-start @event</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a stream-start event</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the stream object to set</doc> + <type name="Stream" c:type="GstStream*"/> + </parameter> + </parameters> + </method> + <method name="set_stream_flags" c:identifier="gst_event_set_stream_flags" version="1.2"> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a stream-start event</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the stream flags to set</doc> + <type name="StreamFlags" c:type="GstStreamFlags"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_event_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Decrease the refcount of an event, freeing it if the refcount reaches 0.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the event to refcount</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + </parameters> + </method> + <method name="writable_structure" c:identifier="gst_event_writable_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Get a writable version of the structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">The structure of the event. The structure +is still owned by the event, which means that you should not free +it and that the pointer becomes invalid when you free the event. +This function ensures that @event is writable, and if so, will +never return %NULL. + +MT safe.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">A writable #GstEvent.</doc> + <type name="Event" c:type="GstEvent*"/> + </instance-parameter> + </parameters> + </method> + <function name="replace" c:identifier="gst_event_replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Modifies a pointer to a #GstEvent to point to a different #GstEvent. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +event is unreffed, the new one is reffed). + +Either @new_event or the #GstEvent pointed to by @old_event may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">%TRUE if @new_event was different from @old_event</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_event" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a + pointer to a #GstEvent to be replaced.</doc> + <type name="Event" c:type="GstEvent**"/> + </parameter> + <parameter name="new_event" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a #GstEvent that will + replace the event pointed to by @old_event.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </function> + <function name="steal" c:identifier="gst_event_steal" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Atomically replace the #GstEvent pointed to by @old_event with %NULL and +return the original event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the #GstEvent that was in @old_event</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="old_event" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a + pointer to a #GstEvent to be stolen.</doc> + <type name="Event" c:type="GstEvent**"/> + </parameter> + </parameters> + </function> + <function name="take" c:identifier="gst_event_take" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Modifies a pointer to a #GstEvent to point to a different #GstEvent. This +function is similar to gst_event_replace() except that it takes ownership of +@new_event. + +Either @new_event or the #GstEvent pointed to by @old_event may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">%TRUE if @new_event was different from @old_event</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_event" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a + pointer to a #GstEvent to be stolen.</doc> + <type name="Event" c:type="GstEvent**"/> + </parameter> + <parameter name="new_event" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a #GstEvent that will + replace the event pointed to by @old_event.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="EventType" glib:type-name="GstEventType" glib:get-type="gst_event_type_get_type" c:type="GstEventType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">#GstEventType lists the standard event types that can be sent in a pipeline. + +The custom event types can be used for private messages between elements +that can't be expressed using normal +GStreamer buffer passing semantics. Custom events carry an arbitrary +#GstStructure. +Specific custom events are distinguished by the name of the structure.</doc> + <member name="unknown" value="0" c:identifier="GST_EVENT_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">unknown event.</doc> + </member> + <member name="flush_start" value="2563" c:identifier="GST_EVENT_FLUSH_START" glib:nick="flush-start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Start a flush operation. This event clears all data + from the pipeline and unblock all streaming threads.</doc> + </member> + <member name="flush_stop" value="5127" c:identifier="GST_EVENT_FLUSH_STOP" glib:nick="flush-stop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Stop a flush operation. This event resets the + running-time of the pipeline.</doc> + </member> + <member name="stream_start" value="10254" c:identifier="GST_EVENT_STREAM_START" glib:nick="stream-start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Event to mark the start of a new stream. Sent before any + other serialized event and only sent at the start of a new stream, + not after flushing seeks.</doc> + </member> + <member name="caps" value="12814" c:identifier="GST_EVENT_CAPS" glib:nick="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">#GstCaps event. Notify the pad of a new media type.</doc> + </member> + <member name="segment" value="17934" c:identifier="GST_EVENT_SEGMENT" glib:nick="segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">A new media segment follows in the dataflow. The + segment events contains information for clipping buffers and + converting buffer timestamps to running-time and + stream-time.</doc> + </member> + <member name="stream_collection" value="19230" c:identifier="GST_EVENT_STREAM_COLLECTION" glib:nick="stream-collection"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">A new #GstStreamCollection is available (Since: 1.10)</doc> + </member> + <member name="tag" value="20510" c:identifier="GST_EVENT_TAG" glib:nick="tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">A new set of metadata tags has been found in the stream.</doc> + </member> + <member name="buffersize" value="23054" c:identifier="GST_EVENT_BUFFERSIZE" glib:nick="buffersize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Notification of buffering requirements. Currently not + used yet.</doc> + </member> + <member name="sink_message" value="25630" c:identifier="GST_EVENT_SINK_MESSAGE" glib:nick="sink-message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">An event that sinks turn into a message. Used to + send messages that should be emitted in sync with + rendering.</doc> + </member> + <member name="stream_group_done" value="26894" c:identifier="GST_EVENT_STREAM_GROUP_DONE" glib:nick="stream-group-done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Indicates that there is no more data for + the stream group ID in the message. Sent before EOS + in some instances and should be handled mostly the same. (Since: 1.10)</doc> + </member> + <member name="eos" value="28174" c:identifier="GST_EVENT_EOS" glib:nick="eos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">End-Of-Stream. No more data is to be expected to follow + without either a STREAM_START event, or a FLUSH_STOP and a SEGMENT + event.</doc> + </member> + <member name="toc" value="30750" c:identifier="GST_EVENT_TOC" glib:nick="toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">An event which indicates that a new table of contents (TOC) + was found or updated.</doc> + </member> + <member name="protection" value="33310" c:identifier="GST_EVENT_PROTECTION" glib:nick="protection"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">An event which indicates that new or updated + encryption information has been found in the stream.</doc> + </member> + <member name="segment_done" value="38406" c:identifier="GST_EVENT_SEGMENT_DONE" glib:nick="segment-done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Marks the end of a segment playback.</doc> + </member> + <member name="gap" value="40966" c:identifier="GST_EVENT_GAP" glib:nick="gap"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Marks a gap in the datastream.</doc> + </member> + <member name="instant_rate_change" value="46090" c:identifier="GST_EVENT_INSTANT_RATE_CHANGE" glib:nick="instant-rate-change"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Notify downstream that a playback rate override + should be applied as soon as possible. (Since: 1.18)</doc> + </member> + <member name="qos" value="48641" c:identifier="GST_EVENT_QOS" glib:nick="qos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">A quality message. Used to indicate to upstream elements + that the downstream elements should adjust their processing + rate.</doc> + </member> + <member name="seek" value="51201" c:identifier="GST_EVENT_SEEK" glib:nick="seek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">A request for a new playback position and rate.</doc> + </member> + <member name="navigation" value="53761" c:identifier="GST_EVENT_NAVIGATION" glib:nick="navigation"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Navigation events are usually used for communicating + user requests, such as mouse or keyboard movements, + to upstream elements.</doc> + </member> + <member name="latency" value="56321" c:identifier="GST_EVENT_LATENCY" glib:nick="latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Notification of new latency adjustment. Sinks will use + the latency information to adjust their synchronisation.</doc> + </member> + <member name="step" value="58881" c:identifier="GST_EVENT_STEP" glib:nick="step"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">A request for stepping through the media. Sinks will usually + execute the step operation.</doc> + </member> + <member name="reconfigure" value="61441" c:identifier="GST_EVENT_RECONFIGURE" glib:nick="reconfigure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">A request for upstream renegotiating caps and reconfiguring.</doc> + </member> + <member name="toc_select" value="64001" c:identifier="GST_EVENT_TOC_SELECT" glib:nick="toc-select"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">A request for a new playback position based on TOC + entry's UID.</doc> + </member> + <member name="select_streams" value="66561" c:identifier="GST_EVENT_SELECT_STREAMS" glib:nick="select-streams"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">A request to select one or more streams (Since: 1.10)</doc> + </member> + <member name="instant_rate_sync_time" value="66817" c:identifier="GST_EVENT_INSTANT_RATE_SYNC_TIME" glib:nick="instant-rate-sync-time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Sent by the pipeline to notify elements that handle the + instant-rate-change event about the running-time when + the rate multiplier should be applied (or was applied). (Since: 1.18)</doc> + </member> + <member name="custom_upstream" value="69121" c:identifier="GST_EVENT_CUSTOM_UPSTREAM" glib:nick="custom-upstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Upstream custom event</doc> + </member> + <member name="custom_downstream" value="71686" c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM" glib:nick="custom-downstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Downstream custom event that travels in the + data flow.</doc> + </member> + <member name="custom_downstream_oob" value="74242" c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_OOB" glib:nick="custom-downstream-oob"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Custom out-of-band downstream event.</doc> + </member> + <member name="custom_downstream_sticky" value="76830" c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_STICKY" glib:nick="custom-downstream-sticky"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Custom sticky downstream event.</doc> + </member> + <member name="custom_both" value="79367" c:identifier="GST_EVENT_CUSTOM_BOTH" glib:nick="custom-both"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Custom upstream or downstream event. + In-band when travelling downstream.</doc> + </member> + <member name="custom_both_oob" value="81923" c:identifier="GST_EVENT_CUSTOM_BOTH_OOB" glib:nick="custom-both-oob"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Custom upstream or downstream out-of-band event.</doc> + </member> + <function name="get_flags" c:identifier="gst_event_type_get_flags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Gets the #GstEventTypeFlags associated with @type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEventTypeFlags.</doc> + <type name="EventTypeFlags" c:type="GstEventTypeFlags"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEventType</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + </parameters> + </function> + <function name="get_name" c:identifier="gst_event_type_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Get a printable name for the given event type. Do not modify or free.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a reference to the static name of the event.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the event type</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + </parameters> + </function> + <function name="to_quark" c:identifier="gst_event_type_to_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Get the unique quark for the given event type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the quark associated with the event type</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the event type</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + </parameters> + </function> + <function name="to_sticky_ordering" c:identifier="gst_event_type_to_sticky_ordering" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Converts the #GstEventType to an unsigned integer that +represents the ordering of sticky events when re-sending them. +A lower value represents a higher-priority event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">an unsigned integer</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEventType</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + </parameters> + </function> + </enumeration> + <bitfield name="EventTypeFlags" glib:type-name="GstEventTypeFlags" glib:get-type="gst_event_type_flags_get_type" c:type="GstEventTypeFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">#GstEventTypeFlags indicate the aspects of the different #GstEventType +values. You can get the type flags of a #GstEventType with the +gst_event_type_get_flags() function.</doc> + <member name="upstream" value="1" c:identifier="GST_EVENT_TYPE_UPSTREAM" glib:nick="upstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Set if the event can travel upstream.</doc> + </member> + <member name="downstream" value="2" c:identifier="GST_EVENT_TYPE_DOWNSTREAM" glib:nick="downstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Set if the event can travel downstream.</doc> + </member> + <member name="serialized" value="4" c:identifier="GST_EVENT_TYPE_SERIALIZED" glib:nick="serialized"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Set if the event should be serialized with data + flow.</doc> + </member> + <member name="sticky" value="8" c:identifier="GST_EVENT_TYPE_STICKY" glib:nick="sticky"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Set if the event is sticky on the pads.</doc> + </member> + <member name="sticky_multi" value="16" c:identifier="GST_EVENT_TYPE_STICKY_MULTI" glib:nick="sticky-multi"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Multiple sticky events can be on a pad, each + identified by the event name.</doc> + </member> + </bitfield> + <constant name="FLAG_SET_MASK_EXACT" value="4294967295" c:type="GST_FLAG_SET_MASK_EXACT" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A mask value with all bits set, for use as a +GstFlagSet mask where all flag bits must match +exactly</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <type name="guint" c:type="guint"/> + </constant> + <constant name="FORMAT_PERCENT_MAX" value="1000000" c:type="GST_FORMAT_PERCENT_MAX"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">The PERCENT format is between 0 and this value</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <type name="gint64" c:type="gint64"/> + </constant> + <constant name="FORMAT_PERCENT_SCALE" value="10000" c:type="GST_FORMAT_PERCENT_SCALE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">The value used to scale down the reported PERCENT format value to +its real value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <type name="gint64" c:type="gint64"/> + </constant> + <function-macro name="FOURCC_ARGS" c:identifier="GST_FOURCC_ARGS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Can be used together with #GST_FOURCC_FORMAT to properly output a +#guint32 fourcc value in a printf\()-style text message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="fourcc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #guint32 fourcc value to output</doc> + </parameter> + </parameters> + </function-macro> + <constant name="FOURCC_FORMAT" value="c%c%c%c" c:type="GST_FOURCC_FORMAT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Can be used together with #GST_FOURCC_ARGS to properly output a +#guint32 fourcc value in a printf\()-style text message. + +|[ +printf ("fourcc: %" GST_FOURCC_FORMAT "\n", GST_FOURCC_ARGS (fcc)); +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <class name="FlagSet" c:symbol-prefix="flagset" glib:type-name="GstFlagSet" glib:get-type="gst_flagset_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A fundamental type that describes a 32-bit flag bitfield, with 32-bit +mask indicating which of the bits in the field are explicitly set.</doc> + <function name="register" c:identifier="gst_flagset_register" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Create a new sub-class of #GST_TYPE_FLAG_SET +which will pretty-print the human-readable flags +when serializing, for easier debugging.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <parameter name="flags_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GType of a #G_TYPE_FLAGS type.</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + </class> + <enumeration name="FlowReturn" glib:type-name="GstFlowReturn" glib:get-type="gst_flow_return_get_type" c:type="GstFlowReturn"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The result of passing data to a pad. + +Note that the custom return values should not be exposed outside of the +element scope.</doc> + <member name="custom_success_2" value="102" c:identifier="GST_FLOW_CUSTOM_SUCCESS_2" glib:nick="custom-success-2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pre-defined custom success code.</doc> + </member> + <member name="custom_success_1" value="101" c:identifier="GST_FLOW_CUSTOM_SUCCESS_1" glib:nick="custom-success-1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pre-defined custom success code (define your + custom success code to this to avoid compiler + warnings).</doc> + </member> + <member name="custom_success" value="100" c:identifier="GST_FLOW_CUSTOM_SUCCESS" glib:nick="custom-success"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Elements can use values starting from + this (and higher) to define custom success + codes.</doc> + </member> + <member name="ok" value="0" c:identifier="GST_FLOW_OK" glib:nick="ok"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Data passing was ok.</doc> + </member> + <member name="not_linked" value="-1" c:identifier="GST_FLOW_NOT_LINKED" glib:nick="not-linked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pad is not linked.</doc> + </member> + <member name="flushing" value="-2" c:identifier="GST_FLOW_FLUSHING" glib:nick="flushing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pad is flushing.</doc> + </member> + <member name="eos" value="-3" c:identifier="GST_FLOW_EOS" glib:nick="eos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pad is EOS.</doc> + </member> + <member name="not_negotiated" value="-4" c:identifier="GST_FLOW_NOT_NEGOTIATED" glib:nick="not-negotiated"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pad is not negotiated.</doc> + </member> + <member name="error" value="-5" c:identifier="GST_FLOW_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Some (fatal) error occurred. Element generating + this error should post an error message using + GST_ELEMENT_ERROR() with more details.</doc> + </member> + <member name="not_supported" value="-6" c:identifier="GST_FLOW_NOT_SUPPORTED" glib:nick="not-supported"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">This operation is not supported.</doc> + </member> + <member name="custom_error" value="-100" c:identifier="GST_FLOW_CUSTOM_ERROR" glib:nick="custom-error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Elements can use values starting from + this (and lower) to define custom error codes.</doc> + </member> + <member name="custom_error_1" value="-101" c:identifier="GST_FLOW_CUSTOM_ERROR_1" glib:nick="custom-error-1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pre-defined custom error code (define your + custom error code to this to avoid compiler + warnings).</doc> + </member> + <member name="custom_error_2" value="-102" c:identifier="GST_FLOW_CUSTOM_ERROR_2" glib:nick="custom-error-2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pre-defined custom error code.</doc> + </member> + </enumeration> + <enumeration name="Format" glib:type-name="GstFormat" glib:get-type="gst_format_get_type" c:type="GstFormat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">Standard predefined formats</doc> + <member name="undefined" value="0" c:identifier="GST_FORMAT_UNDEFINED" glib:nick="undefined"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">undefined format</doc> + </member> + <member name="default" value="1" c:identifier="GST_FORMAT_DEFAULT" glib:nick="default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">the default format of the pad/element. This can be + samples for raw audio, frames/fields for raw video (some, but not all, + elements support this; use @GST_FORMAT_TIME if you don't have a good + reason to query for samples/frames)</doc> + </member> + <member name="bytes" value="2" c:identifier="GST_FORMAT_BYTES" glib:nick="bytes"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">bytes</doc> + </member> + <member name="time" value="3" c:identifier="GST_FORMAT_TIME" glib:nick="time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">time in nanoseconds</doc> + </member> + <member name="buffers" value="4" c:identifier="GST_FORMAT_BUFFERS" glib:nick="buffers"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">buffers (few, if any, elements implement this as of + May 2009)</doc> + </member> + <member name="percent" value="5" c:identifier="GST_FORMAT_PERCENT" glib:nick="percent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">percentage of stream (few, if any, elements implement + this as of May 2009)</doc> + </member> + <function name="get_by_nick" c:identifier="gst_format_get_by_nick"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Return the format registered with the given nick.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The format with @nick or GST_FORMAT_UNDEFINED +if the format was not registered.</doc> + <type name="Format" c:type="GstFormat"/> + </return-value> + <parameters> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The nick of the format</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_details" c:identifier="gst_format_get_details"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Get details about the given format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The #GstFormatDefinition for @format or %NULL +on failure. + +MT safe.</doc> + <type name="FormatDefinition" c:type="const GstFormatDefinition*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The format to get details of</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </function> + <function name="get_name" c:identifier="gst_format_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Get a printable name for the given format. Do not modify or free.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">a reference to the static name of the format +or %NULL if the format is unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">a #GstFormat</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </function> + <function name="iterate_definitions" c:identifier="gst_format_iterate_definitions"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Iterate all the registered formats. The format definition is read +only.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">a GstIterator of #GstFormatDefinition.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + </function> + <function name="register" c:identifier="gst_format_register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Create a new GstFormat based on the nick or return an +already registered format with that nick.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">A new GstFormat or an already registered format +with the same nick. + +MT safe.</doc> + <type name="Format" c:type="GstFormat"/> + </return-value> + <parameters> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The nick of the new format</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The description of the new format</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="to_quark" c:identifier="gst_format_to_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Get the unique quark for the given format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">the quark associated with the format or 0 if the format +is unknown.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">a #GstFormat</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </function> + </enumeration> + <record name="FormatDefinition" c:type="GstFormatDefinition"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">A format definition</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <field name="value" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">The unique id of this format</doc> + <type name="Format" c:type="GstFormat"/> + </field> + <field name="nick" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">A short nick of the format</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="description" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">A longer description of the format</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="quark" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.h">A quark for the nick</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </field> + </record> + <class name="Fraction" c:symbol-prefix="fraction" glib:type-name="GstFraction" glib:get-type="gst_fraction_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A fundamental type that describes a fraction of an integer numerator +over an integer denominator</doc> + </class> + <class name="FractionRange" c:symbol-prefix="fraction_range" glib:type-name="GstFractionRange" glib:get-type="gst_fraction_range_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A fundamental type that describes a #GstFractionRange range</doc> + </class> + <function-macro name="GHOST_PAD" c:identifier="GST_GHOST_PAD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GHOST_PAD_CAST" c:identifier="GST_GHOST_PAD_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GHOST_PAD_CLASS" c:identifier="GST_GHOST_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <constant name="GROUP_ID_INVALID" value="0" c:type="GST_GROUP_ID_INVALID" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">A value which is guaranteed to never be returned by +gst_util_group_id_next(). + +Can be used as a default value in variables used to store group_id.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <type name="gint" c:type="gint"/> + </constant> + <bitfield name="GapFlags" version="1.20" glib:type-name="GstGapFlags" glib:get-type="gst_gap_flags_get_type" c:type="GstGapFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">The different flags that can be set on #GST_EVENT_GAP events. See +gst_event_set_gap_flags() for details.</doc> + <member name="data" value="1" c:identifier="GST_GAP_FLAG_MISSING_DATA" glib:nick="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">The #GST_EVENT_GAP signals missing data, + for example because of packet loss.</doc> + </member> + </bitfield> + <class name="GhostPad" c:symbol-prefix="ghost_pad" c:type="GstGhostPad" parent="ProxyPad" glib:type-name="GstGhostPad" glib:get-type="gst_ghost_pad_get_type" glib:type-struct="GhostPadClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">GhostPads are useful when organizing pipelines with #GstBin like elements. +The idea here is to create hierarchical element graphs. The bin element +contains a sub-graph. Now one would like to treat the bin-element like any +other #GstElement. This is where GhostPads come into play. A GhostPad acts as +a proxy for another pad. Thus the bin can have sink and source ghost-pads +that are associated with sink and source pads of the child elements. + +If the target pad is known at creation time, gst_ghost_pad_new() is the +function to use to get a ghost-pad. Otherwise one can use gst_ghost_pad_new_no_target() +to create the ghost-pad and use gst_ghost_pad_set_target() to establish the +association later on. + +Note that GhostPads add overhead to the data processing of a pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <constructor name="new" c:identifier="gst_ghost_pad_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Create a new ghostpad with @target as the target. The direction will be taken +from the target pad. @target must be unlinked. + +Will ref the target.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a new #GstPad, or %NULL in +case of an error.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the name of the new pad, or %NULL to assign a default name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the pad to ghost.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_template" c:identifier="gst_ghost_pad_new_from_template"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Create a new ghostpad with @target as the target. The direction will be taken +from the target pad. The template used on the ghostpad will be @template. + +Will ref the target.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a new #GstPad, or %NULL in +case of an error.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the name of the new pad, or %NULL to assign a default name.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the pad to ghost.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstPadTemplate to use on the ghostpad.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_no_target" c:identifier="gst_ghost_pad_new_no_target"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Create a new ghostpad without a target with the given direction. +A target can be set on the ghostpad later with the +gst_ghost_pad_set_target() function. + +The created ghostpad will not have a padtemplate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a new #GstPad, or %NULL in +case of an error.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the name of the new pad, or %NULL to assign a default name.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dir" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the direction of the ghostpad</doc> + <type name="PadDirection" c:type="GstPadDirection"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_no_target_from_template" c:identifier="gst_ghost_pad_new_no_target_from_template"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Create a new ghostpad based on @templ, without setting a target. The +direction will be taken from the @templ.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a new #GstPad, or %NULL in +case of an error.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the name of the new pad, or %NULL to assign a default name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstPadTemplate to create the ghostpad from.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + </parameters> + </constructor> + <function name="activate_mode_default" c:identifier="gst_ghost_pad_activate_mode_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Invoke the default activate mode function of a ghost pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">%TRUE if the operation was successful.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstPad to activate or deactivate.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the parent of @pad or %NULL</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the requested activation mode</doc> + <type name="PadMode" c:type="GstPadMode"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">whether the pad should be active or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="internal_activate_mode_default" c:identifier="gst_ghost_pad_internal_activate_mode_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Invoke the default activate mode function of a proxy pad that is +owned by a ghost pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">%TRUE if the operation was successful.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstPad to activate or deactivate.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the parent of @pad or %NULL</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the requested activation mode</doc> + <type name="PadMode" c:type="GstPadMode"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">whether the pad should be active or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <method name="construct" c:identifier="gst_ghost_pad_construct" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Finish initialization of a newly allocated ghost pad. + +This function is most useful in language bindings and when subclassing +#GstGhostPad; plugin and application developers normally will not call this +function. Call this function directly after a call to g_object_new +(GST_TYPE_GHOST_PAD, "direction", @dir, ..., NULL).</doc> + <doc-deprecated xml:space="preserve">This function is deprecated since 1.18 and does nothing +anymore.</doc-deprecated> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">%TRUE if the construction succeeds, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="gpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the newly allocated ghost pad</doc> + <type name="GhostPad" c:type="GstGhostPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_target" c:identifier="gst_ghost_pad_get_target"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Get the target pad of @gpad. Unref target pad after usage.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the target #GstPad, can be +%NULL if the ghostpad has no target set. Unref target pad after +usage.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="gpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstGhostPad</doc> + <type name="GhostPad" c:type="GstGhostPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_target" c:identifier="gst_ghost_pad_set_target"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Set the new target of the ghostpad @gpad. Any existing target +is unlinked and links to the new target are established. if @newtarget is +%NULL the target will be cleared.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">%TRUE if the new target could be set. This function + can return %FALSE when the internal pads could not be linked.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="gpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstGhostPad</doc> + <type name="GhostPad" c:type="GstGhostPad*"/> + </instance-parameter> + <parameter name="newtarget" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the new pad target</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <field name="pad"> + <type name="ProxyPad" c:type="GstProxyPad"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GhostPadPrivate" c:type="GstGhostPadPrivate*"/> + </field> + </class> + <record name="GhostPadClass" c:type="GstGhostPadClass" glib:is-gtype-struct-for="GhostPad"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <field name="parent_class"> + <type name="ProxyPadClass" c:type="GstProxyPadClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GhostPadPrivate" c:type="GstGhostPadPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + </record> + <function-macro name="IS_ALLOCATOR" c:identifier="GST_IS_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ALLOCATOR_CLASS" c:identifier="GST_IS_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BIN" c:identifier="GST_IS_BIN" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BIN_CLASS" c:identifier="GST_IS_BIN_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbin.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BUFFER" c:identifier="GST_IS_BUFFER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BUFFER_LIST" c:identifier="GST_IS_BUFFER_LIST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BUFFER_POOL" c:identifier="GST_IS_BUFFER_POOL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BUFFER_POOL_CLASS" c:identifier="GST_IS_BUFFER_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbufferpool.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BUS" c:identifier="GST_IS_BUS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <parameters> + <parameter name="bus"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BUS_CLASS" c:identifier="GST_IS_BUS_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstbus.h"/> + <parameters> + <parameter name="bclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CAPS" c:identifier="GST_IS_CAPS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CAPS_FEATURES" c:identifier="GST_IS_CAPS_FEATURES" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <parameters> + <parameter name="object"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CHILD_PROXY" c:identifier="GST_IS_CHILD_PROXY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstchildproxy.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CLOCK" c:identifier="GST_IS_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="clock"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CLOCK_CLASS" c:identifier="GST_IS_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="cclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CONTEXT" c:identifier="GST_IS_CONTEXT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CONTROL_BINDING" c:identifier="GST_IS_CONTROL_BINDING" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CONTROL_BINDING_CLASS" c:identifier="GST_IS_CONTROL_BINDING_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolbinding.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CONTROL_SOURCE" c:identifier="GST_IS_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CONTROL_SOURCE_CLASS" c:identifier="GST_IS_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DEVICE" c:identifier="GST_IS_DEVICE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DEVICE_CLASS" c:identifier="GST_IS_DEVICE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevice.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DEVICE_MONITOR" c:identifier="GST_IS_DEVICE_MONITOR" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DEVICE_MONITOR_CLASS" c:identifier="GST_IS_DEVICE_MONITOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdevicemonitor.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DEVICE_PROVIDER" c:identifier="GST_IS_DEVICE_PROVIDER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DEVICE_PROVIDER_CLASS" c:identifier="GST_IS_DEVICE_PROVIDER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceprovider.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DEVICE_PROVIDER_FACTORY" c:identifier="GST_IS_DEVICE_PROVIDER_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DEVICE_PROVIDER_FACTORY_CLASS" c:identifier="GST_IS_DEVICE_PROVIDER_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdeviceproviderfactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DYNAMIC_TYPE_FACTORY" c:identifier="GST_IS_DYNAMIC_TYPE_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DYNAMIC_TYPE_FACTORY_CLASS" c:identifier="GST_IS_DYNAMIC_TYPE_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ELEMENT" c:identifier="GST_IS_ELEMENT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ELEMENT_CLASS" c:identifier="GST_IS_ELEMENT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ELEMENT_FACTORY" c:identifier="GST_IS_ELEMENT_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ELEMENT_FACTORY_CLASS" c:identifier="GST_IS_ELEMENT_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelementfactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_EVENT" c:identifier="GST_IS_EVENT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GHOST_PAD" c:identifier="GST_IS_GHOST_PAD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GHOST_PAD_CLASS" c:identifier="GST_IS_GHOST_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_MESSAGE" c:identifier="GST_IS_MESSAGE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_MINI_OBJECT_TYPE" c:identifier="GST_IS_MINI_OBJECT_TYPE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + </parameter> + <parameter name="type"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_OBJECT" c:identifier="GST_IS_OBJECT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_OBJECT_CLASS" c:identifier="GST_IS_OBJECT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PAD" c:identifier="GST_IS_PAD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PAD_CLASS" c:identifier="GST_IS_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PAD_TEMPLATE" c:identifier="GST_IS_PAD_TEMPLATE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PAD_TEMPLATE_CLASS" c:identifier="GST_IS_PAD_TEMPLATE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PARAM_SPEC_ARRAY_LIST" c:identifier="GST_IS_PARAM_SPEC_ARRAY_LIST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <parameters> + <parameter name="pspec"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PARAM_SPEC_FRACTION" c:identifier="GST_IS_PARAM_SPEC_FRACTION" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <parameters> + <parameter name="pspec"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PIPELINE" c:identifier="GST_IS_PIPELINE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PIPELINE_CLASS" c:identifier="GST_IS_PIPELINE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLUGIN" c:identifier="GST_IS_PLUGIN" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLUGIN_CLASS" c:identifier="GST_IS_PLUGIN_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLUGIN_FEATURE" c:identifier="GST_IS_PLUGIN_FEATURE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLUGIN_FEATURE_CLASS" c:identifier="GST_IS_PLUGIN_FEATURE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PRESET" c:identifier="GST_IS_PRESET" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PROXY_PAD" c:identifier="GST_IS_PROXY_PAD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PROXY_PAD_CLASS" c:identifier="GST_IS_PROXY_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_QUERY" c:identifier="GST_IS_QUERY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_REGISTRY" c:identifier="GST_IS_REGISTRY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_REGISTRY_CLASS" c:identifier="GST_IS_REGISTRY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_SAMPLE" c:identifier="GST_IS_SAMPLE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_SHARED_TASK_POOL" c:identifier="GST_IS_SHARED_TASK_POOL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pool"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_SHARED_TASK_POOL_CLASS" c:identifier="GST_IS_SHARED_TASK_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_STREAM" c:identifier="GST_IS_STREAM" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_STREAM_CLASS" c:identifier="GST_IS_STREAM_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_STREAM_COLLECTION" c:identifier="GST_IS_STREAM_COLLECTION" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_STREAM_COLLECTION_CLASS" c:identifier="GST_IS_STREAM_COLLECTION_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_STRUCTURE" c:identifier="GST_IS_STRUCTURE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <parameters> + <parameter name="object"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_SYSTEM_CLOCK" c:identifier="GST_IS_SYSTEM_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_SYSTEM_CLOCK_CLASS" c:identifier="GST_IS_SYSTEM_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TAG_LIST" c:identifier="GST_IS_TAG_LIST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TAG_SETTER" c:identifier="GST_IS_TAG_SETTER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TASK" c:identifier="GST_IS_TASK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TASK_CLASS" c:identifier="GST_IS_TASK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="tclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TASK_POOL" c:identifier="GST_IS_TASK_POOL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pool"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TASK_POOL_CLASS" c:identifier="GST_IS_TASK_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TOC_SETTER" c:identifier="GST_IS_TOC_SETTER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttocsetter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TRACER" c:identifier="GST_IS_TRACER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TRACER_CLASS" c:identifier="GST_IS_TRACER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TRACER_FACTORY" c:identifier="GST_IS_TRACER_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TRACER_FACTORY_CLASS" c:identifier="GST_IS_TRACER_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TRACER_RECORD" c:identifier="GST_IS_TRACER_RECORD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TRACER_RECORD_CLASS" c:identifier="GST_IS_TRACER_RECORD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TYPE_FIND_FACTORY" c:identifier="GST_IS_TYPE_FIND_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TYPE_FIND_FACTORY_CLASS" c:identifier="GST_IS_TYPE_FIND_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_URI" c:identifier="GST_IS_URI" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_URI_HANDLER" c:identifier="GST_IS_URI_HANDLER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ITERATOR" c:identifier="GST_ITERATOR" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">Macro to cast to a #GstIterator</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <parameters> + <parameter name="it"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the #GstIterator value</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ITERATOR_COOKIE" c:identifier="GST_ITERATOR_COOKIE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">Macro to get the cookie of a #GstIterator. The cookie of the +iterator is the value of the master cookie when the iterator +was created. +Whenever the iterator is iterated, the value is compared to the +value of the master cookie. If they are different, a concurrent +modification happened to the iterator and a resync is needed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <parameters> + <parameter name="it"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the #GstIterator to get the cookie of</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ITERATOR_LOCK" c:identifier="GST_ITERATOR_LOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">Macro to get the lock protecting the datastructure being iterated.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <parameters> + <parameter name="it"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the #GstIterator to get the lock of</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ITERATOR_ORIG_COOKIE" c:identifier="GST_ITERATOR_ORIG_COOKIE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">Macro to get a pointer to where the master cookie is stored. The +master cookie protects the structure being iterated and gets updated +whenever the datastructure changes.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <parameters> + <parameter name="it"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the #GstIterator to get the master cookie of</doc> + </parameter> + </parameters> + </function-macro> + <class name="Int64Range" c:symbol-prefix="int64_range" glib:type-name="GstInt64Range" glib:get-type="gst_int64_range_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A fundamental type that describes a #gint64 range</doc> + </class> + <class name="IntRange" c:symbol-prefix="int_range" glib:type-name="GstIntRange" glib:get-type="gst_int_range_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A fundamental type that describes a #gint range</doc> + </class> + <record name="Iterator" c:type="GstIterator" glib:type-name="GstIterator" glib:get-type="gst_iterator_get_type" c:symbol-prefix="iterator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">A GstIterator is used to retrieve multiple objects from another object in +a threadsafe way. + +Various GStreamer objects provide access to their internal structures using +an iterator. + +Note that if calling a GstIterator function results in your code receiving +a refcounted object (with, say, g_value_get_object()), the refcount for that +object will not be increased. Your code is responsible for taking a reference +if it wants to continue using it later. + +The basic use pattern of an iterator is as follows: +|[<!-- language="C" --> + GstIterator *it = _get_iterator(object); + GValue item = G_VALUE_INIT; + done = FALSE; + while (!done) { + switch (gst_iterator_next (it, &item)) { + case GST_ITERATOR_OK: + ...get/use/change item here... + g_value_reset (&item); + break; + case GST_ITERATOR_RESYNC: + ...rollback changes to items... + gst_iterator_resync (it); + break; + case GST_ITERATOR_ERROR: + ...wrong parameters were given... + done = TRUE; + break; + case GST_ITERATOR_DONE: + done = TRUE; + break; + } + } + g_value_unset (&item); + gst_iterator_free (it); +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <field name="copy" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The function to copy the iterator</doc> + <type name="IteratorCopyFunction" c:type="GstIteratorCopyFunction"/> + </field> + <field name="next" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The function to get the next item in the iterator</doc> + <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/> + </field> + <field name="item" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The function to be called for each item retrieved</doc> + <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/> + </field> + <field name="resync" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The function to call when a resync is needed.</doc> + <type name="IteratorResyncFunction" c:type="GstIteratorResyncFunction"/> + </field> + <field name="free" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The function to call when the iterator is freed</doc> + <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/> + </field> + <field name="pushed" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The iterator that is currently pushed with gst_iterator_push()</doc> + <type name="Iterator" c:type="GstIterator*"/> + </field> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The type of the object that this iterator will return</doc> + <type name="GType" c:type="GType"/> + </field> + <field name="lock" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The lock protecting the data structure and the cookie.</doc> + <type name="GLib.Mutex" c:type="GMutex*"/> + </field> + <field name="cookie" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The cookie; the value of the master_cookie when this iterator was + created.</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="master_cookie" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">A pointer to the master cookie.</doc> + <type name="guint32" c:type="guint32*"/> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the size of the iterator</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <constructor name="new" c:identifier="gst_iterator_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Create a new iterator. This function is mainly used for objects +implementing the next/resync/free function to iterate a data structure. + +For each item retrieved, the @item function is called with the lock +held. The @free function is called when the iterator is freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the new #GstIterator. + +MT safe.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the size of the iterator structure</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">#GType of children</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="lock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">pointer to a #GMutex.</doc> + <type name="GLib.Mutex" c:type="GMutex*"/> + </parameter> + <parameter name="master_cookie" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">pointer to a guint32 that is changed when the items in the + iterator changed.</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="copy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">copy function</doc> + <type name="IteratorCopyFunction" c:type="GstIteratorCopyFunction"/> + </parameter> + <parameter name="next" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">function to get next item</doc> + <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/> + </parameter> + <parameter name="item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">function to call on each item retrieved</doc> + <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/> + </parameter> + <parameter name="resync" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">function to resync the iterator</doc> + <type name="IteratorResyncFunction" c:type="GstIteratorResyncFunction"/> + </parameter> + <parameter name="free" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">function to free the iterator</doc> + <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_list" c:identifier="gst_iterator_new_list" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Create a new iterator designed for iterating @list. + +The list you iterate is usually part of a data structure @owner and is +protected with @lock. + +The iterator will use @lock to retrieve the next item of the list and it +will then call the @item function before releasing @lock again. + +When a concurrent update to the list is performed, usually by @owner while +holding @lock, @master_cookie will be updated. The iterator implementation +will notice the update of the cookie and will return %GST_ITERATOR_RESYNC to +the user of the iterator in the next call to gst_iterator_next().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the new #GstIterator for @list. + +MT safe.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">#GType of elements</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="lock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">pointer to a #GMutex protecting the list.</doc> + <type name="GLib.Mutex" c:type="GMutex*"/> + </parameter> + <parameter name="master_cookie" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">pointer to a guint32 that is incremented when the list + is changed.</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">pointer to the list</doc> + <type name="GLib.List" c:type="GList**"> + <type name="gpointer" c:type="gpointer"/> + </type> + </parameter> + <parameter name="owner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">object owning the list</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">function to call on each item retrieved</doc> + <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_single" c:identifier="gst_iterator_new_single"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">This #GstIterator is a convenient iterator for the common +case where a #GstIterator needs to be returned but only +a single object has to be considered. This happens often +for the #GstPadIterIntLinkFunction.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the new #GstIterator for @object.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">#GType of the passed object</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">object that this iterator should return</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </constructor> + <method name="copy" c:identifier="gst_iterator_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Copy the iterator and its state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">a new copy of @it.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">a #GstIterator</doc> + <type name="Iterator" c:type="const GstIterator*"/> + </instance-parameter> + </parameters> + </method> + <method name="filter" c:identifier="gst_iterator_filter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Create a new iterator from an existing iterator. The new iterator +will only return those elements that match the given compare function @func. +The first parameter that is passed to @func is the #GValue of the current +iterator element and the second parameter is @user_data. @func should +return 0 for elements that should be included in the filtered iterator. + +When this iterator is freed, @it will also be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">a new #GstIterator. + +MT safe.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The #GstIterator to filter</doc> + <type name="Iterator" c:type="GstIterator*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the compare function to select elements</doc> + <type name="GLib.CompareFunc" c:type="GCompareFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">user data passed to the compare function</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="find_custom" c:identifier="gst_iterator_find_custom"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Find the first element in @it that matches the compare function @func. +@func should return 0 when the element is found. The first parameter +to @func will be the current element of the iterator and the +second parameter will be @user_data. +The result will be stored in @elem if a result is found. + +The iterator will not be freed. + +This function will return %FALSE if an error happened to the iterator +or if the element wasn't found.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Returns %TRUE if the element was found, else %FALSE. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The #GstIterator to iterate</doc> + <type name="Iterator" c:type="GstIterator*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the compare function to use</doc> + <type name="GLib.CompareFunc" c:type="GCompareFunc"/> + </parameter> + <parameter name="elem" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">pointer to a #GValue where to store the result</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">user data passed to the compare function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="fold" c:identifier="gst_iterator_fold"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Folds @func over the elements of @iter. That is to say, @func will be called +as @func (object, @ret, @user_data) for each object in @it. The normal use +of this procedure is to accumulate the results of operating on the objects in +@ret. + +This procedure can be used (and is used internally) to implement the +gst_iterator_foreach() and gst_iterator_find_custom() operations. + +The fold will proceed as long as @func returns %TRUE. When the iterator has no +more arguments, %GST_ITERATOR_DONE will be returned. If @func returns %FALSE, +the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs +will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as +appropriate. + +The iterator will not be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">A #GstIteratorResult, as described above. + +MT safe.</doc> + <type name="IteratorResult" c:type="GstIteratorResult"/> + </return-value> + <parameters> + <instance-parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The #GstIterator to fold over</doc> + <type name="Iterator" c:type="GstIterator*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the fold function</doc> + <type name="IteratorFoldFunction" c:type="GstIteratorFoldFunction"/> + </parameter> + <parameter name="ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the seed value passed to the fold function</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">user data passed to the fold function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="foreach" c:identifier="gst_iterator_foreach"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Iterate over all element of @it and call the given function @func for +each element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the result call to gst_iterator_fold(). The iterator will not be +freed. + +MT safe.</doc> + <type name="IteratorResult" c:type="GstIteratorResult"/> + </return-value> + <parameters> + <instance-parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The #GstIterator to iterate</doc> + <type name="Iterator" c:type="GstIterator*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">the function to call for each element.</doc> + <type name="IteratorForeachFunction" c:type="GstIteratorForeachFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">user data passed to the function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_iterator_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Free the iterator. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The #GstIterator to free</doc> + <type name="Iterator" c:type="GstIterator*"/> + </instance-parameter> + </parameters> + </method> + <method name="next" c:identifier="gst_iterator_next"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Get the next item from the iterator in @elem. + +Only when this function returns %GST_ITERATOR_OK, @elem will contain a valid +value. @elem must have been initialized to the type of the iterator or +initialized to zeroes with g_value_unset(). The caller is responsible for +unsetting or resetting @elem with g_value_unset() or g_value_reset() +after usage. + +When this function returns %GST_ITERATOR_DONE, no more elements can be +retrieved from @it. + +A return value of %GST_ITERATOR_RESYNC indicates that the element list was +concurrently updated. The user of @it should call gst_iterator_resync() to +get the newly updated list. + +A return value of %GST_ITERATOR_ERROR indicates an unrecoverable fatal error.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The result of the iteration. Unset @elem after usage. + +MT safe.</doc> + <type name="IteratorResult" c:type="GstIteratorResult"/> + </return-value> + <parameters> + <instance-parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The #GstIterator to iterate</doc> + <type name="Iterator" c:type="GstIterator*"/> + </instance-parameter> + <parameter name="elem" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">pointer to hold next element</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_iterator_push"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Pushes @other iterator onto @it. All calls performed on @it are +forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is +popped again and calls are handled by @it again. + +This function is mainly used by objects implementing the iterator +next function to recurse into substructures. + +When gst_iterator_resync() is called on @it, @other will automatically be +popped. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The #GstIterator to use</doc> + <type name="Iterator" c:type="GstIterator*"/> + </instance-parameter> + <parameter name="other" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The #GstIterator to push</doc> + <type name="Iterator" c:type="GstIterator*"/> + </parameter> + </parameters> + </method> + <method name="resync" c:identifier="gst_iterator_resync"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">Resync the iterator. this function is mostly called +after gst_iterator_next() returned %GST_ITERATOR_RESYNC. + +When an iterator was pushed on @it, it will automatically be popped again +with this function. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.c">The #GstIterator to resync</doc> + <type name="Iterator" c:type="GstIterator*"/> + </instance-parameter> + </parameters> + </method> + </record> + <callback name="IteratorCopyFunction" c:type="GstIteratorCopyFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">This function will be called when creating a copy of @it and should +create a copy of all custom iterator fields or increase their +reference counts.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The original iterator</doc> + <type name="Iterator" c:type="const GstIterator*"/> + </parameter> + <parameter name="copy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The copied iterator</doc> + <type name="Iterator" c:type="GstIterator*"/> + </parameter> + </parameters> + </callback> + <callback name="IteratorFoldFunction" c:type="GstIteratorFoldFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">A function to be passed to gst_iterator_fold().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">%TRUE if the fold should continue, %FALSE if it should stop.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the item to fold</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">a #GValue collecting the result</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">data passed to gst_iterator_fold()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="IteratorForeachFunction" c:type="GstIteratorForeachFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">A function that is called by gst_iterator_foreach() for every element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The item</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">User data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">This function will be called when the iterator is freed. + +Implementors of a #GstIterator should implement this +function and pass it to the constructor of the custom iterator. +The function will be called with the iterator lock held.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the iterator</doc> + <type name="Iterator" c:type="GstIterator*"/> + </parameter> + </parameters> + </callback> + <enumeration name="IteratorItem" glib:type-name="GstIteratorItem" glib:get-type="gst_iterator_item_get_type" c:type="GstIteratorItem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The result of a #GstIteratorItemFunction.</doc> + <member name="skip" value="0" c:identifier="GST_ITERATOR_ITEM_SKIP" glib:nick="skip"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">Skip this item</doc> + </member> + <member name="pass" value="1" c:identifier="GST_ITERATOR_ITEM_PASS" glib:nick="pass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">Return item</doc> + </member> + <member name="end" value="2" c:identifier="GST_ITERATOR_ITEM_END" glib:nick="end"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">Stop after this item.</doc> + </member> + </enumeration> + <callback name="IteratorItemFunction" c:type="GstIteratorItemFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The function that will be called after the next item of the iterator +has been retrieved. This function can be used to skip items or stop +the iterator. + +The function will be called with the iterator lock held.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the result of the operation.</doc> + <type name="IteratorItem" c:type="GstIteratorItem"/> + </return-value> + <parameters> + <parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the iterator</doc> + <type name="Iterator" c:type="GstIterator*"/> + </parameter> + <parameter name="item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the item being retrieved.</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </callback> + <callback name="IteratorNextFunction" c:type="GstIteratorNextFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The function that will be called when the next element of the iterator +should be retrieved. + +Implementors of a #GstIterator should implement this +function and pass it to the constructor of the custom iterator. +The function will be called with the iterator lock held.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the result of the operation.</doc> + <type name="IteratorResult" c:type="GstIteratorResult"/> + </return-value> + <parameters> + <parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the iterator</doc> + <type name="Iterator" c:type="GstIterator*"/> + </parameter> + <parameter name="result" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">a pointer to hold the next item</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </callback> + <enumeration name="IteratorResult" glib:type-name="GstIteratorResult" glib:get-type="gst_iterator_result_get_type" c:type="GstIteratorResult"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">The result of gst_iterator_next().</doc> + <member name="done" value="0" c:identifier="GST_ITERATOR_DONE" glib:nick="done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">No more items in the iterator</doc> + </member> + <member name="ok" value="1" c:identifier="GST_ITERATOR_OK" glib:nick="ok"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">An item was retrieved</doc> + </member> + <member name="resync" value="2" c:identifier="GST_ITERATOR_RESYNC" glib:nick="resync"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">Datastructure changed while iterating</doc> + </member> + <member name="error" value="3" c:identifier="GST_ITERATOR_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">An error happened</doc> + </member> + </enumeration> + <callback name="IteratorResyncFunction" c:type="GstIteratorResyncFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">This function will be called whenever a concurrent update happened +to the iterated datastructure. The implementor of the iterator should +restart the iterator from the beginning and clean up any state it might +have. + +Implementors of a #GstIterator should implement this +function and pass it to the constructor of the custom iterator. +The function will be called with the iterator lock held.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstiterator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="it" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstiterator.h">the iterator</doc> + <type name="Iterator" c:type="GstIterator*"/> + </parameter> + </parameters> + </callback> + <constant name="LICENSE_UNKNOWN" value="unknown" c:type="GST_LICENSE_UNKNOWN"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">To be used in GST_PLUGIN_DEFINE if unsure about the licence.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="LOCK_FLAG_READWRITE" value="3" c:type="GST_LOCK_FLAG_READWRITE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">GstLockFlags value alias for GST_LOCK_FLAG_READ | GST_LOCK_FLAG_WRITE</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <type name="LockFlags" c:type="GstLockFlags"/> + </constant> + <enumeration name="LibraryError" glib:type-name="GstLibraryError" glib:get-type="gst_library_error_get_type" c:type="GstLibraryError" glib:error-domain="gst-library-error-quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">Library errors are for errors from the library being used by elements +(initializing, finalizing, settings, ...)</doc> + <member name="failed" value="1" c:identifier="GST_LIBRARY_ERROR_FAILED" glib:nick="failed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">a general error which doesn't fit in any other +category. Make sure you add a custom message to the error call.</doc> + </member> + <member name="too_lazy" value="2" c:identifier="GST_LIBRARY_ERROR_TOO_LAZY" glib:nick="too-lazy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">do not use this except as a placeholder for +deciding where to go while developing code.</doc> + </member> + <member name="init" value="3" c:identifier="GST_LIBRARY_ERROR_INIT" glib:nick="init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the library could not be opened.</doc> + </member> + <member name="shutdown" value="4" c:identifier="GST_LIBRARY_ERROR_SHUTDOWN" glib:nick="shutdown"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the library could not be closed.</doc> + </member> + <member name="settings" value="5" c:identifier="GST_LIBRARY_ERROR_SETTINGS" glib:nick="settings"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the library doesn't accept settings.</doc> + </member> + <member name="encode" value="6" c:identifier="GST_LIBRARY_ERROR_ENCODE" glib:nick="encode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the library generated an encoding error.</doc> + </member> + <member name="num_errors" value="7" c:identifier="GST_LIBRARY_ERROR_NUM_ERRORS" glib:nick="num-errors"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">the number of library error types.</doc> + </member> + <function name="quark" c:identifier="gst_library_error_quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <bitfield name="LockFlags" glib:type-name="GstLockFlags" glib:get-type="gst_lock_flags_get_type" c:type="GstLockFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Flags used when locking miniobjects</doc> + <member name="read" value="1" c:identifier="GST_LOCK_FLAG_READ" glib:nick="read"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">lock for read access</doc> + </member> + <member name="write" value="2" c:identifier="GST_LOCK_FLAG_WRITE" glib:nick="write"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">lock for write access</doc> + </member> + <member name="exclusive" value="4" c:identifier="GST_LOCK_FLAG_EXCLUSIVE" glib:nick="exclusive"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">lock for exclusive access</doc> + </member> + <member name="last" value="256" c:identifier="GST_LOCK_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">first flag that can be used for custom purposes</doc> + </member> + </bitfield> + <callback name="LogFunction" c:type="GstLogFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Function prototype for a logging function that can be registered with +gst_debug_add_log_function(). +Use G_GNUC_NO_INSTRUMENT on that function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">a #GstDebugCategory</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">a #GstDebugLevel</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">file name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">function name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">line number</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">a #GObject</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the message</doc> + <type name="DebugMessage" c:type="GstDebugMessage*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="7"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">user data for the log function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <function-macro name="MAKE_FOURCC" c:identifier="GST_MAKE_FOURCC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Transform four characters into a #guint32 fourcc value with host +endianness. + +|[ +guint32 fourcc = GST_MAKE_FOURCC ('M', 'J', 'P', 'G'); +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="a"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the first character</doc> + </parameter> + <parameter name="b"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the second character</doc> + </parameter> + <parameter name="c"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the third character</doc> + </parameter> + <parameter name="d"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the fourth character</doc> + </parameter> + </parameters> + </function-macro> + <constant name="MAP_READWRITE" value="3" c:type="GST_MAP_READWRITE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">GstMapFlags value alias for GST_MAP_READ | GST_MAP_WRITE</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <type name="MapFlags" c:type="GstMapFlags"/> + </constant> + <function-macro name="MEMDUMP" c:identifier="GST_MEMDUMP" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Output a hexdump of @data. + +There is no need to finish the end of the message string with a newline +character, a newline character will be added automatically.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="msg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">message string to log with the data</doc> + </parameter> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">pointer to the data to output</doc> + </parameter> + <parameter name="length"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">length of the data to output</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMDUMP_ID" c:identifier="GST_MEMDUMP_ID" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Output a logging message belonging to the given object in the default category. + +There is no need to finish the end of the message string with a newline +character, a newline character will be added automatically.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="id"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">An identifier of the message provider</doc> + </parameter> + <parameter name="msg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">message string to log with the data</doc> + </parameter> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">pointer to the data to output</doc> + </parameter> + <parameter name="length"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">length of the data to output</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMDUMP_OBJECT" c:identifier="GST_MEMDUMP_OBJECT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Output a logging message belonging to the given object in the default category. + +There is no need to finish the end of the message string with a newline +character, a newline character will be added automatically.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">the #GObject the message belongs to</doc> + </parameter> + <parameter name="msg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">message string to log with the data</doc> + </parameter> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">pointer to the data to output</doc> + </parameter> + <parameter name="length"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">length of the data to output</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_CAST" c:identifier="GST_MEMORY_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_FLAGS" c:identifier="GST_MEMORY_FLAGS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">A flags word containing #GstMemoryFlags flags set on @mem</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_FLAG_IS_SET" c:identifier="GST_MEMORY_FLAG_IS_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Gives the status of a specific flag on a @mem.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the #GstMemoryFlags to check.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_FLAG_UNSET" c:identifier="GST_MEMORY_FLAG_UNSET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Clear a specific flag on a @mem.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the #GstMemoryFlags to clear.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_IS_NOT_MAPPABLE" c:identifier="GST_MEMORY_IS_NOT_MAPPABLE" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Check if @mem can't be mapped via gst_memory_map() without any preconditions</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_IS_NO_SHARE" c:identifier="GST_MEMORY_IS_NO_SHARE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Check if @mem cannot be shared between buffers</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_IS_PHYSICALLY_CONTIGUOUS" c:identifier="GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Check if @mem is physically contiguous.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_IS_READONLY" c:identifier="GST_MEMORY_IS_READONLY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Check if @mem is readonly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_IS_ZERO_PADDED" c:identifier="GST_MEMORY_IS_ZERO_PADDED" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Check if the padding in @mem is 0 filled.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MEMORY_IS_ZERO_PREFIXED" c:identifier="GST_MEMORY_IS_ZERO_PREFIXED" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Check if the prefix in @mem is 0 filled.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE" c:identifier="GST_MESSAGE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_CAST" c:identifier="GST_MESSAGE_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_GET_COND" c:identifier="GST_MESSAGE_GET_COND" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_GET_LOCK" c:identifier="GST_MESSAGE_GET_LOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_LOCK" c:identifier="GST_MESSAGE_LOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_SEQNUM" c:identifier="GST_MESSAGE_SEQNUM" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Get the sequence number of @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a #GstMessage</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_SIGNAL" c:identifier="GST_MESSAGE_SIGNAL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_SRC" c:identifier="GST_MESSAGE_SRC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Get the object that posted @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a #GstMessage</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_SRC_NAME" c:identifier="GST_MESSAGE_SRC_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Get the name of the object that posted @message. Returns "(NULL)" if +the message has no source object set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a #GstMessage</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_TIMESTAMP" c:identifier="GST_MESSAGE_TIMESTAMP" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Get the timestamp of @message. This is the timestamp when the message +was created.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a #GstMessage</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_TYPE" c:identifier="GST_MESSAGE_TYPE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Get the #GstMessageType of @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a #GstMessage</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_TYPE_IS_EXTENDED" c:identifier="GST_MESSAGE_TYPE_IS_EXTENDED" version="1.4" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Check if the message is in the extended message group</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a #GstMessage</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_TYPE_NAME" c:identifier="GST_MESSAGE_TYPE_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Get a constant string representation of the #GstMessageType of @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a #GstMessage</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_UNLOCK" c:identifier="GST_MESSAGE_UNLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MESSAGE_WAIT" c:identifier="GST_MESSAGE_WAIT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="message"> + </parameter> + </parameters> + </function-macro> + <function-macro name="META_CAST" c:identifier="GST_META_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <parameters> + <parameter name="meta"> + </parameter> + </parameters> + </function-macro> + <function-macro name="META_FLAGS" c:identifier="GST_META_FLAGS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">A flags word containing #GstMetaFlags flags set on @meta</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <parameters> + <parameter name="meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstMeta.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="META_FLAG_IS_SET" c:identifier="GST_META_FLAG_IS_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Gives the status of a specific flag on a metadata.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <parameters> + <parameter name="meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstMeta.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">the #GstMetaFlags to check.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="META_FLAG_SET" c:identifier="GST_META_FLAG_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Sets a metadata flag on a metadata.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <parameters> + <parameter name="meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstMeta.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">the #GstMetaFlags to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="META_FLAG_UNSET" c:identifier="GST_META_FLAG_UNSET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Clears a metadata flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <parameters> + <parameter name="meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstMeta.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">the #GstMetaFlags to clear.</doc> + </parameter> + </parameters> + </function-macro> + <constant name="META_TAG_MEMORY_REFERENCE_STR" value="memory-reference" c:type="GST_META_TAG_MEMORY_REFERENCE_STR" version="1.20.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">This metadata stays relevant until a deep copy is made.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_TAG_MEMORY_STR" value="memory" c:type="GST_META_TAG_MEMORY_STR" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">This metadata stays relevant as long as memory layout is unchanged. +In hindsight, this tag should have been called "memory-layout".</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="META_TRANSFORM_IS_COPY" c:identifier="GST_META_TRANSFORM_IS_COPY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Check if the transform type is a copy transform</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <parameters> + <parameter name="type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a transform type</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT" c:identifier="GST_MINI_OBJECT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_CAST" c:identifier="GST_MINI_OBJECT_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_CONST_CAST" c:identifier="GST_MINI_OBJECT_CONST_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_FLAGS" c:identifier="GST_MINI_OBJECT_FLAGS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">This macro returns the entire set of flags for the mini-object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">MiniObject to return flags for.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_FLAG_IS_SET" c:identifier="GST_MINI_OBJECT_FLAG_IS_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">This macro checks to see if the given flag is set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">MiniObject to check for flags.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Flag to check for</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_FLAG_SET" c:identifier="GST_MINI_OBJECT_FLAG_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">This macro sets the given bits.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">MiniObject to set flag in.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Flag to set, can by any number of bits in guint32.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_FLAG_UNSET" c:identifier="GST_MINI_OBJECT_FLAG_UNSET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">This macro unsets the given bits.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">MiniObject to unset flag in.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Flag to set, must be a single bit in guint32.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_IS_LOCKABLE" c:identifier="GST_MINI_OBJECT_IS_LOCKABLE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Check if @obj is lockable. A lockable object can be locked and unlocked with +gst_mini_object_lock() and gst_mini_object_unlock().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">a #GstMiniObject</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_REFCOUNT" c:identifier="GST_MINI_OBJECT_REFCOUNT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Get access to the reference count field of the mini-object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">a #GstMiniObject</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_REFCOUNT_VALUE" c:identifier="GST_MINI_OBJECT_REFCOUNT_VALUE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Get the reference count value of the mini-object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">a #GstMiniObject</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="MINI_OBJECT_TYPE" c:identifier="GST_MINI_OBJECT_TYPE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">This macro returns the type of the mini-object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">MiniObject to return type for.</doc> + </parameter> + </parameters> + </function-macro> + <constant name="MSECOND" value="1000000" c:type="GST_MSECOND"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Constant that defines one GStreamer millisecond.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/> + </constant> + <bitfield name="MapFlags" glib:type-name="GstMapFlags" glib:get-type="gst_map_flags_get_type" c:type="GstMapFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Flags used when mapping memory</doc> + <member name="read" value="1" c:identifier="GST_MAP_READ" glib:nick="read"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">map for read access</doc> + </member> + <member name="write" value="2" c:identifier="GST_MAP_WRITE" glib:nick="write"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">map for write access</doc> + </member> + <member name="flag_last" value="65536" c:identifier="GST_MAP_FLAG_LAST" glib:nick="flag-last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">first flag that can be used for custom purposes</doc> + </member> + </bitfield> + <record name="MapInfo" c:type="GstMapInfo"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">A structure containing the result of a map operation such as +gst_memory_map(). It contains the data and size. + +#GstMapInfo cannot be used with g_auto() because it is ambiguous whether it +needs to be unmapped using gst_buffer_unmap() or gst_memory_unmap(). Instead, +#GstBufferMapInfo and #GstMemoryMapInfo can be used in that case.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <field name="memory" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a pointer to the mapped memory</doc> + <type name="Memory" c:type="GstMemory*"/> + </field> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">flags used when mapping the memory</doc> + <type name="MapFlags" c:type="GstMapFlags"/> + </field> + <field name="data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a pointer to the mapped 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" filename="../subprojects/gstreamer/gst/gstmemory.h">the valid size in @data</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="maxsize" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the maximum bytes in @data</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="user_data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">extra private user_data that the implementation of the memory + can use to store extra info.</doc> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="Memory" c:type="GstMemory" glib:type-name="GstMemory" glib:get-type="gst_memory_get_type" c:symbol-prefix="memory"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">GstMemory is a lightweight refcounted object that wraps a region of memory. +They are typically used to manage the data of a #GstBuffer. + +A GstMemory object has an allocated region of memory of maxsize. The maximum +size does not change during the lifetime of the memory object. The memory +also has an offset and size property that specifies the valid range of memory +in the allocated region. + +Memory is usually created by allocators with a gst_allocator_alloc() +method call. When %NULL is used as the allocator, the default allocator will +be used. + +New allocators can be registered with gst_allocator_register(). +Allocators are identified by name and can be retrieved with +gst_allocator_find(). gst_allocator_set_default() can be used to change the +default allocator. + +New memory can be created with gst_memory_new_wrapped() that wraps the memory +allocated elsewhere. + +Refcounting of the memory block is performed with gst_memory_ref() and +gst_memory_unref(). + +The size of the memory can be retrieved and changed with +gst_memory_get_sizes() and gst_memory_resize() respectively. + +Getting access to the data of the memory is performed with gst_memory_map(). +The call will return a pointer to offset bytes into the region of memory. +After the memory access is completed, gst_memory_unmap() should be called. + +Memory can be copied with gst_memory_copy(), which will return a writable +copy. gst_memory_share() will create a new memory block that shares the +memory with an existing memory block at a custom offset and with a custom +size. + +Memory can be efficiently merged when gst_memory_is_span() returns %TRUE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <field name="mini_object" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">parent structure</doc> + <type name="MiniObject" c:type="GstMiniObject"/> + </field> + <field name="allocator" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">pointer to the #GstAllocator</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </field> + <field name="parent" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">parent memory block</doc> + <type name="Memory" c:type="GstMemory*"/> + </field> + <field name="maxsize" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the maximum size allocated</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="align" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the alignment of the memory</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="offset" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the offset where valid data starts</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the size of valid data</doc> + <type name="gsize" c:type="gsize"/> + </field> + <constructor name="new_wrapped" c:identifier="gst_memory_new_wrapped"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">Allocate a new memory block that wraps the given @data. + +The prefix/padding must be filled with 0 if @flags contains +#GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstallocator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">a new #GstMemory.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">#GstMemoryFlags</doc> + <type name="MemoryFlags" c:type="GstMemoryFlags"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">data to + wrap</doc> + <array length="4" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="maxsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">allocated size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">offset in @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">size of valid data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">user_data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="5"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstallocator.c">called with @user_data when the memory is freed</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + <method name="copy" c:identifier="gst_memory_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Return a copy of @size bytes from @mem starting from @offset. This copy is +guaranteed to be writable. @size can be set to -1 to return a copy +from @offset to the end of the memory region.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a new copy of @mem if the copy succeeded, %NULL otherwise.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">offset to copy from</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">size to copy, or -1 to copy to the end of the memory region</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </method> + <method name="get_sizes" c:identifier="gst_memory_get_sizes"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Get the current @size, @offset and @maxsize of @mem.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">the current size of @mem</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">pointer to offset</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + <parameter name="maxsize" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">pointer to maxsize</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_memory_init" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Initializes a newly allocated @mem with the given parameters. This function +will call gst_mini_object_init() with the default memory parameters.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">#GstMemoryFlags</doc> + <type name="MemoryFlags" c:type="GstMemoryFlags"/> + </parameter> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">the #GstAllocator</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">the parent of @mem</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="maxsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">the total size of the memory</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="align" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">the alignment of the memory</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">The offset in the memory</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">the size of valid data in the memory</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="is_span" c:identifier="gst_memory_is_span"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Check if @mem1 and mem2 share the memory with a common parent memory object +and that the memory is contiguous. + +If this is the case, the memory of @mem1 and @mem2 can be merged +efficiently by performing gst_memory_share() on the parent object from +the returned @offset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">%TRUE if the memory is contiguous and of a common parent.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="mem1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="mem2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="offset" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a pointer to a result offset</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="is_type" c:identifier="gst_memory_is_type" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Check if @mem if allocated with an allocator for @mem_type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">%TRUE if @mem was allocated from an allocator for @mem_type.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="mem_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a memory type</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="make_mapped" c:identifier="gst_memory_make_mapped"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Create a #GstMemory object that is mapped with @flags. If @mem is mappable +with @flags, this function returns the mapped @mem directly. Otherwise a +mapped copy of @mem is returned. + +This function takes ownership of old @mem and returns a reference to a new +#GstMemory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory object mapped +with @flags or %NULL when a mapping is not possible.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="info" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">pointer for info</doc> + <type name="MapInfo" c:type="GstMapInfo*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">mapping flags</doc> + <type name="MapFlags" c:type="GstMapFlags"/> + </parameter> + </parameters> + </method> + <method name="map" c:identifier="gst_memory_map"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Fill @info with the pointer and sizes of the memory in @mem that can be +accessed according to @flags. + +This function can return %FALSE for various reasons: +- the memory backed by @mem is not accessible with the given @flags. +- the memory was already mapped with a different mapping. + +@info and its contents remain valid for as long as @mem is valid and +until gst_memory_unmap() is called. + +For each gst_memory_map() call, a corresponding gst_memory_unmap() call +should be done.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">%TRUE if the map operation was successful.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="info" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">pointer for info</doc> + <type name="MapInfo" c:type="GstMapInfo*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">mapping flags</doc> + <type name="MapFlags" c:type="GstMapFlags"/> + </parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_memory_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Increase the refcount of this memory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">@memory (for convenience when doing assignments)</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="memory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">The memory to refcount</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + </parameters> + </method> + <method name="resize" c:identifier="gst_memory_resize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Resize the memory region. @mem should be writable and offset + size should be +less than the maxsize of @mem. + +#GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED will be +cleared when offset or padding is increased respectively.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a new offset</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a new size</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="share" c:identifier="gst_memory_share"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Return a shared copy of @size bytes from @mem starting from @offset. No +memory copy is performed and the memory region is simply shared. The result +is guaranteed to be non-writable. @size can be set to -1 to return a shared +copy from @offset to the end of the memory region.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a new #GstMemory.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">offset to share from</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">size to share, or -1 to share to the end of the memory region</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </method> + <method name="unmap" c:identifier="gst_memory_unmap"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Release the memory obtained with gst_memory_map()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">a #GstMapInfo</doc> + <type name="MapInfo" c:type="GstMapInfo*"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_memory_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">Decrease the refcount of a memory, freeing it if the refcount reaches 0.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="memory" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.c">the memory to refcount</doc> + <type name="Memory" c:type="GstMemory*"/> + </instance-parameter> + </parameters> + </method> + </record> + <callback name="MemoryCopyFunction" c:type="GstMemoryCopyFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Copy @size bytes from @mem starting at @offset and return them wrapped in a +new GstMemory object. +If @size is set to -1, all bytes starting at @offset are copied.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a new #GstMemory object wrapping a copy of the requested region in +@mem.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">an offset</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a size or -1</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </callback> + <bitfield name="MemoryFlags" glib:type-name="GstMemoryFlags" glib:get-type="gst_memory_flags_get_type" c:type="GstMemoryFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Flags for wrapped memory.</doc> + <member name="readonly" value="2" c:identifier="GST_MEMORY_FLAG_READONLY" glib:nick="readonly"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">memory is readonly. It is not allowed to map the +memory with #GST_MAP_WRITE.</doc> + </member> + <member name="no_share" value="16" c:identifier="GST_MEMORY_FLAG_NO_SHARE" glib:nick="no-share"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">memory must not be shared. Copies will have to be +made when this memory needs to be shared between buffers. (DEPRECATED: +do not use in new code, instead you should create a custom GstAllocator for +memory pooling instead of relying on the GstBuffer they were originally +attached to.)</doc> + </member> + <member name="zero_prefixed" value="32" c:identifier="GST_MEMORY_FLAG_ZERO_PREFIXED" glib:nick="zero-prefixed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the memory prefix is filled with 0 bytes</doc> + </member> + <member name="zero_padded" value="64" c:identifier="GST_MEMORY_FLAG_ZERO_PADDED" glib:nick="zero-padded"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the memory padding is filled with 0 bytes</doc> + </member> + <member name="physically_contiguous" value="128" c:identifier="GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS" glib:nick="physically-contiguous"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the memory is physically +contiguous. (Since: 1.2)</doc> + </member> + <member name="not_mappable" value="256" c:identifier="GST_MEMORY_FLAG_NOT_MAPPABLE" glib:nick="not-mappable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the memory can't be mapped via +gst_memory_map() without any preconditions. (Since: 1.2)</doc> + </member> + <member name="last" value="1048576" c:identifier="GST_MEMORY_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">first flag that can be used for custom purposes</doc> + </member> + </bitfield> + <callback name="MemoryIsSpanFunction" c:type="GstMemoryIsSpanFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Check if @mem1 and @mem2 occupy contiguous memory and return the offset of +@mem1 in the parent buffer in @offset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">%TRUE if @mem1 and @mem2 are in contiguous memory.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="mem2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a result offset</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </callback> + <callback name="MemoryMapFullFunction" c:type="GstMemoryMapFullFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Get the memory of @mem that can be accessed according to the mode specified +in @info's flags. The function should return a pointer that contains at least +@maxsize bytes.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a pointer to memory of which at least @maxsize bytes can be +accessed according to the access pattern in @info's flags.</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">the #GstMapInfo to map with</doc> + <type name="MapInfo" c:type="GstMapInfo*"/> + </parameter> + <parameter name="maxsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">size to map</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </callback> + <callback name="MemoryMapFunction" c:type="GstMemoryMapFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Get the memory of @mem that can be accessed according to the mode specified +in @flags. The function should return a pointer that contains at least +@maxsize bytes.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a pointer to memory of which at least @maxsize bytes can be +accessed according to the access pattern in @flags.</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="maxsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">size to map</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">access mode for the memory</doc> + <type name="MapFlags" c:type="GstMapFlags"/> + </parameter> + </parameters> + </callback> + <callback name="MemoryShareFunction" c:type="GstMemoryShareFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Share @size bytes from @mem starting at @offset and return them wrapped in a +new GstMemory object. If @size is set to -1, all bytes starting at @offset are +shared. This function does not make a copy of the bytes in @mem.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a new #GstMemory object sharing the requested region in @mem.</doc> + <type name="Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">an offset</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a size or -1</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </callback> + <callback name="MemoryUnmapFullFunction" c:type="GstMemoryUnmapFullFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Release the pointer previously retrieved with gst_memory_map() with @info.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMapInfo</doc> + <type name="MapInfo" c:type="GstMapInfo*"/> + </parameter> + </parameters> + </callback> + <callback name="MemoryUnmapFunction" c:type="GstMemoryUnmapFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Release the pointer previously retrieved with gst_memory_map().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory</doc> + <type name="Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </callback> + <record name="Message" c:type="GstMessage" glib:type-name="GstMessage" glib:get-type="gst_message_get_type" c:symbol-prefix="message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Messages are implemented as a subclass of #GstMiniObject with a generic +#GstStructure as the content. This allows for writing custom messages without +requiring an API change while allowing a wide range of different types +of messages. + +Messages are posted by objects in the pipeline and are passed to the +application using the #GstBus. + +The basic use pattern of posting a message on a #GstBus is as follows: +|[<!-- language="C" --> + gst_bus_post (bus, gst_message_new_eos()); +]| + +A #GstElement usually posts messages on the bus provided by the parent +container using gst_element_post_message().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <field name="mini_object" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">the parent structure</doc> + <type name="MiniObject" c:type="GstMiniObject"/> + </field> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">the #GstMessageType of the message</doc> + <type name="MessageType" c:type="GstMessageType"/> + </field> + <field name="timestamp" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">the timestamp of the message</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="src" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">the src of the message</doc> + <type name="Object" c:type="GstObject*"/> + </field> + <field name="seqnum" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">the sequence number of the message</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="lock" readable="0" private="1"> + <type name="GLib.Mutex" c:type="GMutex"/> + </field> + <field name="cond" readable="0" private="1"> + <type name="GLib.Cond" c:type="GCond"/> + </field> + <constructor name="new_application" c:identifier="gst_message_new_application"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new application-typed message. GStreamer will never create these +messages; they are a gift from us to you. Enjoy.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new application message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the structure for the message. The message + will take ownership of the structure.</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_async_done" c:identifier="gst_message_new_async_done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The message is posted when elements completed an ASYNC state change. +@running_time contains the time of the desired running_time when this +elements goes to PLAYING. A value of #GST_CLOCK_TIME_NONE for @running_time +means that the element has no clock interaction and thus doesn't care about +the running_time of the pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new async_done message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="running_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the desired running_time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_async_start" c:identifier="gst_message_new_async_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">This message is posted by elements when they start an ASYNC state change.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new async_start message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_buffering" c:identifier="gst_message_new_buffering"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new buffering message. This message can be posted by an element that +needs to buffer data before it can continue processing. @percent should be a +value between 0 and 100. A value of 100 means that the buffering completed. + +When @percent is < 100 the application should PAUSE a PLAYING pipeline. When +@percent is 100, the application can set the pipeline (back) to PLAYING. +The application must be prepared to receive BUFFERING messages in the +PREROLLING state and may only set the pipeline to PLAYING after receiving a +message with @percent set to 100, which can happen after the pipeline +completed prerolling. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new buffering message.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="percent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The buffering percent</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_clock_lost" c:identifier="gst_message_new_clock_lost"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a clock lost message. This message is posted whenever the +clock is not valid anymore. + +If this message is posted by the pipeline, the pipeline will +select a new clock again when it goes to PLAYING. It might therefore +be needed to set the pipeline to PAUSED and PLAYING again.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new clock lost message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the clock that was lost</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_clock_provide" c:identifier="gst_message_new_clock_provide"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a clock provide message. This message is posted whenever an +element is ready to provide a clock or lost its ability to provide +a clock (maybe because it paused or became EOS). + +This message is mainly used internally to manage the clock +selection.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new provide clock message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the clock it provides</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + <parameter name="ready" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">%TRUE if the sender can provide a clock</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_custom" c:identifier="gst_message_new_custom"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new custom-typed message. This can be used for anything not +handled by other message-specific functions to pass a message to the +app. The structure field can be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstMessageType to distinguish messages</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="structure" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the structure for the + message. The message will take ownership of the structure.</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_device_added" c:identifier="gst_message_new_device_added" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Creates a new device-added message. The device-added message is produced by +#GstDeviceProvider or a #GstDeviceMonitor. They announce the appearance +of monitored devices.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a newly allocated #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstObject that created the message</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_device_changed" c:identifier="gst_message_new_device_changed" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">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> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a newly allocated #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstObject that created the message</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The newly created device representing @changed_device + with its new configuration.</doc> + <type name="Device" c:type="GstDevice*"/> + </parameter> + <parameter name="changed_device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The old version of the device.</doc> + <type name="Device" c:type="GstDevice*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_device_removed" c:identifier="gst_message_new_device_removed" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Creates a new device-removed message. The device-removed message is produced +by #GstDeviceProvider or a #GstDeviceMonitor. They announce the +disappearance of monitored devices.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a newly allocated #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstObject that created the message</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The removed #GstDevice</doc> + <type name="Device" c:type="GstDevice*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_duration_changed" c:identifier="gst_message_new_duration_changed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new duration changed message. This message is posted by elements +that know the duration of a stream when the duration changes. This message +is received by bins and is used to calculate the total duration of a +pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new duration-changed message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_element" c:identifier="gst_message_new_element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new element-specific message. This is meant as a generic way of +allowing one-way communication from an element to an application, for example +"the firewire cable was unplugged". The format of the message should be +documented in the element's documentation. The structure field can be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new element message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The structure for the + message. The message will take ownership of the structure.</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_eos" c:identifier="gst_message_new_eos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new eos message. This message is generated and posted in +the sink elements of a GstBin. The bin will only forward the EOS +message to the application if all sinks have posted an EOS message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new eos message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_error" c:identifier="gst_message_new_error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new error message. The message will copy @error and +@debug. This message is posted by element when a fatal event +occurred. The pipeline will probably (partially) stop. The application +receiving this message should stop the pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new error message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The GError for this message.</doc> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="debug" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A debugging string.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_error_with_details" c:identifier="gst_message_new_error_with_details" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new error message. The message will copy @error and +@debug. This message is posted by element when a fatal event +occurred. The pipeline will probably (partially) stop. The application +receiving this message should stop the pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new error message.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The GError for this message.</doc> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="debug" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A debugging string.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="details" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A GstStructure with details</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_have_context" c:identifier="gst_message_new_have_context" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">This message is posted when an element has a new local #GstContext.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new have-context message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="context" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the context</doc> + <type name="Context" c:type="GstContext*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_info" c:identifier="gst_message_new_info"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new info message. The message will make copies of @error and +@debug.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new info message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The GError for this message.</doc> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="debug" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A debugging string.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_info_with_details" c:identifier="gst_message_new_info_with_details" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new info message. The message will make copies of @error and +@debug.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new warning message.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The GError for this message.</doc> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="debug" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A debugging string.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="details" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A GstStructure with details</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_instant_rate_request" c:identifier="gst_message_new_instant_rate_request" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Creates a new instant-rate-request message. Elements handling the +instant-rate-change event must post this message. The message is +handled at the pipeline, and allows the pipeline to select the +running time when the rate change should happen and to send an +@GST_EVENT_INSTANT_RATE_SYNC_TIME event to notify the elements +in the pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a newly allocated #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstObject that posted the message</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="rate_multiplier" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the rate multiplier factor that should be applied</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_latency" c:identifier="gst_message_new_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">This message can be posted by elements when their latency requirements have +changed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new latency message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_need_context" c:identifier="gst_message_new_need_context" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">This message is posted when an element needs a specific #GstContext.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new need-context message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="context_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The context type that is needed</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_new_clock" c:identifier="gst_message_new_new_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new clock message. This message is posted whenever the +pipeline selects a new clock for the pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new new clock message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new selected clock</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_progress" c:identifier="gst_message_new_progress"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Progress messages are posted by elements when they use an asynchronous task +to perform actions triggered by a state change. + +@code contains a well defined string describing the action. +@text should contain a user visible string detailing the current action.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new qos message.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstProgressType</doc> + <type name="ProgressType" c:type="GstProgressType"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a progress code</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="text" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">free, user visible text describing the progress</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_property_notify" c:identifier="gst_message_new_property_notify" version="1.10"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a newly allocated #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstObject whose property changed (may or may not be a #GstElement)</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">name of the property that changed</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="val" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">new property value, or %NULL</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_qos" c:identifier="gst_message_new_qos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A QOS message is posted on the bus whenever an element decides to drop a +buffer because of QoS reasons or whenever it changes its processing strategy +because of QoS reasons (quality adjustments such as processing at lower +accuracy). + +This message can be posted by an element that performs synchronisation against the +clock (live) or it could be dropped by an element that performs QoS because of QOS +events received from a downstream element (!live). + +@running_time, @stream_time, @timestamp, @duration should be set to the +respective running-time, stream-time, timestamp and duration of the (dropped) +buffer that generated the QoS event. Values can be left to +GST_CLOCK_TIME_NONE when unknown.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new qos message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">if the message was generated by a live element</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="running_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the running time of the buffer that generated the message</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="stream_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the stream time of the buffer that generated the message</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the timestamps of the buffer that generated the message</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the duration of the buffer that generated the message</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_redirect" c:identifier="gst_message_new_redirect" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Creates a new redirect message and adds a new entry to it. Redirect messages +are posted when an element detects that the actual data has to be retrieved +from a different location. This is useful if such a redirection cannot be +handled inside a source element, for example when HTTP 302/303 redirects +return a non-HTTP URL. + +The redirect message can hold multiple entries. The first one is added +when the redirect message is created, with the given location, tag_list, +entry_struct arguments. Use gst_message_add_redirect_entry() to add more +entries. + +Each entry has a location, a tag list, and a structure. All of these are +optional. The tag list and structure are useful for additional metadata, +such as bitrate statistics for the given location. + +By default, message recipients should treat entries in the order they are +stored. The recipient should therefore try entry \#0 first, and if this +entry is not acceptable or working, try entry \#1 etc. Senders must make +sure that they add entries in this order. However, recipients are free to +ignore the order and pick an entry that is "best" for them. One example +would be a recipient that scans the entries for the one with the highest +bitrate tag. + +The specified location string is copied. However, ownership over the tag +list and structure are transferred to the message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a newly allocated #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstObject whose property changed (may or may not be a #GstElement)</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="location" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location string for the new entry</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tag_list" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">tag list for the new entry</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="entry_struct" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">structure for the new entry</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_request_state" c:identifier="gst_message_new_request_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">This message can be posted by elements when they want to have their state +changed. A typical use case would be an audio server that wants to pause the +pipeline because a higher priority stream is being played.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new request state message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new requested state</doc> + <type name="State" c:type="GstState"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_reset_time" c:identifier="gst_message_new_reset_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">This message is posted when the pipeline running-time should be reset to +@running_time, like after a flushing seek.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new reset_time message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="running_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the requested running-time</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_segment_done" c:identifier="gst_message_new_segment_done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new segment done message. This message is posted by elements that +finish playback of a segment as a result of a segment seek. This message +is received by the application after all elements that posted a segment_start +have posted the segment_done.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new segment done message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The format of the position being done</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The position of the segment being done</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_segment_start" c:identifier="gst_message_new_segment_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new segment message. This message is posted by elements that +start playback of a segment as a result of a segment seek. This message +is not received by the application but is used for maintenance reasons in +container elements.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new segment start message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The format of the position being played</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The position of the segment being played</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_state_changed" c:identifier="gst_message_new_state_changed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a state change message. This message is posted whenever an element +changed its state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new state change message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="oldstate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the previous state</doc> + <type name="State" c:type="GstState"/> + </parameter> + <parameter name="newstate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new (current) state</doc> + <type name="State" c:type="GstState"/> + </parameter> + <parameter name="pending" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the pending (target) state</doc> + <type name="State" c:type="GstState"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_state_dirty" c:identifier="gst_message_new_state_dirty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a state dirty message. This message is posted whenever an element +changed its state asynchronously and is used internally to update the +states of container objects.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new state dirty message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_step_done" c:identifier="gst_message_new_step_done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">This message is posted by elements when they complete a part, when @intermediate set +to %TRUE, or a complete step operation. + +@duration will contain the amount of time (in GST_FORMAT_TIME) of the stepped +@amount of media in format @format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new step_done message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the format of @amount</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="amount" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the amount of stepped data</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the rate of the stepped amount</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="flush" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">is this an flushing step</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="intermediate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">is this an intermediate step</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the duration of the data</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="eos" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the step caused EOS</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_step_start" c:identifier="gst_message_new_step_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">This message is posted by elements when they accept or activate a new step +event for @amount in @format. + +@active is set to %FALSE when the element accepted the new step event and has +queued it for execution in the streaming threads. + +@active is set to %TRUE when the element has activated the step operation and +is now ready to start executing the step in the streaming thread. After this +message is emitted, the application can queue a new step operation in the +element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new step_start message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">if the step is active or queued</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the format of @amount</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="amount" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the amount of stepped data</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the rate of the stepped amount</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="flush" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">is this an flushing step</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="intermediate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">is this an intermediate step</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_stream_collection" c:identifier="gst_message_new_stream_collection" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Creates a new stream-collection message. The message is used to announce new +#GstStreamCollection</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a newly allocated #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstObject that created the message</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="collection" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstStreamCollection</doc> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_stream_start" c:identifier="gst_message_new_stream_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new stream_start message. This message is generated and posted in +the sink elements of a GstBin. The bin will only forward the STREAM_START +message to the application if all sinks have posted an STREAM_START message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The new stream_start message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_stream_status" c:identifier="gst_message_new_stream_status"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new stream status message. This message is posted when a streaming +thread is created/destroyed or when the state changed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new stream status message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The stream status type.</doc> + <type name="StreamStatusType" c:type="GstStreamStatusType"/> + </parameter> + <parameter name="owner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the owner element of @src.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_streams_selected" c:identifier="gst_message_new_streams_selected" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Creates a new steams-selected message. The message is used to announce +that an array of streams has been selected. This is generally in response +to a #GST_EVENT_SELECT_STREAMS event, or when an element (such as decodebin3) +makes an initial selection of streams. + +The message also contains the #GstStreamCollection to which the various streams +belong to. + +Users of gst_message_new_streams_selected() can add the selected streams with +gst_message_streams_selected_add().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a newly allocated #GstMessage</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstObject that created the message</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="collection" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstStreamCollection</doc> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_structure_change" c:identifier="gst_message_new_structure_change"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new structure change message. This message is posted when the +structure of a pipeline is in the process of being changed, for example +when pads are linked or unlinked. + +@src should be the sinkpad that unlinked or linked.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new structure change message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The change type.</doc> + <type name="StructureChangeType" c:type="GstStructureChangeType"/> + </parameter> + <parameter name="owner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The owner element of @src.</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="busy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Whether the structure change is busy.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_tag" c:identifier="gst_message_new_tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new tag message. The message will take ownership of the tag list. +The message is posted by elements that discovered a new taglist.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new tag message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="tag_list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the tag list for the message.</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_toc" c:identifier="gst_message_new_toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new TOC message. The message is posted by elements +that discovered or updated a TOC.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a new TOC message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="toc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">#GstToc structure for the message.</doc> + <type name="Toc" c:type="GstToc*"/> + </parameter> + <parameter name="updated" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">whether TOC was updated or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_warning" c:identifier="gst_message_new_warning"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new warning message. The message will make copies of @error and +@debug.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new warning message. + +MT safe.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The GError for this message.</doc> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="debug" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A debugging string.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_warning_with_details" c:identifier="gst_message_new_warning_with_details" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Create a new warning message. The message will make copies of @error and +@debug.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new warning message.</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The object originating the message.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The GError for this message.</doc> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="debug" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A debugging string.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="details" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A GstStructure with details</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <method name="add_redirect_entry" c:identifier="gst_message_add_redirect_entry" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Creates and appends a new entry. + +The specified location string is copied. However, ownership over the tag +list and structure are transferred to the message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_REDIRECT</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="location" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location string for the new entry</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tag_list" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">tag list for the new entry</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="entry_struct" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">structure for the new entry</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_message_copy" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Creates a copy of the message. Returns a copy of the message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a new copy of @msg. + +MT safe</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the message to copy</doc> + <type name="Message" c:type="const GstMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_num_redirect_entries" c:identifier="gst_message_get_num_redirect_entries" version="1.10"> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the number of entries stored in the message</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_REDIRECT</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_seqnum" c:identifier="gst_message_get_seqnum"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Retrieve the sequence number of a message. + +Messages have ever-incrementing sequence numbers, which may also be set +explicitly via gst_message_set_seqnum(). Sequence numbers are typically used +to indicate that a message corresponds to some other set of messages or +events, for example a SEGMENT_DONE message corresponding to a SEEK event. It +is considered good practice to make this correspondence when possible, though +it is not required. + +Note that events and messages share the same sequence number incrementor; +two events or messages will never have the same sequence number unless +that correspondence was made explicitly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The message's sequence number. + +MT safe.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A #GstMessage.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_status_object" c:identifier="gst_message_get_stream_status_object"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the object managing the streaming thread from @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a GValue containing the object that manages the +streaming thread. This object is usually of type GstTask but other types can +be added in the future. The object remains valid as long as @message is +valid.</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_structure" c:identifier="gst_message_get_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Access the structure of the message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The structure of the message. The +structure is still owned by the message, which means that you should not +free it and that the pointer becomes invalid when you free the message. + +MT safe.</doc> + <type name="Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstMessage.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_name" c:identifier="gst_message_has_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Checks if @message has the given @name. This function is usually used to +check the name of a custom message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">%TRUE if @name matches the name of the message structure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The #GstMessage.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">name to check</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="parse_async_done" c:identifier="gst_message_parse_async_done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the running_time from the async_done message. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_ASYNC_DONE.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="running_time" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Result location for the running_time or %NULL</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="parse_buffering" c:identifier="gst_message_parse_buffering"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the buffering percent from the GstMessage. see also +gst_message_new_buffering(). + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_BUFFERING.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="percent" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Return location for the percent.</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="parse_buffering_stats" c:identifier="gst_message_parse_buffering_stats"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the buffering stats values from @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_BUFFERING.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="mode" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a buffering mode, or %NULL</doc> + <type name="BufferingMode" c:type="GstBufferingMode*"/> + </parameter> + <parameter name="avg_in" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the average input rate, or %NULL</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="avg_out" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the average output rate, or %NULL</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="buffering_left" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">amount of buffering time left in + milliseconds, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_clock_lost" c:identifier="gst_message_parse_clock_lost"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the lost clock from the GstMessage. +The clock object returned remains valid until the message is freed. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_CLOCK_LOST.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="clock" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a pointer to hold the lost clock</doc> + <type name="Clock" c:type="GstClock**"/> + </parameter> + </parameters> + </method> + <method name="parse_clock_provide" c:identifier="gst_message_parse_clock_provide"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the clock and ready flag from the GstMessage. +The clock object returned remains valid until the message is freed. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_CLOCK_PROVIDE.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="clock" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a pointer to hold a clock + object, or %NULL</doc> + <type name="Clock" c:type="GstClock**"/> + </parameter> + <parameter name="ready" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a pointer to hold the ready flag, or %NULL</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_context_type" c:identifier="gst_message_parse_context_type" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Parse a context type from an existing GST_MESSAGE_NEED_CONTEXT message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a #gboolean indicating if the parsing succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a GST_MESSAGE_NEED_CONTEXT type message</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="context_type" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the context type, or %NULL</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_device_added" c:identifier="gst_message_parse_device_added" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Parses a device-added message. The device-added message is produced by +#GstDeviceProvider or a #GstDeviceMonitor. It announces the appearance +of monitored devices.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_DEVICE_ADDED</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" filename="../subprojects/gstreamer/gst/gstmessage.c">A location where to store a + pointer to the new #GstDevice, or %NULL</doc> + <type name="Device" c:type="GstDevice**"/> + </parameter> + </parameters> + </method> + <method name="parse_device_changed" c:identifier="gst_message_parse_device_changed" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">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> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">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" filename="../subprojects/gstreamer/gst/gstmessage.c">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" filename="../subprojects/gstreamer/gst/gstmessage.c">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"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Parses a device-removed message. The device-removed message is produced by +#GstDeviceProvider or a #GstDeviceMonitor. It announces the +disappearance of monitored devices.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_DEVICE_REMOVED</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" filename="../subprojects/gstreamer/gst/gstmessage.c">A location where to store a + pointer to the removed #GstDevice, or %NULL</doc> + <type name="Device" c:type="GstDevice**"/> + </parameter> + </parameters> + </method> + <method name="parse_error" c:identifier="gst_message_parse_error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the GError and debug string from the GstMessage. The values returned +in the output arguments are copies; the caller must free them when done. + +Typical usage of this function might be: +|[<!-- language="C" --> + ... + switch (GST_MESSAGE_TYPE (msg)) { + case GST_MESSAGE_ERROR: { + GError *err = NULL; + gchar *dbg_info = NULL; + + gst_message_parse_error (msg, &err, &dbg_info); + g_printerr ("ERROR from element %s: %s\n", + GST_OBJECT_NAME (msg->src), err->message); + g_printerr ("Debugging info: %s\n", (dbg_info) ? dbg_info : "none"); + g_error_free (err); + g_free (dbg_info); + break; + } + ... + } + ... +]| + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_ERROR.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="gerror" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location for the GError</doc> + <type name="GLib.Error" c:type="GError**"/> + </parameter> + <parameter name="debug" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location for the debug message, + or %NULL</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_error_details" c:identifier="gst_message_parse_error_details" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Returns the optional details structure, may be NULL if none. +The returned structure must not be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">The message object</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="structure" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A pointer to the returned details</doc> + <type name="Structure" c:type="const GstStructure**"/> + </parameter> + </parameters> + </method> + <method name="parse_group_id" c:identifier="gst_message_parse_group_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the group from the STREAM_START message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">%TRUE if the message had a group id set, %FALSE otherwise + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_STREAM_START.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="group_id" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Result location for the group id or + %NULL</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="parse_have_context" c:identifier="gst_message_parse_have_context" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the context from the HAVE_CONTEXT message. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_HAVE_CONTEXT.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="context" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Result location for the + context or %NULL</doc> + <type name="Context" c:type="GstContext**"/> + </parameter> + </parameters> + </method> + <method name="parse_info" c:identifier="gst_message_parse_info"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the GError and debug string from the GstMessage. The values returned +in the output arguments are copies; the caller must free them when done. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_INFO.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="gerror" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location for the GError</doc> + <type name="GLib.Error" c:type="GError**"/> + </parameter> + <parameter name="debug" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location for the debug message, + or %NULL</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_info_details" c:identifier="gst_message_parse_info_details" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Returns the optional details structure, may be NULL if none +The returned structure must not be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">The message object</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="structure" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A pointer to the returned details</doc> + <type name="Structure" c:type="const GstStructure**"/> + </parameter> + </parameters> + </method> + <method name="parse_instant_rate_request" c:identifier="gst_message_parse_instant_rate_request" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Parses the rate_multiplier from the instant-rate-request message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_INSTANT_RATE_REQUEST</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="rate_multiplier" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">return location for the rate, or %NULL</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="parse_new_clock" c:identifier="gst_message_parse_new_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the new clock from the GstMessage. +The clock object returned remains valid until the message is freed. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_NEW_CLOCK.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="clock" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a pointer to hold the selected + new clock</doc> + <type name="Clock" c:type="GstClock**"/> + </parameter> + </parameters> + </method> + <method name="parse_progress" c:identifier="gst_message_parse_progress"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Parses the progress @type, @code and @text.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_PROGRESS.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location for the type</doc> + <type name="ProgressType" c:type="GstProgressType*"/> + </parameter> + <parameter name="code" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location for the code</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="text" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location for the text</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_property_notify" c:identifier="gst_message_parse_property_notify" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Parses a property-notify message. These will be posted on the bus only +when set up with gst_element_add_property_notify_watch() or +gst_element_add_property_deep_notify_watch().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_PROPERTY_NOTIFY</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="object" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location where to store a + pointer to the object whose property got changed, or %NULL</doc> + <type name="Object" c:type="GstObject**"/> + </parameter> + <parameter name="property_name" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">return location for + the name of the property that got changed, or %NULL</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + <parameter name="property_value" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">return location for + the new value of the property that got changed, or %NULL. This will + only be set if the property notify watch was told to include the value + when it was set up</doc> + <type name="GObject.Value" c:type="const GValue**"/> + </parameter> + </parameters> + </method> + <method name="parse_qos" c:identifier="gst_message_parse_qos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the timestamps and live status from the QoS message. + +The returned values give the running_time, stream_time, timestamp and +duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown +values. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_QOS.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="live" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">if the message was generated by a live element</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="running_time" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the running time of the buffer that + generated the message</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="stream_time" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the stream time of the buffer that + generated the message</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="timestamp" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the timestamps of the buffer that + generated the message</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="duration" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the duration of the buffer that + generated the message</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_qos_stats" c:identifier="gst_message_parse_qos_stats"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the QoS stats representing the history of the current continuous +pipeline playback period. + +When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are +invalid. Values of -1 for either @processed or @dropped mean unknown values. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_QOS.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Units of the 'processed' and 'dropped' fields. + Video sinks and video filters will use GST_FORMAT_BUFFERS (frames). + Audio sinks and audio filters will likely use GST_FORMAT_DEFAULT + (samples).</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="processed" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Total number of units correctly processed + since the last state change to READY or a flushing operation.</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="dropped" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Total number of units dropped since the last + state change to READY or a flushing operation.</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_qos_values" c:identifier="gst_message_parse_qos_values"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the QoS values that have been calculated/analysed from the QoS data + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_QOS.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="jitter" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The difference of the running-time against + the deadline.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="proportion" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Long term prediction of the ideal rate + relative to normal rate to get optimal quality.</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="quality" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">An element dependent integer value that + specifies the current quality level of the element. The default + maximum quality is 1000000.</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="parse_redirect_entry" c:identifier="gst_message_parse_redirect_entry" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Parses the location and/or structure from the entry with the given index. +The index must be between 0 and gst_message_get_num_redirect_entries() - 1. +Returned pointers are valid for as long as this message exists.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_REDIRECT</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="entry_index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">index of the entry to parse</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="location" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">return location for + the pointer to the entry's location string, or %NULL</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + <parameter name="tag_list" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">return location for + the pointer to the entry's tag list, or %NULL</doc> + <type name="TagList" c:type="GstTagList**"/> + </parameter> + <parameter name="entry_struct" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">return location + for the pointer to the entry's structure, or %NULL</doc> + <type name="Structure" c:type="const GstStructure**"/> + </parameter> + </parameters> + </method> + <method name="parse_request_state" c:identifier="gst_message_parse_request_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the requested state from the request_state message. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_REQUEST_STATE.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="state" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Result location for the requested state or %NULL</doc> + <type name="State" c:type="GstState*"/> + </parameter> + </parameters> + </method> + <method name="parse_reset_time" c:identifier="gst_message_parse_reset_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the running-time from the RESET_TIME message. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_RESET_TIME.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="running_time" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Result location for the running_time or + %NULL</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="parse_segment_done" c:identifier="gst_message_parse_segment_done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the position and format from the segment done message. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_SEGMENT_DONE.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Result location for the format, or %NULL</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="position" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Result location for the position, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_segment_start" c:identifier="gst_message_parse_segment_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the position and format from the segment start message. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_SEGMENT_START.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Result location for the format, or %NULL</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="position" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Result location for the position, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_state_changed" c:identifier="gst_message_parse_state_changed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the old and new states from the GstMessage. + +Typical usage of this function might be: +|[<!-- language="C" --> + ... + switch (GST_MESSAGE_TYPE (msg)) { + case GST_MESSAGE_STATE_CHANGED: { + GstState old_state, new_state; + + gst_message_parse_state_changed (msg, &old_state, &new_state, NULL); + g_print ("Element %s changed state from %s to %s.\n", + GST_OBJECT_NAME (msg->src), + gst_element_state_get_name (old_state), + gst_element_state_get_name (new_state)); + break; + } + ... + } + ... +]| + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a valid #GstMessage of type GST_MESSAGE_STATE_CHANGED</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="oldstate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the previous state, or %NULL</doc> + <type name="State" c:type="GstState*"/> + </parameter> + <parameter name="newstate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the new (current) state, or %NULL</doc> + <type name="State" c:type="GstState*"/> + </parameter> + <parameter name="pending" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the pending (target) state, or %NULL</doc> + <type name="State" c:type="GstState*"/> + </parameter> + </parameters> + </method> + <method name="parse_step_done" c:identifier="gst_message_parse_step_done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the values the step_done message. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_STEP_DONE.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the format</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="amount" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the amount</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="rate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the rate</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="flush" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the flush flag</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="intermediate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the intermediate flag</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="duration" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the duration</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="eos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the EOS flag</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_step_start" c:identifier="gst_message_parse_step_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the values from step_start message. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_STEP_DONE.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="active" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the active flag</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the format</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="amount" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the amount</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="rate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the rate</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="flush" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the flush flag</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="intermediate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">result location for the intermediate flag</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_stream_collection" c:identifier="gst_message_parse_stream_collection" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Parses a stream-collection message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_STREAM_COLLECTION</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="collection" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A location where to store a + pointer to the #GstStreamCollection, or %NULL</doc> + <type name="StreamCollection" c:type="GstStreamCollection**"/> + </parameter> + </parameters> + </method> + <method name="parse_stream_status" c:identifier="gst_message_parse_stream_status"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the stream status type and owner the GstMessage. The returned +owner remains valid for as long as the reference to @message is valid and +should thus not be unreffed. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="type" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A pointer to hold the status type</doc> + <type name="StreamStatusType" c:type="GstStreamStatusType*"/> + </parameter> + <parameter name="owner" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The owner element of the message source</doc> + <type name="Element" c:type="GstElement**"/> + </parameter> + </parameters> + </method> + <method name="parse_streams_selected" c:identifier="gst_message_parse_streams_selected" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Parses a streams-selected message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_STREAMS_SELECTED</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="collection" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A location where to store a + pointer to the #GstStreamCollection, or %NULL</doc> + <type name="StreamCollection" c:type="GstStreamCollection**"/> + </parameter> + </parameters> + </method> + <method name="parse_structure_change" c:identifier="gst_message_parse_structure_change"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the change type and completion status from the GstMessage. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_STRUCTURE_CHANGE.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="type" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A pointer to hold the change type</doc> + <type name="StructureChangeType" c:type="GstStructureChangeType*"/> + </parameter> + <parameter name="owner" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The owner element of the + message source</doc> + <type name="Element" c:type="GstElement**"/> + </parameter> + <parameter name="busy" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a pointer to hold whether the change is in + progress or has been completed</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_tag" c:identifier="gst_message_parse_tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the tag list from the GstMessage. The tag list returned in the +output argument is a copy; the caller must free it when done. + +Typical usage of this function might be: +|[<!-- language="C" --> + ... + switch (GST_MESSAGE_TYPE (msg)) { + case GST_MESSAGE_TAG: { + GstTagList *tags = NULL; + + gst_message_parse_tag (msg, &tags); + g_print ("Got tags from element %s\n", GST_OBJECT_NAME (msg->src)); + handle_tags (tags); + gst_tag_list_unref (tags); + break; + } + ... + } + ... +]| + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_TAG.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="tag_list" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">return location for the tag-list.</doc> + <type name="TagList" c:type="GstTagList**"/> + </parameter> + </parameters> + </method> + <method name="parse_toc" c:identifier="gst_message_parse_toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extract the TOC from the #GstMessage. The TOC returned in the +output argument is a copy; the caller must free it with +gst_toc_unref() when done. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a valid #GstMessage of type GST_MESSAGE_TOC.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="toc" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">return location for the TOC.</doc> + <type name="Toc" c:type="GstToc**"/> + </parameter> + <parameter name="updated" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">return location for the updated flag.</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_warning" c:identifier="gst_message_parse_warning"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Extracts the GError and debug string from the GstMessage. The values returned +in the output arguments are copies; the caller must free them when done. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_WARNING.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="gerror" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location for the GError</doc> + <type name="GLib.Error" c:type="GError**"/> + </parameter> + <parameter name="debug" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">location for the debug message, + or %NULL</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_warning_details" c:identifier="gst_message_parse_warning_details" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Returns the optional details structure, may be NULL if none +The returned structure must not be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">The message object</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="structure" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A pointer to the returned details</doc> + <type name="Structure" c:type="const GstStructure**"/> + </parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_message_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Convenience macro to increase the reference count of the message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">@msg (for convenience when doing assignments)</doc> + <type name="Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the message to ref</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_buffering_stats" c:identifier="gst_message_set_buffering_stats"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Configures the buffering stats values in @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_BUFFERING.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a buffering mode</doc> + <type name="BufferingMode" c:type="GstBufferingMode"/> + </parameter> + <parameter name="avg_in" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the average input rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="avg_out" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the average output rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="buffering_left" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">amount of buffering time left in milliseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_group_id" c:identifier="gst_message_set_group_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Sets the group id on the stream-start message. + +All streams that have the same group id are supposed to be played +together, i.e. all streams inside a container file should have the +same group id but different stream ids. The group id should change +each time the stream is started, resulting in different group ids +each time a file is played for example. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">the message</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="group_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the group id</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_qos_stats" c:identifier="gst_message_set_qos_stats"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Set the QoS stats representing the history of the current continuous pipeline +playback period. + +When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are +invalid. Values of -1 for either @processed or @dropped mean unknown values. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_QOS.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Units of the 'processed' and 'dropped' fields. Video sinks and video +filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters +will likely use GST_FORMAT_DEFAULT (samples).</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="processed" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Total number of units correctly processed since the last state +change to READY or a flushing operation.</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="dropped" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Total number of units dropped since the last state change to READY +or a flushing operation.</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="set_qos_values" c:identifier="gst_message_set_qos_values"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Set the QoS values that have been calculated/analysed from the QoS data + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_QOS.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="jitter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The difference of the running-time against the deadline.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="proportion" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Long term prediction of the ideal rate relative to normal rate +to get optimal quality.</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="quality" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">An element dependent integer value that specifies the current +quality level of the element. The default maximum quality is 1000000.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_seqnum" c:identifier="gst_message_set_seqnum"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Set the sequence number of a message. + +This function might be called by the creator of a message to indicate that +the message relates to other messages or events. See gst_message_get_seqnum() +for more information. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A #GstMessage.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="seqnum" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A sequence number.</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_stream_status_object" c:identifier="gst_message_set_stream_status_object"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Configures the object handling the streaming thread. This is usually a +GstTask object but other objects might be added in the future.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the object controlling the streaming</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="streams_selected_add" c:identifier="gst_message_streams_selected_add" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Adds the @stream to the @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_STREAMS_SELECTED</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstStream to add to @message</doc> + <type name="Stream" c:type="GstStream*"/> + </parameter> + </parameters> + </method> + <method name="streams_selected_get_size" c:identifier="gst_message_streams_selected_get_size" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Returns the number of streams contained in the @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The number of streams contained within.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_STREAMS_SELECTED</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="streams_selected_get_stream" c:identifier="gst_message_streams_selected_get_stream" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Retrieves the #GstStream with index @index from the @message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a #GstMessage of type %GST_MESSAGE_STREAMS_SELECTED</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Index of the stream to retrieve</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_message_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Convenience macro to decrease the reference count of the message, possibly +freeing it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the message to unref</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="writable_structure" c:identifier="gst_message_writable_structure" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Get a writable version of the structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">The structure of the message. The structure +is still owned by the message, which means that you should not free +it and that the pointer becomes invalid when you free the message. +This function ensures that @message is writable, and if so, will +never return %NULL. + +MT safe.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">A writable #GstMessage.</doc> + <type name="Message" c:type="GstMessage*"/> + </instance-parameter> + </parameters> + </method> + <function name="replace" c:identifier="gst_message_replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Modifies a pointer to a #GstMessage to point to a different #GstMessage. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +message is unreffed, the new one is reffed). + +Either @new_message or the #GstMessage pointed to by @old_message may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">%TRUE if @new_message was different from @old_message</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_message" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">pointer to a + pointer to a #GstMessage to be replaced.</doc> + <type name="Message" c:type="GstMessage**"/> + </parameter> + <parameter name="new_message" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">pointer to a #GstMessage that will + replace the message pointed to by @old_message.</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="take" c:identifier="gst_message_take" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Modifies a pointer to a #GstMessage to point to a different #GstMessage. This +function is similar to gst_message_replace() except that it takes ownership +of @new_message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">%TRUE if @new_message was different from @old_message</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_message" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">pointer to a pointer to a #GstMessage + to be replaced.</doc> + <type name="Message" c:type="GstMessage**"/> + </parameter> + <parameter name="new_message" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">pointer to a #GstMessage that + will replace the message pointed to by @old_message.</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + </record> + <bitfield name="MessageType" glib:type-name="GstMessageType" glib:get-type="gst_message_type_get_type" c:type="GstMessageType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">The different message types that are available.</doc> + <member name="unknown" value="0" c:identifier="GST_MESSAGE_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">an undefined message</doc> + </member> + <member name="eos" value="1" c:identifier="GST_MESSAGE_EOS" glib:nick="eos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">end-of-stream reached in a pipeline. The application will +only receive this message in the PLAYING state and every time it sets a +pipeline to PLAYING that is in the EOS state. The application can perform a +flushing seek in the pipeline, which will undo the EOS state again.</doc> + </member> + <member name="error" value="2" c:identifier="GST_MESSAGE_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">an error occurred. When the application receives an error +message it should stop playback of the pipeline and not assume that more +data will be played. It is possible to specify a redirection url to the error +messages by setting a `redirect-location` field into the error message, application +or high level bins might use the information as required.</doc> + </member> + <member name="warning" value="4" c:identifier="GST_MESSAGE_WARNING" glib:nick="warning"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a warning occurred.</doc> + </member> + <member name="info" value="8" c:identifier="GST_MESSAGE_INFO" glib:nick="info"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">an info message occurred</doc> + </member> + <member name="tag" value="16" c:identifier="GST_MESSAGE_TAG" glib:nick="tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a tag was found.</doc> + </member> + <member name="buffering" value="32" c:identifier="GST_MESSAGE_BUFFERING" glib:nick="buffering"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">the pipeline is buffering. When the application +receives a buffering message in the PLAYING state for a non-live pipeline it +must PAUSE the pipeline until the buffering completes, when the percentage +field in the message is 100%. For live pipelines, no action must be +performed and the buffering percentage can be used to inform the user about +the progress.</doc> + </member> + <member name="state_changed" value="64" c:identifier="GST_MESSAGE_STATE_CHANGED" glib:nick="state-changed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a state change happened</doc> + </member> + <member name="state_dirty" value="128" c:identifier="GST_MESSAGE_STATE_DIRTY" glib:nick="state-dirty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">an element changed state in a streaming thread. +This message is deprecated.</doc> + </member> + <member name="step_done" value="256" c:identifier="GST_MESSAGE_STEP_DONE" glib:nick="step-done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a stepping operation finished.</doc> + </member> + <member name="clock_provide" value="512" c:identifier="GST_MESSAGE_CLOCK_PROVIDE" glib:nick="clock-provide"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">an element notifies its capability of providing + a clock. This message is used internally and + never forwarded to the application.</doc> + </member> + <member name="clock_lost" value="1024" c:identifier="GST_MESSAGE_CLOCK_LOST" glib:nick="clock-lost"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">The current clock as selected by the pipeline became + unusable. The pipeline will select a new clock on + the next PLAYING state change. The application + should set the pipeline to PAUSED and back to + PLAYING when this message is received.</doc> + </member> + <member name="new_clock" value="2048" c:identifier="GST_MESSAGE_NEW_CLOCK" glib:nick="new-clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a new clock was selected in the pipeline.</doc> + </member> + <member name="structure_change" value="4096" c:identifier="GST_MESSAGE_STRUCTURE_CHANGE" glib:nick="structure-change"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">the structure of the pipeline changed. This +message is used internally and never forwarded to the application.</doc> + </member> + <member name="stream_status" value="8192" c:identifier="GST_MESSAGE_STREAM_STATUS" glib:nick="stream-status"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">status about a stream, emitted when it starts, + stops, errors, etc..</doc> + </member> + <member name="application" value="16384" c:identifier="GST_MESSAGE_APPLICATION" glib:nick="application"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">message posted by the application, possibly + via an application-specific element.</doc> + </member> + <member name="element" value="32768" c:identifier="GST_MESSAGE_ELEMENT" glib:nick="element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">element-specific message, see the specific element's + documentation</doc> + </member> + <member name="segment_start" value="65536" c:identifier="GST_MESSAGE_SEGMENT_START" glib:nick="segment-start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">pipeline started playback of a segment. This +message is used internally and never forwarded to the application.</doc> + </member> + <member name="segment_done" value="131072" c:identifier="GST_MESSAGE_SEGMENT_DONE" glib:nick="segment-done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">pipeline completed playback of a segment. This +message is forwarded to the application after all elements that posted +@GST_MESSAGE_SEGMENT_START posted a GST_MESSAGE_SEGMENT_DONE message.</doc> + </member> + <member name="duration_changed" value="262144" c:identifier="GST_MESSAGE_DURATION_CHANGED" glib:nick="duration-changed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">The duration of a pipeline changed. The +application can get the new duration with a duration query.</doc> + </member> + <member name="latency" value="524288" c:identifier="GST_MESSAGE_LATENCY" glib:nick="latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Posted by elements when their latency changes. The +application should recalculate and distribute a new latency.</doc> + </member> + <member name="async_start" value="1048576" c:identifier="GST_MESSAGE_ASYNC_START" glib:nick="async-start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Posted by elements when they start an ASYNC +#GstStateChange. This message is not forwarded to the application but is used +internally.</doc> + </member> + <member name="async_done" value="2097152" c:identifier="GST_MESSAGE_ASYNC_DONE" glib:nick="async-done"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Posted by elements when they complete an ASYNC +#GstStateChange. The application will only receive this message from the toplevel +pipeline.</doc> + </member> + <member name="request_state" value="4194304" c:identifier="GST_MESSAGE_REQUEST_STATE" glib:nick="request-state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Posted by elements when they want the pipeline to +change state. This message is a suggestion to the application which can +decide to perform the state change on (part of) the pipeline.</doc> + </member> + <member name="step_start" value="8388608" c:identifier="GST_MESSAGE_STEP_START" glib:nick="step-start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A stepping operation was started.</doc> + </member> + <member name="qos" value="16777216" c:identifier="GST_MESSAGE_QOS" glib:nick="qos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A buffer was dropped or an element changed its processing +strategy for Quality of Service reasons.</doc> + </member> + <member name="progress" value="33554432" c:identifier="GST_MESSAGE_PROGRESS" glib:nick="progress"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A progress message.</doc> + </member> + <member name="toc" value="67108864" c:identifier="GST_MESSAGE_TOC" glib:nick="toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A new table of contents (TOC) was found or previously found TOC +was updated.</doc> + </member> + <member name="reset_time" value="134217728" c:identifier="GST_MESSAGE_RESET_TIME" glib:nick="reset-time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message to request resetting the pipeline's + running time from the pipeline. This is an internal message which + applications will likely never receive.</doc> + </member> + <member name="stream_start" value="268435456" c:identifier="GST_MESSAGE_STREAM_START" glib:nick="stream-start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating start of a new stream. Useful + e.g. when using playbin in gapless playback mode, to get notified when + the next title actually starts playing (which will be some time after + the URI for the next title has been set).</doc> + </member> + <member name="need_context" value="536870912" c:identifier="GST_MESSAGE_NEED_CONTEXT" glib:nick="need-context"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating that an element wants a specific context (Since: 1.2)</doc> + </member> + <member name="have_context" value="1073741824" c:identifier="GST_MESSAGE_HAVE_CONTEXT" glib:nick="have-context"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating that an element created a context (Since: 1.2)</doc> + </member> + <member name="extended" value="2147483648" c:identifier="GST_MESSAGE_EXTENDED" glib:nick="extended"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message is an extended message type (see below). + These extended message IDs can't be used directly with mask-based API + like gst_bus_poll() or gst_bus_timed_pop_filtered(), but you can still + filter for GST_MESSAGE_EXTENDED and then check the result for the + specific type. (Since: 1.4)</doc> + </member> + <member name="device_added" value="2147483649" c:identifier="GST_MESSAGE_DEVICE_ADDED" glib:nick="device-added"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating a #GstDevice was added to + a #GstDeviceProvider (Since: 1.4)</doc> + </member> + <member name="device_removed" value="2147483650" c:identifier="GST_MESSAGE_DEVICE_REMOVED" glib:nick="device-removed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating a #GstDevice was removed + from a #GstDeviceProvider (Since: 1.4)</doc> + </member> + <member name="property_notify" value="2147483651" c:identifier="GST_MESSAGE_PROPERTY_NOTIFY" glib:nick="property-notify"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating a #GObject property has + changed (Since: 1.10)</doc> + </member> + <member name="stream_collection" value="2147483652" c:identifier="GST_MESSAGE_STREAM_COLLECTION" glib:nick="stream-collection"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating a new #GstStreamCollection + is available (Since: 1.10)</doc> + </member> + <member name="streams_selected" value="2147483653" c:identifier="GST_MESSAGE_STREAMS_SELECTED" glib:nick="streams-selected"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating the active selection of + #GstStreams has changed (Since: 1.10)</doc> + </member> + <member name="redirect" value="2147483654" c:identifier="GST_MESSAGE_REDIRECT" glib:nick="redirect"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating to request the application to + 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="2147483655" c:identifier="GST_MESSAGE_DEVICE_CHANGED" glib:nick="device-changed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message indicating a #GstDevice was changed + a #GstDeviceProvider (Since: 1.16)</doc> + </member> + <member name="instant_rate_request" value="2147483656" c:identifier="GST_MESSAGE_INSTANT_RATE_REQUEST" glib:nick="instant-rate-request"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Message sent by elements to request the + running time from the pipeline when an instant rate change should + be applied (which may be in the past when the answer arrives). (Since: 1.18)</doc> + </member> + <member name="any" value="4294967295" c:identifier="GST_MESSAGE_ANY" glib:nick="any"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">mask for all of the above messages.</doc> + </member> + <function name="get_name" c:identifier="gst_message_type_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Get a printable name for the given message type. Do not modify or free.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a reference to the static name of the message.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the message type</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + </parameters> + </function> + <function name="to_quark" c:identifier="gst_message_type_to_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Get the unique quark for the given message type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the quark associated with the message type</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the message type</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + </parameters> + </function> + </bitfield> + <record name="Meta" c:type="GstMeta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">The #GstMeta structure should be included as the first member of a #GstBuffer +metadata structure. The structure defines the API of the metadata and should +be accessible to all elements using the metadata. + +A metadata API is registered with gst_meta_api_type_register() which takes a +name for the metadata API and some tags associated with the metadata. +With gst_meta_api_type_has_tag() one can check if a certain metadata API +contains a given tag. + +Multiple implementations of a metadata API can be registered. +To implement a metadata API, gst_meta_register() should be used. This +function takes all parameters needed to create, free and transform metadata +along with the size of the metadata. The function returns a #GstMetaInfo +structure that contains the information for the implementation of the API. + +A specific implementation can be retrieved by name with gst_meta_get_info(). + +See #GstBuffer for how the metadata can be added, retrieved and removed from +buffers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">extra flags for the metadata</doc> + <type name="MetaFlags" c:type="GstMetaFlags"/> + </field> + <field name="info" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">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" filename="../subprojects/gstreamer/gst/gstmeta.c">Meta sequence number compare function. Can be used as #GCompareFunc +or a #GCompareDataFunc.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">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" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMeta</doc> + <type name="Meta" c:type="const GstMeta*"/> + </instance-parameter> + <parameter name="meta2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">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" filename="../subprojects/gstreamer/gst/gstmeta.c">Gets seqnum for this meta.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <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" filename="../subprojects/gstreamer/gst/gstmeta.c">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"> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">an array of tags as strings.</doc> + <array c:type="const gchar* const*"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">an API</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + <function name="api_type_has_tag" c:identifier="gst_meta_api_type_has_tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Check if @api was registered with @tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">%TRUE if @api was registered with @tag.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">an API</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the tag to check</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </function> + <function name="api_type_register" c:identifier="gst_meta_api_type_register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Register and return a GType for the @api and associate it with +@tags.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a unique GType for @api.</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">an API to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">tags for @api</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </function> + <function name="get_info" c:identifier="gst_meta_get_info"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Lookup a previously registered meta info structure by its implementation name +@impl.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaInfo with @impl, or +%NULL when no such metainfo exists.</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + <parameters> + <parameter name="impl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="register" c:identifier="gst_meta_register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Register a new #GstMeta implementation. + +The same @info can be retrieved later with gst_meta_get_info() by using +@impl as the key.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaInfo that can be used to +access metadata.</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the type of the #GstMeta API</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="impl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the name of the #GstMeta implementation</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the size of the #GstMeta structure</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="init_func" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaInitFunction</doc> + <type name="MetaInitFunction" c:type="GstMetaInitFunction"/> + </parameter> + <parameter name="free_func" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaFreeFunction</doc> + <type name="MetaFreeFunction" c:type="GstMetaFreeFunction"/> + </parameter> + <parameter name="transform_func" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaTransformFunction</doc> + <type name="MetaTransformFunction" c:type="GstMetaTransformFunction"/> + </parameter> + </parameters> + </function> + <function name="register_custom" c:identifier="gst_meta_register_custom" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Register a new custom #GstMeta implementation, backed by an opaque +structure holding a #GstStructure. + +The registered info can be retrieved later with gst_meta_get_info() by using +@name as the key. + +The backing #GstStructure can be retrieved with +gst_custom_meta_get_structure(), its mutability is conditioned by the +writability of the buffer the meta is attached to. + +When @transform_func is %NULL, the meta and its backing #GstStructure +will always be copied when the transform operation is copy, other operations +are discarded, copy regions are ignored.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaInfo that can be used to +access metadata.</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the name of the #GstMeta implementation</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">tags for @api</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="transform_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="3" destroy="4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaTransformFunction</doc> + <type name="CustomMetaTransformFunction" c:type="GstCustomMetaTransformFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">user data passed to @transform_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_data" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">#GDestroyNotify for user_data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + </record> + <bitfield name="MetaFlags" glib:type-name="GstMetaFlags" glib:get-type="gst_meta_flags_get_type" c:type="GstMetaFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Extra metadata flags.</doc> + <member name="none" value="0" c:identifier="GST_META_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">no flags</doc> + </member> + <member name="readonly" value="1" c:identifier="GST_META_FLAG_READONLY" glib:nick="readonly"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">metadata should not be modified</doc> + </member> + <member name="pooled" value="2" c:identifier="GST_META_FLAG_POOLED" glib:nick="pooled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">metadata is managed by a bufferpool</doc> + </member> + <member name="locked" value="4" c:identifier="GST_META_FLAG_LOCKED" glib:nick="locked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">metadata should not be removed</doc> + </member> + <member name="last" value="65536" c:identifier="GST_META_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">additional flags can be added starting from this flag.</doc> + </member> + </bitfield> + <callback name="MetaFreeFunction" c:type="GstMetaFreeFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Function called when @meta is freed in @buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstMeta</doc> + <type name="Meta" c:type="GstMeta*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + <record name="MetaInfo" c:type="GstMetaInfo"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">The #GstMetaInfo provides information about a specific metadata +structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <field name="api" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">tag identifying the metadata structure and api</doc> + <type name="GType" c:type="GType"/> + </field> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">type identifying the implementor of the api</doc> + <type name="GType" c:type="GType"/> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">size of the metadata</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="init_func" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">function for initializing the metadata</doc> + <type name="MetaInitFunction" c:type="GstMetaInitFunction"/> + </field> + <field name="free_func" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">function for freeing the metadata</doc> + <type name="MetaFreeFunction" c:type="GstMetaFreeFunction"/> + </field> + <field name="transform_func" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">function for transforming the metadata</doc> + <type name="MetaTransformFunction" c:type="GstMetaTransformFunction"/> + </field> + <method name="is_custom" c:identifier="gst_meta_info_is_custom" version="1.20"> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">whether @info was registered as a #GstCustomMeta with + gst_meta_register_custom()</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </instance-parameter> + </parameters> + </method> + </record> + <callback name="MetaInitFunction" c:type="GstMetaInitFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Function called when @meta is initialized in @buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstMeta</doc> + <type name="Meta" c:type="GstMeta*"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">parameters passed to the init function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + <record name="MetaTransformCopy" c:type="GstMetaTransformCopy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Extra data passed to a "gst-copy" transform #GstMetaTransformFunction.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <field name="region" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">%TRUE if only region is copied</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="offset" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">the offset to copy, 0 if @region is %FALSE, otherwise > 0</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">the size to copy, -1 or the buffer size when @region is %FALSE</doc> + <type name="gsize" c:type="gsize"/> + </field> + </record> + <callback name="MetaTransformFunction" c:type="GstMetaTransformFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">Function called for each @meta in @buffer as a result of performing a +transformation on @transbuf. Additional @type specific transform data +is passed to the function as @data. + +Implementations should check the @type of the transform and parse +additional type specific fields in @data that should be used to update +the metadata on @transbuf.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">%TRUE if the transform could be performed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="transbuf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstMeta</doc> + <type name="Meta" c:type="GstMeta*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">a #GstBuffer</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">the transform type</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.h">transform specific data.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="MiniObject" c:type="GstMiniObject" glib:type-name="GstMiniObject" glib:get-type="gst_mini_object_get_type" c:symbol-prefix="mini_object"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">#GstMiniObject is a simple structure that can be used to implement refcounted +types. + +Subclasses will include #GstMiniObject as the first member in their structure +and then call gst_mini_object_init() to initialize the #GstMiniObject fields. + +gst_mini_object_ref() and gst_mini_object_unref() increment and decrement the +refcount respectively. When the refcount of a mini-object reaches 0, the +dispose function is called first and when this returns %TRUE, the free +function of the miniobject is called. + +A copy can be made with gst_mini_object_copy(). + +gst_mini_object_is_writable() will return %TRUE when the refcount of the +object is exactly 1 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 +meant to be specific to the particular object and is not automatically copied +with gst_mini_object_copy() or similar methods. + +A weak reference can be added and remove with gst_mini_object_weak_ref() +and gst_mini_object_weak_unref() respectively.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">the GType of the object</doc> + <type name="GType" c:type="GType"/> + </field> + <field name="refcount" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">atomic refcount</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="lockstate" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">atomic state of the locks</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">extra flags.</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="copy" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">a copy function</doc> + <type name="MiniObjectCopyFunction" c:type="GstMiniObjectCopyFunction"/> + </field> + <field name="dispose" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">a dispose function</doc> + <type name="MiniObjectDisposeFunction" c:type="GstMiniObjectDisposeFunction"/> + </field> + <field name="free" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">the free function</doc> + <type name="MiniObjectFreeFunction" c:type="GstMiniObjectFreeFunction"/> + </field> + <field name="priv_uint" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <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" filename="../subprojects/gstreamer/gst/gstminiobject.c">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> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstminiobject.c">a #GstMiniObject</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">a parent #GstMiniObject</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_mini_object_copy" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Creates a copy of the mini-object. + +MT safe</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the new mini-object if copying is +possible, %NULL otherwise.</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <instance-parameter name="mini_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the mini-object to copy</doc> + <type name="MiniObject" c:type="const GstMiniObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_qdata" c:identifier="gst_mini_object_get_qdata"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">This function gets back user data pointers stored via +gst_mini_object_set_qdata().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">The user data pointer set, or +%NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">The GstMiniObject to get a stored user data pointer from</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="quark" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">A #GQuark, naming the user data pointer</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_mini_object_init" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Initializes a mini-object with the desired type and copy/dispose/free +functions.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mini_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">a #GstMiniObject</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">initial #GstMiniObjectFlags</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the #GType of the mini-object to create</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="copy_func" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the copy function, or %NULL</doc> + <type name="MiniObjectCopyFunction" c:type="GstMiniObjectCopyFunction"/> + </parameter> + <parameter name="dispose_func" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the dispose function, or %NULL</doc> + <type name="MiniObjectDisposeFunction" c:type="GstMiniObjectDisposeFunction"/> + </parameter> + <parameter name="free_func" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the free function or %NULL</doc> + <type name="MiniObjectFreeFunction" c:type="GstMiniObjectFreeFunction"/> + </parameter> + </parameters> + </method> + <method name="is_writable" c:identifier="gst_mini_object_is_writable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">If @mini_object has the LOCKABLE flag set, check if the current EXCLUSIVE +lock on @object is the only one, this means that changes to the object will +not be visible to any other object. + +If the LOCKABLE flag is not set, check if the refcount of @mini_object is +exactly 1, meaning that no other reference exists to the object and that the +object is therefore writable. + +Modification of a mini-object should only be done after verifying that it +is writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">%TRUE if the object is writable.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="mini_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the mini-object to check</doc> + <type name="MiniObject" c:type="const GstMiniObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="lock" c:identifier="gst_mini_object_lock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Lock the mini-object with the specified access mode in @flags.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">%TRUE if @object could be locked.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the mini-object to lock</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">#GstLockFlags</doc> + <type name="LockFlags" c:type="GstLockFlags"/> + </parameter> + </parameters> + </method> + <method name="make_writable" c:identifier="gst_mini_object_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Checks if a mini-object is writable. If not, a writable copy is made and +returned. This gives away the reference to the original mini object, +and returns a reference to the new object. + +MT safe</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">a writable mini-object (which may or may not be + the same as @mini_object) or %NULL if copying is required but not possible.</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <instance-parameter name="mini_object" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the mini-object to make writable</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_mini_object_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Increase the reference count of the mini-object. + +Note that the refcount affects the writability +of @mini-object, see gst_mini_object_is_writable(). It is +important to note that keeping additional references to +GstMiniObject instances can potentially increase the number +of memcpy operations in a pipeline, especially if the miniobject +is a #GstBuffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the mini-object.</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <instance-parameter name="mini_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the mini-object</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_parent" c:identifier="gst_mini_object_remove_parent" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">This removes @parent as a parent for @object. See +gst_mini_object_add_parent().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstminiobject.c">a #GstMiniObject</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">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" filename="../subprojects/gstreamer/gst/gstminiobject.c">This sets an opaque, named pointer on a miniobject. +The name is specified through a #GQuark (retrieved e.g. via +g_quark_from_static_string()), and the pointer +can be gotten back from the @object with gst_mini_object_get_qdata() +until the @object is disposed. +Setting a previously set user data pointer, overrides (frees) +the old pointer set, using %NULL as pointer essentially +removes the data stored. + +@destroy may be specified which is called with @data as argument +when the @object is disposed, or the data is being overwritten by +a call to gst_mini_object_set_qdata() with the same @quark.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstminiobject.c">a #GstMiniObject</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="quark" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">A #GQuark, naming the user data pointer</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">An opaque user data pointer</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Function to invoke with @data as argument, when @data + needs to be freed</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="steal_qdata" c:identifier="gst_mini_object_steal_qdata"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">This function gets back user data pointers stored via gst_mini_object_set_qdata() +and removes the data from @object without invoking its `destroy()` function (if +any was set).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">The user data pointer set, or +%NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">The GstMiniObject to get a stored user data pointer from</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="quark" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">A #GQuark, naming the user data pointer</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </method> + <method name="unlock" c:identifier="gst_mini_object_unlock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Unlock the mini-object with the specified access mode in @flags.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstminiobject.c">the mini-object to unlock</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">#GstLockFlags</doc> + <type name="LockFlags" c:type="GstLockFlags"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_mini_object_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Decreases the reference count of the mini-object, possibly freeing +the mini-object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mini_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the mini-object</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="weak_ref" c:identifier="gst_mini_object_weak_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Adds a weak reference callback to a mini object. Weak references are +used for notification when a mini object is finalized. They are called +"weak references" because they allow you to safely hold a pointer +to the mini object without calling gst_mini_object_ref() +(gst_mini_object_ref() adds a strong reference, that is, forces the object +to stay alive).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstminiobject.c">#GstMiniObject to reference weakly</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="notify" transfer-ownership="none" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">callback to invoke before the mini object is freed</doc> + <type name="MiniObjectNotify" c:type="GstMiniObjectNotify"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">extra data to pass to notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="weak_unref" c:identifier="gst_mini_object_weak_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Removes a weak reference callback from a mini object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstminiobject.c">#GstMiniObject to remove a weak reference from</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </instance-parameter> + <parameter name="notify" transfer-ownership="none" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">callback to search for</doc> + <type name="MiniObjectNotify" c:type="GstMiniObjectNotify"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">data to search for</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <function name="replace" c:identifier="gst_mini_object_replace"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Atomically modifies a pointer to point to a new mini-object. +The reference count of @olddata is decreased and the reference count of +@newdata is increased. + +Either @newdata and the value pointed to by @olddata may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">%TRUE if @newdata was different from @olddata</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="olddata" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to a pointer to a + mini-object to be replaced</doc> + <type name="MiniObject" c:type="GstMiniObject**"/> + </parameter> + <parameter name="newdata" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to new mini-object</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </function> + <function name="steal" c:identifier="gst_mini_object_steal" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Replace the current #GstMiniObject pointer to by @olddata with %NULL and +return the old value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the #GstMiniObject at @oldata</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <parameter name="olddata" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to a pointer to a mini-object to + be stolen</doc> + <type name="MiniObject" c:type="GstMiniObject**"/> + </parameter> + </parameters> + </function> + <function name="take" c:identifier="gst_mini_object_take"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Modifies a pointer to point to a new mini-object. The modification +is done atomically. This version is similar to gst_mini_object_replace() +except that it does not increase the refcount of @newdata and thus +takes ownership of @newdata. + +Either @newdata and the value pointed to by @olddata may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">%TRUE if @newdata was different from @olddata</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="olddata" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to a pointer to a mini-object to + be replaced</doc> + <type name="MiniObject" c:type="GstMiniObject**"/> + </parameter> + <parameter name="newdata" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to new mini-object</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </function> + </record> + <callback name="MiniObjectCopyFunction" c:type="GstMiniObjectCopyFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Function prototype for methods to create copies of instances.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">reference to cloned instance.</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">MiniObject to copy</doc> + <type name="MiniObject" c:type="const GstMiniObject*"/> + </parameter> + </parameters> + </callback> + <callback name="MiniObjectDisposeFunction" c:type="GstMiniObjectDisposeFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Function prototype for when a miniobject has lost its last refcount. +Implementation of the mini object are allowed to revive the +passed object by doing a gst_mini_object_ref(). If the object is not +revived after the dispose function, the function should return %TRUE +and the memory associated with the object is freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">%TRUE if the object should be cleaned up.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">MiniObject to dispose</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </callback> + <bitfield name="MiniObjectFlags" glib:type-name="GstMiniObjectFlags" glib:get-type="gst_mini_object_flags_get_type" c:type="GstMiniObjectFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Flags for the mini object</doc> + <member name="lockable" value="1" c:identifier="GST_MINI_OBJECT_FLAG_LOCKABLE" glib:nick="lockable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">the object can be locked and unlocked with +gst_mini_object_lock() and gst_mini_object_unlock().</doc> + </member> + <member name="lock_readonly" value="2" c:identifier="GST_MINI_OBJECT_FLAG_LOCK_READONLY" glib:nick="lock-readonly"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">the object is permanently locked in +READONLY mode. Only read locks can be performed on the object.</doc> + </member> + <member name="may_be_leaked" value="4" c:identifier="GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED" glib:nick="may-be-leaked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">the object is expected to stay alive +even after gst_deinit() has been called and so should be ignored by leak +detection tools. (Since: 1.10)</doc> + </member> + <member name="last" value="16" c:identifier="GST_MINI_OBJECT_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">first flag that can be used by subclasses.</doc> + </member> + </bitfield> + <callback name="MiniObjectFreeFunction" c:type="GstMiniObjectFreeFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">Virtual function prototype for methods to free resources used by +mini-objects.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">MiniObject to free</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </callback> + <callback name="MiniObjectNotify" c:type="GstMiniObjectNotify"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">A #GstMiniObjectNotify function can be added to a mini object as a +callback that gets triggered when gst_mini_object_unref() drops the +last ref and @obj is about to be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">data that was provided when the notify was added</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="obj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.h">the mini object</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </callback> + <constant name="NSECOND" value="1" c:type="GST_NSECOND"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Constant that defines one GStreamer nanosecond</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/> + </constant> + <function-macro name="OBJECT" c:identifier="GST_OBJECT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_CAST" c:identifier="GST_OBJECT_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_CLASS" c:identifier="GST_OBJECT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_CLASS_CAST" c:identifier="GST_OBJECT_CLASS_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_FLAGS" c:identifier="GST_OBJECT_FLAGS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">This macro returns the entire set of flags for the object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_FLAG_IS_SET" c:identifier="GST_OBJECT_FLAG_IS_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">This macro checks to see if the given flag is set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">Flag to check for</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_FLAG_SET" c:identifier="GST_OBJECT_FLAG_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">This macro sets the given bits.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">Flag to set</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_FLAG_UNSET" c:identifier="GST_OBJECT_FLAG_UNSET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">This macro unsets the given bits.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">Flag to set</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_GET_CLASS" c:identifier="GST_OBJECT_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_GET_LOCK" c:identifier="GST_OBJECT_GET_LOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">Acquire a reference to the mutex of this object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_LOCK" c:identifier="GST_OBJECT_LOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">This macro will obtain a lock on the object, making serialization possible. +It blocks until the lock can be obtained.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject to lock</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_NAME" c:identifier="GST_OBJECT_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">Get the name of this object. This is not thread-safe by default +(i.e. you will have to make sure the object lock is taken yourself). +If in doubt use gst_object_get_name() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_PARENT" c:identifier="GST_OBJECT_PARENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">Get the parent of this object. This is not thread-safe by default +(i.e. you will have to make sure the object lock is taken yourself). +If in doubt use gst_object_get_parent() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_REFCOUNT" c:identifier="GST_OBJECT_REFCOUNT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">Get access to the reference count field of the object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_REFCOUNT_VALUE" c:identifier="GST_OBJECT_REFCOUNT_VALUE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">Get the reference count value of the object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_TRYLOCK" c:identifier="GST_OBJECT_TRYLOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">This macro will try to obtain a lock on the object, but will return with +%FALSE if it can't get it immediately.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="OBJECT_UNLOCK" c:identifier="GST_OBJECT_UNLOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">This macro releases a lock on the object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">a #GstObject to unlock.</doc> + </parameter> + </parameters> + </function-macro> + <class name="Object" c:symbol-prefix="object" c:type="GstObject" parent="GObject.InitiallyUnowned" abstract="1" glib:type-name="GstObject" glib:get-type="gst_object_get_type" glib:type-struct="ObjectClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">#GstObject provides a root for the object hierarchy tree filed in by the +GStreamer library. It is currently a thin wrapper on top of +#GInitiallyUnowned. It is an abstract class that is not very usable on its own. + +#GstObject gives us basic refcounting, parenting functionality and locking. +Most of the functions are just extended for special GStreamer needs and can be +found under the same name in the base class of #GstObject which is #GObject +(e.g. g_object_ref() becomes gst_object_ref()). + +Since #GstObject derives from #GInitiallyUnowned, it also inherits the +floating reference. Be aware that functions such as gst_bin_add() and +gst_element_add_pad() take ownership of the floating reference. + +In contrast to #GObject instances, #GstObject adds a name property. The functions +gst_object_set_name() and gst_object_get_name() are used to set/get the name +of the object. + +## controlled properties + +Controlled properties offers a lightweight way to adjust gobject properties +over stream-time. It works by using time-stamped value pairs that are queued +for element-properties. At run-time the elements continuously pull value +changes for the current stream-time. + +What needs to be changed in a #GstElement? +Very little - it is just two steps to make a plugin controllable! + + * mark gobject-properties paramspecs that make sense to be controlled, + by GST_PARAM_CONTROLLABLE. + + * when processing data (get, chain, loop function) at the beginning call + gst_object_sync_values(element,timestamp). + This will make the controller update all GObject properties that are + under its control with the current values based on the timestamp. + +What needs to be done in applications? Again it's not a lot to change. + + * create a #GstControlSource. + csource = gst_interpolation_control_source_new (); + g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL); + + * Attach the #GstControlSource on the controller to a property. + gst_object_add_control_binding (object, gst_direct_control_binding_new (object, "prop1", csource)); + + * Set the control values + gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,0 * GST_SECOND, value1); + gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,1 * GST_SECOND, value2); + + * start your pipeline</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <function name="check_uniqueness" c:identifier="gst_object_check_uniqueness"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Checks to see if there is any object named @name in @list. This function +does not do any locking of any kind. You might want to protect the +provided list with the lock of the owner of the list. This function +will lock each #GstObject in the list to compare the name, so be +careful when passing a list with a locked object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if a #GstObject named @name does not appear in @list, +%FALSE if it does. + +MT safe. Grabs and releases the LOCK of each object in the list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a list of #GstObject to + check through</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Object"/> + </type> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the name to search for</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="default_deep_notify" c:identifier="gst_object_default_deep_notify"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">A default deep_notify signal callback for an object. The user data +should contain a pointer to an array of strings that should be excluded +from the notify. The default handler will print the new value of the property +using g_print. + +MT safe. This function grabs and releases @object's LOCK for getting its + path string.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the #GObject that signalled the notify.</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="orig" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject that initiated the notify.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GParamSpec of the property.</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="excluded_props" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c"> + a set of user-specified properties to exclude or %NULL to show + all changes.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </function> + <function name="ref_sink" c:identifier="gst_object_ref_sink" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Increase the reference count of @object, and possibly remove the floating +reference, if @object has a floating reference. + +In other words, if the object is floating, then this call "assumes ownership" +of the floating reference, converting it to a normal reference by clearing +the floating flag while leaving the reference count unchanged. If the object +is not floating, then this call adds a new normal reference increasing the +reference count by one. + +For more background on "floating references" please see the #GObject +documentation.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none" nullable="1"> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to sink</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="replace" c:identifier="gst_object_replace"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Atomically modifies a pointer to point to a new object. +The reference count of @oldobj is decreased and the reference count of +@newobj is increased. + +Either @newobj and the value pointed to by @oldobj may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if @newobj was different from @oldobj</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="oldobj" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">pointer to a place of + a #GstObject to replace</doc> + <type name="Object" c:type="GstObject**"/> + </parameter> + <parameter name="newobj" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a new #GstObject</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </function> + <virtual-method name="deep_notify"> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="orig" transfer-ownership="none"> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_control_binding" c:identifier="gst_object_add_control_binding"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Attach the #GstControlBinding to the object. If there already was a +#GstControlBinding for this property it will be replaced. + +The object's reference count will be incremented, and any floating +reference will be removed (see gst_object_ref_sink())</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%FALSE if the given @binding has not been setup for this object or +has been setup for a non suitable property, %TRUE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the controller object</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the #GstControlBinding that should be used</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </parameter> + </parameters> + </method> + <method name="default_error" c:identifier="gst_object_default_error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A default error function that uses g_printerr() to display the error message +and the optional debug string.. + +The default handler will simply print the error string using g_print.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstObject that initiated the error.</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the GError.</doc> + <type name="GLib.Error" c:type="const GError*"/> + </parameter> + <parameter name="debug" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">an additional debug information string, or %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_control_binding" c:identifier="gst_object_get_control_binding"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Gets the corresponding #GstControlBinding for the property. This should be +unreferenced again after use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the #GstControlBinding for +@property_name or %NULL if the property is not controlled.</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">name of the property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_control_rate" c:identifier="gst_object_get_control_rate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">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() 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 +%GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing. + +The control-rate is not expected to change if the element is in +%GST_STATE_PAUSED or %GST_STATE_PLAYING.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the control rate in nanoseconds</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_g_value_array" c:identifier="gst_object_get_g_value_array"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Gets a number of #GValues for the given controlled property starting at the +requested time. The array @values need to hold enough space for @n_values of +#GValue. + +This function is useful if one wants to e.g. draw a graph of the control +curve or apply a control curve sample by sample.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if the given array could be filled, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the name of the property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the time spacing between subsequent values</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">array to put control-values in</doc> + <array length="3" zero-terminated="0" c:type="GValue*"> + <type name="GObject.Value" c:type="GValue"/> + </array> + </parameter> + </parameters> + </method> + <method name="get_name" c:identifier="gst_object_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Returns a copy of the name of @object. +Caller should g_free() the return value after usage. +For a nameless object, this returns %NULL, which you can safely g_free() +as well. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the name of @object. g_free() +after usage. + +MT safe. This function grabs and releases @object's LOCK.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_parent" c:identifier="gst_object_get_parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Returns the parent of @object. This function increases the refcount +of the parent object so you should gst_object_unref() it after usage.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">parent of @object, this can be + %NULL if @object has no parent. unref after usage. + +MT safe. Grabs and releases @object's LOCK.</doc> + <type name="Object" c:type="GstObject*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_path_string" c:identifier="gst_object_get_path_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Generates a string describing the path of @object in +the object hierarchy. Only useful (or used) for debugging. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a string describing the path of @object. You must + g_free() the string after usage. + +MT safe. Grabs and releases the #GstObject's LOCK for all objects + in the hierarchy.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_value" c:identifier="gst_object_get_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Gets the value for the given controlled property at the requested time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the GValue of the property at the given time, +or %NULL if the property isn't controlled.</doc> + <type name="GObject.Value" c:type="GValue*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the name of the property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the time the control-change should be read from</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_value_array" c:identifier="gst_object_get_value_array" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Gets a number of values for the given controlled property starting at the +requested time. The array @values need to hold enough space for @n_values of +the same type as the objects property's type. + +This function is useful if one wants to e.g. draw a graph of the control +curve or apply a control curve sample by sample. + +The values are unboxed and ready to be used. The similar function +gst_object_get_g_value_array() returns the array as #GValues and is +better suites for bindings.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if the given array could be filled, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the name of the property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the time spacing between subsequent values</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">array to put control-values in</doc> + <array length="3" zero-terminated="0" c:type="gpointer"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + </parameters> + </method> + <method name="has_active_control_bindings" c:identifier="gst_object_has_active_control_bindings"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Check if the @object has active controlled properties.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if the object has active controlled properties</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_ancestor" c:identifier="gst_object_has_ancestor" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Check if @object has an ancestor @ancestor somewhere up in +the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.</doc> + <doc-deprecated xml:space="preserve">Use gst_object_has_as_ancestor() instead. + +MT safe. Grabs and releases @object's locks.</doc-deprecated> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if @ancestor is an ancestor of @object.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to check</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="ancestor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to check as ancestor</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </method> + <method name="has_as_ancestor" c:identifier="gst_object_has_as_ancestor"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Check if @object has an ancestor @ancestor somewhere up in +the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if @ancestor is an ancestor of @object. + +MT safe. Grabs and releases @object's locks.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to check</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="ancestor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to check as ancestor</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </method> + <method name="has_as_parent" c:identifier="gst_object_has_as_parent" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Check if @parent is the parent of @object. +E.g. a #GstElement can check if it owns a given #GstPad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%FALSE if either @object or @parent is %NULL. %TRUE if @parent is + the parent of @object. Otherwise %FALSE. + +MT safe. Grabs and releases @object's locks.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to check</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to check as parent</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_object_ref"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Increments the reference count on @object. This function +does not take the lock on @object because it relies on +atomic refcounting. + +This object returns the input parameter to ease writing +constructs like : + result = gst_object_ref (object->parent);</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">A pointer to @object</doc> + <type name="Object" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to reference</doc> + <type name="Object" c:type="gpointer"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_control_binding" c:identifier="gst_object_remove_control_binding"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Removes the corresponding #GstControlBinding. If it was the +last ref of the binding, it will be disposed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if the binding could be removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the binding</doc> + <type name="ControlBinding" c:type="GstControlBinding*"/> + </parameter> + </parameters> + </method> + <method name="set_control_binding_disabled" c:identifier="gst_object_set_control_binding_disabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">This function is used to disable the control bindings on a property for +some time, i.e. gst_object_sync_values() will do nothing for the +property.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">property to disable</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="disabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">boolean that specifies whether to disable the controller +or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_control_bindings_disabled" c:identifier="gst_object_set_control_bindings_disabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">This function is used to disable all controlled properties of the @object for +some time, i.e. gst_object_sync_values() will do nothing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="disabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">boolean that specifies whether to disable the controller +or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_control_rate" c:identifier="gst_object_set_control_rate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">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() 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 +%GST_STATE_PLAYING.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="control_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the new control-rate in nanoseconds.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_name" c:identifier="gst_object_set_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Sets the name of @object, or gives @object a guaranteed unique +name (if @name is %NULL). +This function makes a copy of the provided name, so the caller +retains ownership of the name it sent.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if the name could be set. Since Objects that have +a parent cannot be renamed, this function returns %FALSE in those +cases. + +MT safe. This function grabs and releases @object's LOCK.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">new name of object</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_parent" c:identifier="gst_object_set_parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Sets the parent of @object to @parent. The object's reference count will +be incremented, and any floating reference will be removed (see gst_object_ref_sink()).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if @parent could be set or %FALSE when @object +already had a parent or @object and @parent are the same. + +MT safe. Grabs and releases @object's LOCK.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">new parent of object</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </method> + <method name="suggest_next_sync" c:identifier="gst_object_suggest_next_sync"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Returns a suggestion for timestamps where buffers should be split +to get best controller results.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Returns the suggested timestamp or %GST_CLOCK_TIME_NONE +if no control-rate was set.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="sync_values" c:identifier="gst_object_sync_values"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Sets the properties of the object, according to the #GstControlSources that +(maybe) handle them and for the given timestamp. + +If this function fails, it is most likely the application developers fault. +Most probably the control sources are not setup correctly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">%TRUE if the controller values could be applied to the object +properties, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object that has controlled properties</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the time that should be processed</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="unparent" c:identifier="gst_object_unparent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Clear the parent of @object, removing the associated reference. +This function decreases the refcount of @object. + +MT safe. Grabs and releases @object's lock.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to unparent</doc> + <type name="Object" c:type="GstObject*"/> + </instance-parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_object_unref"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">Decrements the reference count on @object. If reference count hits +zero, destroy @object. This function does not take the lock +on @object as it relies on atomic refcounting. + +The unref method should never be called with the LOCK held since +this might deadlock the dispose function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstobject.c">a #GstObject to unreference</doc> + <type name="Object" c:type="gpointer"/> + </instance-parameter> + </parameters> + </method> + <property name="name" writable="1" construct="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="parent" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">The parent of the object. Please note, that when changing the 'parent' +property, we don't emit #GObject::notify and #GstObject::deep-notify +signals due to locking issues. In some cases one can use +#GstBin::element-added or #GstBin::element-removed signals on the parent to +achieve a similar effect.</doc> + <type name="Object"/> + </property> + <field name="object"> + <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> + </field> + <field name="lock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">object LOCK</doc> + <type name="GLib.Mutex" c:type="GMutex"/> + </field> + <field name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">The name of the object</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">this object's parent, weak ref</doc> + <type name="Object" c:type="GstObject*"/> + </field> + <field name="flags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">flags for this object</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="control_bindings" readable="0" private="1"> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </field> + <field name="control_rate" readable="0" private="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="last_sync" readable="0" private="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <glib:signal name="deep-notify" when="first" no-recurse="1" detailed="1" no-hooks="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">The deep notify signal is used to be notified of property changes. It is +typically attached to the toplevel bin to receive notifications from all +the elements contained in that bin.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="prop_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the object that originated the signal</doc> + <type name="Object"/> + </parameter> + <parameter name="prop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.c">the property that changed</doc> + <type name="GObject.ParamSpec"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="ObjectClass" c:type="GstObjectClass" glib:is-gtype-struct-for="Object"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">GStreamer base object class.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">parent</doc> + <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> + </field> + <field name="path_string_separator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">separator used by gst_object_get_path_string()</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="deep_notify"> + <callback name="deep_notify"> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="orig" transfer-ownership="none"> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="ObjectFlags" glib:type-name="GstObjectFlags" glib:get-type="gst_object_flags_get_type" c:type="GstObjectFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">The standard flags that an gstobject may have.</doc> + <member name="may_be_leaked" value="1" c:identifier="GST_OBJECT_FLAG_MAY_BE_LEAKED" glib:nick="may-be-leaked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">the object is expected to stay alive even +after gst_deinit() has been called and so should be ignored by leak +detection tools. (Since: 1.10)</doc> + </member> + <member name="last" value="16" c:identifier="GST_OBJECT_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstobject.h">subclasses can add additional flags starting from this flag</doc> + </member> + </bitfield> + <function-macro name="PAD" c:identifier="GST_PAD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_ACTIVATEFUNC" c:identifier="GST_PAD_ACTIVATEFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadActivateFunction from @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_ACTIVATEMODEFUNC" c:identifier="GST_PAD_ACTIVATEMODEFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadActivateModeFunction from the given @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_BLOCK_BROADCAST" c:identifier="GST_PAD_BLOCK_BROADCAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_BLOCK_GET_COND" c:identifier="GST_PAD_BLOCK_GET_COND" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_BLOCK_SIGNAL" c:identifier="GST_PAD_BLOCK_SIGNAL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_BLOCK_WAIT" c:identifier="GST_PAD_BLOCK_WAIT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_CAST" c:identifier="GST_PAD_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_CHAINFUNC" c:identifier="GST_PAD_CHAINFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadChainFunction from the given @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_CHAINLISTFUNC" c:identifier="GST_PAD_CHAINLISTFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadChainListFunction from the given @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_CLASS" c:identifier="GST_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_DIRECTION" c:identifier="GST_PAD_DIRECTION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadDirection of the given @pad. Accessor macro, use +gst_pad_get_direction() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_ELEMENT_PRIVATE" c:identifier="GST_PAD_ELEMENT_PRIVATE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the private data of @pad, which is usually some pad- or stream-specific +structure created by the element and set on the pad when creating it. +No locking is performed in this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_EVENTFULLFUNC" c:identifier="GST_PAD_EVENTFULLFUNC" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadEventFullFunction from the given @pad, which +is the function that handles events on the pad. You can +use this to set your own event handling function on a pad +after you create it. If your element derives from a base +class, use the base class's virtual functions instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_EVENTFUNC" c:identifier="GST_PAD_EVENTFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadEventFunction from the given @pad, which +is the function that handles events on the pad. You can +use this to set your own event handling function on a pad +after you create it. If your element derives from a base +class, use the base class's virtual functions instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_GETRANGEFUNC" c:identifier="GST_PAD_GETRANGEFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadGetRangeFunction from the given @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_GET_STREAM_LOCK" c:identifier="GST_PAD_GET_STREAM_LOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the stream lock of @pad. The stream lock is protecting the +resources used in the data processing functions of @pad. Accessor +macro, use GST_PAD_STREAM_LOCK() and GST_PAD_STREAM_UNLOCK() instead +to take/release the pad's stream lock.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_HAS_PENDING_EVENTS" c:identifier="GST_PAD_HAS_PENDING_EVENTS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the given @pad has pending events. This is used internally by +GStreamer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_ACCEPT_INTERSECT" c:identifier="GST_PAD_IS_ACCEPT_INTERSECT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the pad's accept intersect flag is set. The default accept-caps +handler will check if the caps intersect the query-caps result instead of +checking for a subset. This is interesting for parser elements that can +accept incompletely specified caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_ACCEPT_TEMPLATE" c:identifier="GST_PAD_IS_ACCEPT_TEMPLATE" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the pad's accept caps operation will use the pad template caps. +The default accept-caps will do a query caps to get the caps, which might +be querying downstream causing unnecessary overhead. It is recommended to +implement a proper accept-caps query handler or to use this flag to prevent +recursive accept-caps handling.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_ACTIVE" c:identifier="GST_PAD_IS_ACTIVE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_BLOCKED" c:identifier="GST_PAD_IS_BLOCKED" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the dataflow on a @pad is blocked. Use gst_pad_is_blocked() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_BLOCKING" c:identifier="GST_PAD_IS_BLOCKING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the @pad is currently blocking on a buffer or event. Use +gst_pad_is_blocking() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_EOS" c:identifier="GST_PAD_IS_EOS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the @pad is in EOS state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_FIXED_CAPS" c:identifier="GST_PAD_IS_FIXED_CAPS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the given @pad is using fixed caps, which means that +once the caps are set on the @pad, the caps query function will +only return those caps. See gst_pad_use_fixed_caps().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_FLUSHING" c:identifier="GST_PAD_IS_FLUSHING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the given @pad is flushing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_LINKED" c:identifier="GST_PAD_IS_LINKED" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_PROXY_ALLOCATION" c:identifier="GST_PAD_IS_PROXY_ALLOCATION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the given @pad is set as proxy allocation which means +that the default query handler will forward allocation queries to the +internally linked @pads instead of discarding them.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_PROXY_CAPS" c:identifier="GST_PAD_IS_PROXY_CAPS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the given @pad is set to proxy caps. This means that the default +event and query handler will forward all events and queries to the +internally linked @pads instead of discarding them.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_PROXY_SCHEDULING" c:identifier="GST_PAD_IS_PROXY_SCHEDULING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the given @pad is set to proxy scheduling queries, which means that +the default query handler will forward scheduling queries to the internally +linked @pads instead of discarding them.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_SINK" c:identifier="GST_PAD_IS_SINK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_IS_SRC" c:identifier="GST_PAD_IS_SRC" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_ITERINTLINKFUNC" c:identifier="GST_PAD_ITERINTLINKFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadIterIntLinkFunction from the given @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_LAST_FLOW_RETURN" c:identifier="GST_PAD_LAST_FLOW_RETURN" version="1.4" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Gets the last flow return on this pad</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_LINKFUNC" c:identifier="GST_PAD_LINKFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadLinkFunction for the given @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_LINK_FAILED" c:identifier="GST_PAD_LINK_FAILED" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Macro to test if the given #GstPadLinkReturn value indicates a failed +link step.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="ret"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPadLinkReturn value</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_LINK_SUCCESSFUL" c:identifier="GST_PAD_LINK_SUCCESSFUL" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Macro to test if the given #GstPadLinkReturn value indicates a successful +link step.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="ret"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPadLinkReturn value</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_MODE" c:identifier="GST_PAD_MODE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadMode of pad, which will be GST_PAD_MODE_NONE if the pad +has not been activated yet, and otherwise either GST_PAD_MODE_PUSH or +GST_PAD_MODE_PULL depending on which mode the pad was activated in.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_NAME" c:identifier="GST_PAD_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get name of the given pad. +No locking is performed in this function, use gst_pad_get_name() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_NEEDS_PARENT" c:identifier="GST_PAD_NEEDS_PARENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if there is a parent object before calling into the @pad callbacks. +This is used internally by GStreamer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_NEEDS_RECONFIGURE" c:identifier="GST_PAD_NEEDS_RECONFIGURE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the @pad should be reconfigured/renegotiated. +The flag has to be unset manually after reconfiguration happened. +Use gst_pad_needs_reconfigure() or gst_pad_check_reconfigure() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PAD_TEMPLATE" c:identifier="GST_PAD_PAD_TEMPLATE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the @pad #GstPadTemplate. It describes the possible media types +a @pad or an element factory can handle.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PARENT" c:identifier="GST_PAD_PARENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the @pad parent. +No locking is performed in this function, use gst_pad_get_parent() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PEER" c:identifier="GST_PAD_PEER" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Return the pad's peer member. This member is a pointer to the linked @pad. +No locking is performed in this function, use gst_pad_get_peer() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_BUFFER" c:identifier="GST_PAD_PROBE_INFO_BUFFER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_BUFFER_LIST" c:identifier="GST_PAD_PROBE_INFO_BUFFER_LIST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_DATA" c:identifier="GST_PAD_PROBE_INFO_DATA" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_EVENT" c:identifier="GST_PAD_PROBE_INFO_EVENT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_FLOW_RETURN" c:identifier="GST_PAD_PROBE_INFO_FLOW_RETURN" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_ID" c:identifier="GST_PAD_PROBE_INFO_ID" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_OFFSET" c:identifier="GST_PAD_PROBE_INFO_OFFSET" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_QUERY" c:identifier="GST_PAD_PROBE_INFO_QUERY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_SIZE" c:identifier="GST_PAD_PROBE_INFO_SIZE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_PROBE_INFO_TYPE" c:identifier="GST_PAD_PROBE_INFO_TYPE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="d"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_QUERYFUNC" c:identifier="GST_PAD_QUERYFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadQueryFunction from @pad, which is the function +that handles queries on the pad. You can use this to set your +own query handling function on a pad after you create it. If your +element derives from a base class, use the base class's virtual +functions instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_SET_ACCEPT_INTERSECT" c:identifier="GST_PAD_SET_ACCEPT_INTERSECT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Set @pad to by default accept caps by intersecting the result instead of +checking for a subset. This is interesting for parser elements that can +accept incompletely specified caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_SET_ACCEPT_TEMPLATE" c:identifier="GST_PAD_SET_ACCEPT_TEMPLATE" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Set @pad to by default use the pad template caps to compare with +the accept caps instead of using a caps query result.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_SET_FLUSHING" c:identifier="GST_PAD_SET_FLUSHING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Set the given @pad to flushing state, which means it will not accept any +more events, queries or buffers, and return GST_FLOW_FLUSHING if any buffers +are pushed on it. This usually happens when the pad is shut down or when +a flushing seek happens. This is used inside GStreamer when flush start/stop +events pass through pads, or when an element state is changed and pads are +activated or deactivated.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_SET_PROXY_ALLOCATION" c:identifier="GST_PAD_SET_PROXY_ALLOCATION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Set @pad to proxy allocation queries, which means that the default query +handler will forward allocation queries to the internally linked @pads +instead of discarding them. +Set this if the element always outputs data in the exact same format as it +receives as input. This is just for convenience to avoid implementing some +standard query handling code in an element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_SET_PROXY_CAPS" c:identifier="GST_PAD_SET_PROXY_CAPS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Set @pad to proxy caps, so that all caps-related events and queries are +proxied down- or upstream to the other side of the element automatically. +Set this if the element always outputs data in the exact same format as it +receives as input. This is just for convenience to avoid implementing some +standard event and query handling code in an element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_SET_PROXY_SCHEDULING" c:identifier="GST_PAD_SET_PROXY_SCHEDULING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Set @pad to proxy scheduling queries, which means that the default query +handler will forward scheduling queries to the internally linked @pads +instead of discarding them. You will usually want to handle scheduling +queries explicitly if your element supports multiple scheduling modes.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_STREAM_LOCK" c:identifier="GST_PAD_STREAM_LOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Take the pad's stream lock. The stream lock is recursive and will be taken +when buffers or serialized downstream events are pushed on a pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_STREAM_TRYLOCK" c:identifier="GST_PAD_STREAM_TRYLOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Try to take the pad's stream lock, and return %TRUE if the lock could be +taken, and otherwise %FALSE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_STREAM_UNLOCK" c:identifier="GST_PAD_STREAM_UNLOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Release the pad's stream lock.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_TASK" c:identifier="GST_PAD_TASK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstTask of @pad. Accessor macro used by GStreamer. Use the +gst_pad_start_task(), gst_pad_stop_task() and gst_pad_pause_task() +functions instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_TEMPLATE" c:identifier="GST_PAD_TEMPLATE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_TEMPLATE_CAPS" c:identifier="GST_PAD_TEMPLATE_CAPS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Get a handle to the padtemplate #GstCaps</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="templ"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the template to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_TEMPLATE_CLASS" c:identifier="GST_PAD_TEMPLATE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_TEMPLATE_DIRECTION" c:identifier="GST_PAD_TEMPLATE_DIRECTION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Get the #GstPadDirection of the padtemplate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="templ"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the template to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_TEMPLATE_GTYPE" c:identifier="GST_PAD_TEMPLATE_GTYPE" version="1.14" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Get the #GType of the padtemplate</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="templ"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the template to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_TEMPLATE_IS_FIXED" c:identifier="GST_PAD_TEMPLATE_IS_FIXED" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Check if the properties of the padtemplate are fixed</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="templ"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the template to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_TEMPLATE_NAME_TEMPLATE" c:identifier="GST_PAD_TEMPLATE_NAME_TEMPLATE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Get the nametemplate of the padtemplate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="templ"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the template to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_TEMPLATE_PRESENCE" c:identifier="GST_PAD_TEMPLATE_PRESENCE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Get the #GstPadPresence of the padtemplate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="templ"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the template to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_UNLINKFUNC" c:identifier="GST_PAD_UNLINKFUNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the #GstPadUnlinkFunction from the given @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_UNSET_ACCEPT_INTERSECT" c:identifier="GST_PAD_UNSET_ACCEPT_INTERSECT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Unset accept intersect flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_UNSET_ACCEPT_TEMPLATE" c:identifier="GST_PAD_UNSET_ACCEPT_TEMPLATE" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Unset accept template flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_UNSET_FLUSHING" c:identifier="GST_PAD_UNSET_FLUSHING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Unset the flushing flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_UNSET_PROXY_ALLOCATION" c:identifier="GST_PAD_UNSET_PROXY_ALLOCATION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Unset proxy allocation flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_UNSET_PROXY_CAPS" c:identifier="GST_PAD_UNSET_PROXY_CAPS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Unset proxy caps flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PAD_UNSET_PROXY_SCHEDULING" c:identifier="GST_PAD_UNSET_PROXY_SCHEDULING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Unset proxy scheduling flag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + </parameter> + </parameters> + </function-macro> + <constant name="PARAM_CONDITIONALLY_AVAILABLE" value="16384" c:type="GST_PARAM_CONDITIONALLY_AVAILABLE" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">Use this flag on GObject properties of GstObject to indicate that +they might not be available depending on environment such as OS, device, etc, +so such properties will be installed conditionally only if the GstObject is +able to support it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PARAM_CONTROLLABLE" value="512" c:type="GST_PARAM_CONTROLLABLE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">Use this flag on GObject properties to signal they can make sense to be. +controlled over time. This hint is used by the GstController.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PARAM_DOC_SHOW_DEFAULT" value="8192" c:type="GST_PARAM_DOC_SHOW_DEFAULT" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">Use this flag on GObject properties of GstObject to indicate that +during `gst-inspect` and friends, the default value should be used +as default instead of the current value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PARAM_MUTABLE_PAUSED" value="2048" c:type="GST_PARAM_MUTABLE_PAUSED"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">Use this flag on GObject properties of GstElements to indicate that +they can be changed when the element is in the PAUSED or lower state. +This flag implies GST_PARAM_MUTABLE_READY.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PARAM_MUTABLE_PLAYING" value="4096" c:type="GST_PARAM_MUTABLE_PLAYING"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">Use this flag on GObject properties of GstElements to indicate that +they can be changed when the element is in the PLAYING or lower state. +This flag implies GST_PARAM_MUTABLE_PAUSED.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PARAM_MUTABLE_READY" value="1024" c:type="GST_PARAM_MUTABLE_READY"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">Use this flag on GObject properties of GstElements to indicate that +they can be changed when the element is in the READY or lower state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="PARAM_SPEC_ARRAY_LIST" c:identifier="GST_PARAM_SPEC_ARRAY_LIST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <parameters> + <parameter name="pspec"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PARAM_SPEC_FRACTION" c:identifier="GST_PARAM_SPEC_FRACTION" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <parameters> + <parameter name="pspec"> + </parameter> + </parameters> + </function-macro> + <constant name="PARAM_USER_SHIFT" value="65536" c:type="GST_PARAM_USER_SHIFT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">Bits based on GST_PARAM_USER_SHIFT can be used by 3rd party applications.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="PIPELINE" c:identifier="GST_PIPELINE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PIPELINE_CAST" c:identifier="GST_PIPELINE_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PIPELINE_CLASS" c:identifier="GST_PIPELINE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PIPELINE_GET_CLASS" c:identifier="GST_PIPELINE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN" c:identifier="GST_PLUGIN" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_CAST" c:identifier="GST_PLUGIN_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_CLASS" c:identifier="GST_PLUGIN_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_DEFINE" c:identifier="GST_PLUGIN_DEFINE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">This macro needs to be used to define the entry point and meta data of a +plugin. One would use this macro to export a plugin, so that it can be used +by other applications. + +The macro uses a define named PACKAGE for the #GstPluginDesc,source field. +When using autoconf, this is usually set automatically via the AC_INIT +macro, and set in config.h. If you are not using autoconf, you will need to +define PACKAGE yourself and set it to a short mnemonic string identifying +your application/package, e.g. 'someapp' or 'my-plugins-foo. + +If defined, the GST_PACKAGE_RELEASE_DATETIME will also be used for the +#GstPluginDesc,release_datetime field.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <parameters> + <parameter name="major"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">major version number of the gstreamer-core that plugin was compiled for</doc> + </parameter> + <parameter name="minor"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">minor version number of the gstreamer-core that plugin was compiled for</doc> + </parameter> + <parameter name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">short, but unique name of the plugin</doc> + </parameter> + <parameter name="description"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">information about the purpose of the plugin</doc> + </parameter> + <parameter name="init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">function pointer to the plugin_init method with the signature of <code>static gboolean plugin_init (GstPlugin * plugin)</code>.</doc> + </parameter> + <parameter name="version"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">full version string (e.g. VERSION from config.h)</doc> + </parameter> + <parameter name="license"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">under which licence the package has been released, e.g. GPL, LGPL.</doc> + </parameter> + <parameter name="package"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">the package-name (e.g. PACKAGE_NAME from config.h)</doc> + </parameter> + <parameter name="origin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">a description from where the package comes from (e.g. the homepage URL)</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_FEATURE" c:identifier="GST_PLUGIN_FEATURE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_FEATURE_CAST" c:identifier="GST_PLUGIN_FEATURE_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_FEATURE_CLASS" c:identifier="GST_PLUGIN_FEATURE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_FEATURE_GET_CLASS" c:identifier="GST_PLUGIN_FEATURE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_FEATURE_LIST_DEBUG" c:identifier="GST_PLUGIN_FEATURE_LIST_DEBUG" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">Debug the plugin feature names in @list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <parameters> + <parameter name="list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">a #GList of + plugin features</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_GET_CLASS" c:identifier="GST_PLUGIN_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_STATIC_DECLARE" c:identifier="GST_PLUGIN_STATIC_DECLARE" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">This macro can be used to initialize statically linked plugins. It is +necessary to call this macro before the plugin can be used. +It has to be used in combination with GST_PLUGIN_STATIC_REGISTER +and must be placed outside any block to declare the plugin initialization +function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <parameters> + <parameter name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">short, but unique name of the plugin</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLUGIN_STATIC_REGISTER" c:identifier="GST_PLUGIN_STATIC_REGISTER" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">This macro can be used to initialize statically linked plugins. It is +necessary to call this macro before the plugin can be used. +It has to be used in combination with GST_PLUGIN_STATIC_DECLARE and +calls the plugin initialization function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <parameters> + <parameter name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">short, but unique name of the plugin</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="PRESET" c:identifier="GST_PRESET" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PRESET_GET_INTERFACE" c:identifier="GST_PRESET_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PROMISE" c:identifier="GST_PROMISE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="PROTECTION_SYSTEM_ID_CAPS_FIELD" value="protection-system" c:type="GST_PROTECTION_SYSTEM_ID_CAPS_FIELD" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.h">The field name in a GstCaps that is used to signal the UUID of the protection +system.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="PROTECTION_UNSPECIFIED_SYSTEM_ID" value="unspecified-system-id" c:type="GST_PROTECTION_UNSPECIFIED_SYSTEM_ID" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.h">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> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="PROXY_PAD" c:identifier="GST_PROXY_PAD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PROXY_PAD_CLASS" c:identifier="GST_PROXY_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <constant name="PTR_FORMAT" value="paA" c:type="GST_PTR_FORMAT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">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() +to pretty-print the following types: #GstCaps, #GstStructure, +#GstCapsFeatures, #GstTagList, #GstDateTime, #GstBuffer, #GstBufferList, +#GstMessage, #GstEvent, #GstQuery, #GstContext, #GstPad, #GstObject. All +#GObject types will be printed as typename plus pointer, and everything +else will simply be printed as pointer address. + +This can only be used on types whose size is >= sizeof(gpointer).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <class name="Pad" c:symbol-prefix="pad" c:type="GstPad" parent="Object" glib:type-name="GstPad" glib:get-type="gst_pad_get_type" glib:type-struct="PadClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">A #GstElement is linked to other elements via "pads", which are extremely +light-weight generic link points. + +Pads have a #GstPadDirection, source pads produce data, sink pads consume +data. + +Pads are typically created from a #GstPadTemplate with +gst_pad_new_from_template() and are then added to a #GstElement. This usually +happens when the element is created but it can also happen dynamically based +on the data that the element is processing or based on the pads that the +application requests. + +Pads without pad templates can be created with gst_pad_new(), +which takes a direction and a name as an argument. If the name is %NULL, +then a guaranteed unique name will be assigned to it. + +A #GstElement creating a pad will typically use the various +gst_pad_set_*_function\() calls to register callbacks for events, queries or +dataflow on the pads. + +gst_pad_get_parent() will retrieve the #GstElement that owns the pad. + +After two pads are retrieved from an element by gst_element_get_static_pad(), +the pads can be linked with gst_pad_link(). (For quick links, +you can also use gst_element_link(), which will make the obvious +link for you if it's straightforward.). Pads can be unlinked again with +gst_pad_unlink(). gst_pad_get_peer() can be used to check what the pad is +linked to. + +Before dataflow is possible on the pads, they need to be activated with +gst_pad_set_active(). + +gst_pad_query() and gst_pad_peer_query() can be used to query various +properties of the pad and the stream. + +To send a #GstEvent on a pad, use gst_pad_send_event() and +gst_pad_push_event(). Some events will be sticky on the pad, meaning that +after they pass on the pad they can be queried later with +gst_pad_get_sticky_event() and gst_pad_sticky_events_foreach(). +gst_pad_get_current_caps() and gst_pad_has_current_caps() are convenience +functions to query the current sticky CAPS event on a pad. + +GstElements will use gst_pad_push() and gst_pad_pull_range() to push out +or pull in a buffer. + +The dataflow, events and queries that happen on a pad can be monitored with +probes that can be installed with gst_pad_add_probe(). gst_pad_is_blocked() +can be used to check if a block probe is installed on the pad. +gst_pad_is_blocking() checks if the blocking probe is currently blocking the +pad. gst_pad_remove_probe() is used to remove a previously installed probe +and unblock blocking probes if any. + +Pad have an offset that can be retrieved with gst_pad_get_offset(). This +offset will be applied to the running_time of all data passing over the pad. +gst_pad_set_offset() can be used to change the offset. + +Convenience functions exist to start, pause and stop the task on a pad with +gst_pad_start_task(), gst_pad_pause_task() and gst_pad_stop_task() +respectively.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <constructor name="new" c:identifier="gst_pad_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Creates a new pad with the given name in the given direction. +If name is %NULL, a guaranteed unique name (across all pads) +will be assigned. +This function makes a copy of the name so you can safely free the name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a new #GstPad. + +MT safe.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the name of the new pad.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadDirection of the pad.</doc> + <type name="PadDirection" c:type="GstPadDirection"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_static_template" c:identifier="gst_pad_new_from_static_template"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Creates a new pad with the given name from the given static template. +If name is %NULL, a guaranteed unique name (across all pads) +will be assigned. +This function makes a copy of the name so you can safely free the name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a new #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstStaticPadTemplate to use</doc> + <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the name of the pad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_template" c:identifier="gst_pad_new_from_template"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Creates a new pad with the given name from the given template. +If name is %NULL, a guaranteed unique name (across all pads) +will be assigned. +This function makes a copy of the name so you can safely free the name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a new #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the pad template to use</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the name of the pad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <function name="link_get_name" c:identifier="gst_pad_link_get_name" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets a string representing the given pad-link return.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a static string with the name of the pad-link return.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPadLinkReturn to get the name of.</doc> + <type name="PadLinkReturn" c:type="GstPadLinkReturn"/> + </parameter> + </parameters> + </function> + <virtual-method name="linked"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="peer" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="unlinked"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="peer" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </virtual-method> + <method name="activate_mode" c:identifier="gst_pad_activate_mode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Activates or deactivates the given pad in @mode via dispatching to the +pad's activatemodefunc. For use from within pad activation functions only. + +If you don't know what this is, you probably don't want to call it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the operation was successful. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to activate or deactivate.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the requested activation mode</doc> + <type name="PadMode" c:type="GstPadMode"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">whether or not the pad should be active.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="add_probe" c:identifier="gst_pad_add_probe"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Be notified of different states of pads. The provided callback is called for +every state that matches @mask. + +Probes are called in groups: First GST_PAD_PROBE_TYPE_BLOCK probes are +called, then others, then finally GST_PAD_PROBE_TYPE_IDLE. The only +exception here are GST_PAD_PROBE_TYPE_IDLE probes that are called +immediately if the pad is already idle while calling gst_pad_add_probe(). +In each of the groups, probes are called in the order in which they were +added.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">an id or 0 if no probe is pending. The id can be used to remove the +probe with gst_pad_remove_probe(). When using GST_PAD_PROBE_TYPE_IDLE it can +happen that the probe can be run immediately and if the probe returns +GST_PAD_PROBE_REMOVE this functions returns 0. + +MT safe.</doc> + <type name="gulong" c:type="gulong"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to add the probe to</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="mask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the probe mask</doc> + <type name="PadProbeType" c:type="GstPadProbeType"/> + </parameter> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="2" destroy="3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">#GstPadProbeCallback that will be called with notifications of + the pad state</doc> + <type name="PadProbeCallback" c:type="GstPadProbeCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user data passed to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_data" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">#GDestroyNotify for user_data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="can_link" c:identifier="gst_pad_can_link"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Checks if the source pad and the sink pad are compatible so they can be +linked.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the pads can be linked.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="srcpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the source #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="sinkpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the sink #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="chain" c:identifier="gst_pad_chain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Chain a buffer to @pad. + +The function returns #GST_FLOW_FLUSHING if the pad was flushing. + +If the buffer type is not acceptable for @pad (as negotiated with a +preceding GST_EVENT_CAPS event), this function returns +#GST_FLOW_NOT_NEGOTIATED. + +The function proceeds calling the chain function installed on @pad (see +gst_pad_set_chain_function()) and the return value of that function is +returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no +chain function. + +In all cases, success or failure, the caller loses its reference to @buffer +after calling this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstFlowReturn from the pad. + +MT safe.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstBuffer to send, return GST_FLOW_ERROR + if not.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="chain_list" c:identifier="gst_pad_chain_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Chain a bufferlist to @pad. + +The function returns #GST_FLOW_FLUSHING if the pad was flushing. + +If @pad was not negotiated properly with a CAPS event, this function +returns #GST_FLOW_NOT_NEGOTIATED. + +The function proceeds calling the chainlist function installed on @pad (see +gst_pad_set_chain_list_function()) and the return value of that function is +returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no +chainlist function. + +In all cases, success or failure, the caller loses its reference to @list +after calling this function. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstFlowReturn from the pad.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstBufferList to send, return GST_FLOW_ERROR + if not.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </method> + <method name="check_reconfigure" c:identifier="gst_pad_check_reconfigure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Check and clear the #GST_PAD_FLAG_NEED_RECONFIGURE flag on @pad and return %TRUE +if the flag was set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE is the GST_PAD_FLAG_NEED_RECONFIGURE flag was set on @pad.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to check</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="create_stream_id" c:identifier="gst_pad_create_stream_id"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Creates a stream-id for the source #GstPad @pad by combining the +upstream information with the optional @stream_id of the stream +of @pad. @pad must have a parent #GstElement and which must have zero +or one sinkpad. @stream_id can only be %NULL if the parent element +of @pad has only a single source pad. + +This function generates an unique stream-id by getting the upstream +stream-start event stream ID and appending @stream_id to it. If the +element has no sinkpad it will generate an upstream stream-id by +doing an URI query on the element and in the worst case just uses +a random number. Source elements that don't implement the URI +handler interface should ideally generate a unique, deterministic +stream-id manually instead. + +Since stream IDs are sorted alphabetically, any numbers in the +stream ID should be printed with a fixed number of characters, +preceded by 0's, such as by using the format \%03u instead of \%u.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A stream-id for @pad. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A source #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Parent #GstElement of @pad</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="stream_id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The stream-id</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="create_stream_id_printf" c:identifier="gst_pad_create_stream_id_printf" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Creates a stream-id for the source #GstPad @pad by combining the +upstream information with the optional @stream_id of the stream +of @pad. @pad must have a parent #GstElement and which must have zero +or one sinkpad. @stream_id can only be %NULL if the parent element +of @pad has only a single source pad. + +This function generates an unique stream-id by getting the upstream +stream-start event stream ID and appending @stream_id to it. If the +element has no sinkpad it will generate an upstream stream-id by +doing an URI query on the element and in the worst case just uses +a random number. Source elements that don't implement the URI +handler interface should ideally generate a unique, deterministic +stream-id manually instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A stream-id for @pad. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A source #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Parent #GstElement of @pad</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="stream_id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The stream-id</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">parameters for the @stream_id format string</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="create_stream_id_printf_valist" c:identifier="gst_pad_create_stream_id_printf_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Creates a stream-id for the source #GstPad @pad by combining the +upstream information with the optional @stream_id of the stream +of @pad. @pad must have a parent #GstElement and which must have zero +or one sinkpad. @stream_id can only be %NULL if the parent element +of @pad has only a single source pad. + +This function generates an unique stream-id by getting the upstream +stream-start event stream ID and appending @stream_id to it. If the +element has no sinkpad it will generate an upstream stream-id by +doing an URI query on the element and in the worst case just uses +a random number. Source elements that don't implement the URI +handler interface should ideally generate a unique, deterministic +stream-id manually instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A stream-id for @pad. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A source #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Parent #GstElement of @pad</doc> + <type name="Element" c:type="GstElement*"/> + </parameter> + <parameter name="stream_id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The stream-id</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">parameters for the @stream_id format string</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="event_default" c:identifier="gst_pad_event_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Invokes the default event handler for the given pad. + +The EOS event will pause the task associated with @pad before it is forwarded +to all internally linked pads, + +The event is sent to all pads internally linked to @pad. This function +takes ownership of @event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the event was sent successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to call the default event handler on.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the parent of @pad or %NULL</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstEvent to handle.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </method> + <method name="forward" c:identifier="gst_pad_forward"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls @forward for all internally linked pads of @pad. This function deals with +dynamically changing internal pads and will make sure that the @forward +function is only called once for each pad. + +When @forward returns %TRUE, no further pads will be processed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if one of the dispatcher functions returned %TRUE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="forward" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPadForwardFunction</doc> + <type name="PadForwardFunction" c:type="GstPadForwardFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user data passed to @forward</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="get_allowed_caps" c:identifier="gst_pad_get_allowed_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets the capabilities of the allowed media types that can flow through +@pad and its peer. + +The allowed capabilities is calculated as the intersection of the results of +calling gst_pad_query_caps() on @pad and its peer. The caller owns a reference +on the resulting caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the allowed #GstCaps of the + pad link. Unref the caps when you no longer need it. This + function returns %NULL when @pad has no peer. + +MT safe.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_caps" c:identifier="gst_pad_get_current_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets the capabilities currently configured on @pad with the last +#GST_EVENT_CAPS event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the current caps of the pad with +incremented ref-count or %NULL when pad has no caps. Unref after usage.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to get the current capabilities of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_direction" c:identifier="gst_pad_get_direction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets the direction of the pad. The direction of the pad is +decided at construction time so this function does not take +the LOCK.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadDirection of the pad. + +MT safe.</doc> + <type name="PadDirection" c:type="GstPadDirection"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to get the direction of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_element_private" c:identifier="gst_pad_get_element_private"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets the private data of a pad. +No locking is performed in this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #gpointer to the private data.</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to get the private data of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_last_flow_return" c:identifier="gst_pad_get_last_flow_return" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets the #GstFlowReturn return from the last data passed by this pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_offset" c:identifier="gst_pad_get_offset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Get the offset applied to the running time of @pad. @pad has to be a source +pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the offset.</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pad_template" c:identifier="gst_pad_get_pad_template"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets the template for @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadTemplate from which + this pad was instantiated, or %NULL if this pad has no + template. Unref after usage.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pad_template_caps" c:identifier="gst_pad_get_pad_template_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets the capabilities for @pad's template.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstCaps of this pad template. +Unref after usage.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to get the template capabilities from.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_parent_element" c:identifier="gst_pad_get_parent_element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or +its parent is not an element, return %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the parent of the pad. The +caller has a reference on the parent, so unref when you're finished +with it. + +MT safe.</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a pad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_peer" c:identifier="gst_pad_get_peer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets the peer of @pad. This function refs the peer pad so +you need to unref it after use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the peer #GstPad. Unref after usage. + +MT safe.</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to get the peer of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_range" c:identifier="gst_pad_get_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">When @pad is flushing this function returns #GST_FLOW_FLUSHING +immediately and @buffer is %NULL. + +Calls the getrange function of @pad, see #GstPadGetRangeFunction for a +description of a getrange function. If @pad has no getrange function +installed (see gst_pad_set_getrange_function()) this function returns +#GST_FLOW_NOT_SUPPORTED. + +If @buffer points to a variable holding %NULL, a valid new #GstBuffer will be +placed in @buffer when this function returns #GST_FLOW_OK. The new buffer +must be freed with gst_buffer_unref() after usage. + +When @buffer points to a variable that points to a valid #GstBuffer, the +buffer will be filled with the result data when this function returns +#GST_FLOW_OK. If the provided buffer is larger than @size, only +@size bytes will be filled in the result buffer and its size will be updated +accordingly. + +Note that less than @size bytes can be returned in @buffer when, for example, +an EOS condition is near or when @buffer is not large enough to hold @size +bytes. The caller should check the result buffer size to get the result size. + +When this function returns any other result value than #GST_FLOW_OK, @buffer +will be unchanged. + +This is a lowlevel function. Usually gst_pad_pull_range() is used.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstFlowReturn from the pad. + +MT safe.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a src #GstPad, returns #GST_FLOW_ERROR if not.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The start offset of the buffer</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The length of the buffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a pointer to hold the #GstBuffer, + returns #GST_FLOW_ERROR if %NULL.</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </method> + <method name="get_single_internal_link" c:identifier="gst_pad_get_single_internal_link" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">If there is a single internal link of the given pad, this function will +return it. Otherwise, it will return NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad, or %NULL if @pad has none +or more than one internal links. Unref returned pad with +gst_object_unref().</doc> + <type name="Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to get the internal link of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_sticky_event" c:identifier="gst_pad_get_sticky_event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Returns a new reference of the sticky event of type @event_type +from the event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstEvent of type +@event_type or %NULL when no event of @event_type was on +@pad. Unref after usage.</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to get the event from.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="event_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstEventType that should be retrieved.</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the index of the event</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_stream" c:identifier="gst_pad_get_stream" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Returns the current #GstStream for the @pad, or %NULL if none has been +set yet, i.e. the pad has not received a stream-start event yet. + +This is a convenience wrapper around gst_pad_get_sticky_event() and +gst_event_parse_stream().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the current #GstStream for @pad, or %NULL. + unref the returned stream when no longer needed.</doc> + <type name="Stream" c:type="GstStream*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A source #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_id" c:identifier="gst_pad_get_stream_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Returns the current stream-id for the @pad, or %NULL if none has been +set yet, i.e. the pad has not received a stream-start event yet. + +This is a convenience wrapper around gst_pad_get_sticky_event() and +gst_event_parse_stream_start(). + +The returned stream-id string should be treated as an opaque string, its +contents should not be interpreted.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a newly-allocated copy of the stream-id for + @pad, or %NULL. g_free() the returned string when no longer + needed.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A source #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_task_state" c:identifier="gst_pad_get_task_state" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Get @pad task state. If no task is currently +set, #GST_TASK_STOPPED is returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The current state of @pad's task.</doc> + <type name="TaskState" c:type="GstTaskState"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to get task state from</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_current_caps" c:identifier="gst_pad_has_current_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Check if @pad has caps set on it with a #GST_EVENT_CAPS event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE when @pad has caps associated with it.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to check</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_active" c:identifier="gst_pad_is_active"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Query if a pad is active</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the pad is active. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to query</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_blocked" c:identifier="gst_pad_is_blocked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Checks if the pad is blocked or not. This function returns the +last requested state of the pad. It is not certain that the pad +is actually blocking at this point (see gst_pad_is_blocking()).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the pad is blocked. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to query</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_blocking" c:identifier="gst_pad_is_blocking"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Checks if the pad is blocking or not. This is a guaranteed state +of whether the pad is actually blocking on a #GstBuffer or a #GstEvent.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the pad is blocking. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to query</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_linked" c:identifier="gst_pad_is_linked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Checks if a @pad is linked to another pad or not.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the pad is linked, %FALSE otherwise. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">pad to check</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_internal_links" c:identifier="gst_pad_iterate_internal_links"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets an iterator for the pads to which the given pad is linked to inside +of the parent element. + +Each #GstPad element yielded by the iterator will have its refcount increased, +so unref after use. + +Free-function: gst_iterator_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a new #GstIterator of #GstPad + or %NULL when the pad does not have an iterator function + configured. Use gst_iterator_free() after usage.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the GstPad to get the internal links of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="iterate_internal_links_default" c:identifier="gst_pad_iterate_internal_links_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Iterate the list of pads to which the given pad is linked to inside of +the parent element. +This is the default handler, and thus returns an iterator of all of the +pads inside the parent element with opposite direction. + +The caller must free this iterator after use with gst_iterator_free().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstIterator of #GstPad, or %NULL if @pad +has no parent. Unref each returned pad with gst_object_unref().</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to get the internal links of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the parent of @pad or %NULL</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </method> + <method name="link" c:identifier="gst_pad_link"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Links the source pad and the sink pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">A result code indicating if the connection worked or + what went wrong. + +MT Safe.</doc> + <type name="PadLinkReturn" c:type="GstPadLinkReturn"/> + </return-value> + <parameters> + <instance-parameter name="srcpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the source #GstPad to link.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="sinkpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the sink #GstPad to link.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="link_full" c:identifier="gst_pad_link_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Links the source pad and the sink pad. + +This variant of #gst_pad_link provides a more granular control on the +checks being done when linking. While providing some considerable speedups +the caller of this method must be aware that wrong usage of those flags +can cause severe issues. Refer to the documentation of #GstPadLinkCheck +for more information. + +MT Safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">A result code indicating if the connection worked or + what went wrong.</doc> + <type name="PadLinkReturn" c:type="GstPadLinkReturn"/> + </return-value> + <parameters> + <instance-parameter name="srcpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the source #GstPad to link.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="sinkpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the sink #GstPad to link.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the checks to validate when linking</doc> + <type name="PadLinkCheck" c:type="GstPadLinkCheck"/> + </parameter> + </parameters> + </method> + <method name="link_maybe_ghosting" c:identifier="gst_pad_link_maybe_ghosting" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Links @src to @sink, creating any #GstGhostPad's in between as necessary. + +This is a convenience function to save having to create and add intermediate +#GstGhostPad's as required for linking across #GstBin boundaries. + +If @src or @sink pads don't have parent elements or do not share a common +ancestor, the link will fail.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">whether the link succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="link_maybe_ghosting_full" c:identifier="gst_pad_link_maybe_ghosting_full" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Links @src to @sink, creating any #GstGhostPad's in between as necessary. + +This is a convenience function to save having to create and add intermediate +#GstGhostPad's as required for linking across #GstBin boundaries. + +If @src or @sink pads don't have parent elements or do not share a common +ancestor, the link will fail. + +Calling gst_pad_link_maybe_ghosting_full() with +@flags == %GST_PAD_LINK_CHECK_DEFAULT is the recommended way of linking +pads with safety checks applied.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">whether the link succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">some #GstPadLinkCheck flags</doc> + <type name="PadLinkCheck" c:type="GstPadLinkCheck"/> + </parameter> + </parameters> + </method> + <method name="mark_reconfigure" c:identifier="gst_pad_mark_reconfigure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Mark a pad for needing reconfiguration. The next call to +gst_pad_check_reconfigure() will return %TRUE after this call.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to mark</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="needs_reconfigure" c:identifier="gst_pad_needs_reconfigure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Check the #GST_PAD_FLAG_NEED_RECONFIGURE flag on @pad and return %TRUE +if the flag was set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE is the GST_PAD_FLAG_NEED_RECONFIGURE flag is set on @pad.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to check</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="pause_task" c:identifier="gst_pad_pause_task"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Pause the task of @pad. This function will also wait until the +function executed by the task is finished if this function is not +called from the task function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a %TRUE if the task could be paused or %FALSE when the pad +has no task.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to pause the task of</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="peer_query" c:identifier="gst_pad_peer_query"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Performs gst_pad_query() on the peer of @pad. + +The caller is responsible for both the allocation and deallocation of +the query structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the query could be performed. This function returns %FALSE +if @pad has no peer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to invoke the peer query on.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstQuery to perform.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </method> + <method name="peer_query_accept_caps" c:identifier="gst_pad_peer_query_accept_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Check if the peer of @pad accepts @caps. If @pad has no peer, this function +returns %TRUE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the peer of @pad can accept the caps or @pad has no peer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad to check the peer of</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstCaps to check on the pad</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="peer_query_caps" c:identifier="gst_pad_peer_query_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Gets the capabilities of the peer connected to this pad. Similar to +gst_pad_query_caps(). + +When called on srcpads @filter contains the caps that +upstream could produce in the order preferred by upstream. When +called on sinkpads @filter contains the caps accepted by +downstream in the preferred order. @filter might be %NULL but +if it is not %NULL the returned caps will be a subset of @filter.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the caps of the peer pad with incremented +ref-count. When there is no peer pad, this function returns @filter or, +when @filter is %NULL, ANY caps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad to get the capabilities of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstCaps filter, or %NULL.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="peer_query_convert" c:identifier="gst_pad_peer_query_convert"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Queries the peer pad of a given sink pad to convert @src_val in @src_format +to @dest_format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad, on whose peer pad to invoke the convert query on. + Must be a sink pad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="src_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstFormat to convert from.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a value to convert.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstFormat to convert to.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a pointer to the result.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="peer_query_duration" c:identifier="gst_pad_peer_query_duration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Queries the peer pad of a given sink pad for the total stream duration.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad on whose peer pad to invoke the duration query on. + Must be a sink pad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstFormat requested</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="duration" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a location in which to store the total + duration, or %NULL.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="peer_query_position" c:identifier="gst_pad_peer_query_position"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Queries the peer of a given sink pad for the stream position.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad on whose peer to invoke the position query on. + Must be a sink pad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstFormat requested</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="cur" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a location in which to store the current + position, or %NULL.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="proxy_query_accept_caps" c:identifier="gst_pad_proxy_query_accept_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Checks if all internally linked pads of @pad accepts the caps in @query and +returns the intersection of the results. + +This function is useful as a default accept caps query function for an element +that can handle any stream format, but requires caps that are acceptable for +all opposite pads.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if @query could be executed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad to proxy.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">an ACCEPT_CAPS #GstQuery.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </method> + <method name="proxy_query_caps" c:identifier="gst_pad_proxy_query_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Calls gst_pad_query_caps() for all internally linked pads of @pad and returns +the intersection of the results. + +This function is useful as a default caps query function for an element +that can handle any stream format, but requires all its pads to have +the same caps. Two such elements are tee and adder.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if @query could be executed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad to proxy.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a CAPS #GstQuery.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </method> + <method name="pull_range" c:identifier="gst_pad_pull_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Pulls a @buffer from the peer pad or fills up a provided buffer. + +This function will first trigger the pad block signal if it was +installed. + +When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this +function returns the result of gst_pad_get_range() on the peer pad. +See gst_pad_get_range() for a list of return values and for the +semantics of the arguments of this function. + +If @buffer points to a variable holding %NULL, a valid new #GstBuffer will be +placed in @buffer when this function returns #GST_FLOW_OK. The new buffer +must be freed with gst_buffer_unref() after usage. When this function +returns any other result value, @buffer will still point to %NULL. + +When @buffer points to a variable that points to a valid #GstBuffer, the +buffer will be filled with the result data when this function returns +#GST_FLOW_OK. When this function returns any other result value, +@buffer will be unchanged. If the provided buffer is larger than @size, only +@size bytes will be filled in the result buffer and its size will be updated +accordingly. + +Note that less than @size bytes can be returned in @buffer when, for example, +an EOS condition is near or when @buffer is not large enough to hold @size +bytes. The caller should check the result buffer size to get the result size.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstFlowReturn from the peer pad. + +MT safe.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The start offset of the buffer</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The length of the buffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a pointer to hold the #GstBuffer, returns + GST_FLOW_ERROR if %NULL.</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_pad_push"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Pushes a buffer to the peer of @pad. + +This function will call installed block probes before triggering any +installed data probes. + +The function proceeds calling gst_pad_chain() on the peer pad and returns +the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will +be returned. + +In all cases, success or failure, the caller loses its reference to @buffer +after calling this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstFlowReturn from the peer pad. + +MT safe.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a source #GstPad, returns #GST_FLOW_ERROR if not.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstBuffer to push returns GST_FLOW_ERROR + if not.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="push_event" c:identifier="gst_pad_push_event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sends the event to the peer of the given pad. This function is +mainly used by elements to send events to their peer +elements. + +This function takes ownership of the provided event so you should +gst_event_ref() it if you want to reuse the event after this call.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the event was handled. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to push the event to.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstEvent to send to the pad.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </method> + <method name="push_list" c:identifier="gst_pad_push_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Pushes a buffer list to the peer of @pad. + +This function will call installed block probes before triggering any +installed data probes. + +The function proceeds calling the chain function on the peer pad and returns +the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will +be returned. If the peer pad does not have any installed chainlist function +every group buffer of the list will be merged into a normal #GstBuffer and +chained via gst_pad_chain(). + +In all cases, success or failure, the caller loses its reference to @list +after calling this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstFlowReturn from the peer pad. + +MT safe.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a source #GstPad, returns #GST_FLOW_ERROR if not.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstBufferList to push returns GST_FLOW_ERROR + if not.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </method> + <method name="query" c:identifier="gst_pad_query"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Dispatches a query to a pad. The query should have been allocated by the +caller via one of the type-specific allocation functions. The element that +the pad belongs to is responsible for filling the query with an appropriate +response, which should then be parsed with a type-specific query parsing +function. + +Again, the caller is responsible for both the allocation and deallocation of +the query structure. + +Please also note that some queries might need a running pipeline to work.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to invoke the default query on.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstQuery to perform.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </method> + <method name="query_accept_caps" c:identifier="gst_pad_query_accept_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Check if the given pad accepts the caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the pad can accept the caps.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad to check</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstCaps to check on the pad</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="query_caps" c:identifier="gst_pad_query_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Gets the capabilities this pad can produce or consume. +Note that this method doesn't necessarily return the caps set by sending a +gst_event_new_caps() - use gst_pad_get_current_caps() for that instead. +gst_pad_query_caps returns all possible caps a pad can operate with, using +the pad's CAPS query function, If the query fails, this function will return +@filter, if not %NULL, otherwise ANY. + +When called on sinkpads @filter contains the caps that +upstream could produce in the order preferred by upstream. When +called on srcpads @filter contains the caps accepted by +downstream in the preferred order. @filter might be %NULL but +if it is not %NULL the returned caps will be a subset of @filter. + +Note that this function does not return writable #GstCaps, use +gst_caps_make_writable() before modifying the caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the caps of the pad with incremented ref-count.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad to get the capabilities of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">suggested #GstCaps, or %NULL</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="query_convert" c:identifier="gst_pad_query_convert"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Queries a pad to convert @src_val in @src_format to @dest_format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad to invoke the convert query on.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="src_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstFormat to convert from.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a value to convert.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstFormat to convert to.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a pointer to the result.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="query_default" c:identifier="gst_pad_query_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Invokes the default query handler for the given pad. +The query is sent to all pads internally linked to @pad. Note that +if there are many possible sink pads that are internally linked to +@pad, only one will be sent the query. +Multi-sinkpad elements should implement custom query handlers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the query was performed successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to call the default query handler on.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the parent of @pad or %NULL</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstQuery to handle.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </method> + <method name="query_duration" c:identifier="gst_pad_query_duration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Queries a pad for the total stream duration.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad to invoke the duration query on.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstFormat requested</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="duration" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a location in which to store the total + duration, or %NULL.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="query_position" c:identifier="gst_pad_query_position"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Queries a pad for the stream position.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstPad to invoke the position query on.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the #GstFormat requested</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="cur" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A location in which to store the current position, or %NULL.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="remove_probe" c:identifier="gst_pad_remove_probe"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Remove the probe with @id from @pad. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad with the probe</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the probe id to remove</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="send_event" c:identifier="gst_pad_send_event"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sends the event to the pad. This function can be used +by applications to send events in the pipeline. + +If @pad is a source pad, @event should be an upstream event. If @pad is a +sink pad, @event should be a downstream event. For example, you would not +send a #GST_EVENT_EOS on a src pad; EOS events only propagate downstream. +Furthermore, some downstream events have to be serialized with data flow, +like EOS, while some can travel out-of-band, like #GST_EVENT_FLUSH_START. If +the event needs to be serialized with data flow, this function will take the +pad's stream lock while calling its event function. + +To find out whether an event type is upstream, downstream, or downstream and +serialized, see #GstEventTypeFlags, gst_event_type_get_flags(), +#GST_EVENT_IS_UPSTREAM, #GST_EVENT_IS_DOWNSTREAM, and +#GST_EVENT_IS_SERIALIZED. Note that in practice that an application or +plugin doesn't need to bother itself with this information; the core handles +all necessary locks and checks. + +This function takes ownership of the provided event so you should +gst_event_ref() it if you want to reuse the event after this call.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the event was handled.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad to send the event to.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstEvent to send to the pad.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </method> + <method name="set_activate_function_full" c:identifier="gst_pad_set_activate_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given activate function for @pad. The activate function will +dispatch to gst_pad_activate_mode() to perform the actual activation. +Only makes sense to set on sink pads. + +Call this function if your sink pad can start a pull-based task.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="activate" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadActivateFunction to set.</doc> + <type name="PadActivateFunction" c:type="GstPadActivateFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @activate will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_activatemode_function_full" c:identifier="gst_pad_set_activatemode_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given activate_mode function for the pad. An activate_mode function +prepares the element for data passing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="activatemode" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadActivateModeFunction to set.</doc> + <type name="PadActivateModeFunction" c:type="GstPadActivateModeFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @activatemode will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_active" c:identifier="gst_pad_set_active"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Activates or deactivates the given pad. +Normally called from within core state change functions. + +If @active, makes sure the pad is active. If it is already active, either in +push or pull mode, just return. Otherwise dispatches to the pad's activate +function to perform the actual activation. + +If not @active, calls gst_pad_activate_mode() with the pad's current mode +and a %FALSE argument.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the operation was successful. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to activate or deactivate.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">whether or not the pad should be active.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_chain_function_full" c:identifier="gst_pad_set_chain_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given chain function for the pad. The chain function is called to +process a #GstBuffer input buffer. see #GstPadChainFunction for more details.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a sink #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="chain" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadChainFunction to set.</doc> + <type name="PadChainFunction" c:type="GstPadChainFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @chain will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_chain_list_function_full" c:identifier="gst_pad_set_chain_list_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given chain list function for the pad. The chainlist function is +called to process a #GstBufferList input buffer list. See +#GstPadChainListFunction for more details.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a sink #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="chainlist" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadChainListFunction to set.</doc> + <type name="PadChainListFunction" c:type="GstPadChainListFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @chainlist will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_element_private" c:identifier="gst_pad_set_element_private"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Set the given private data gpointer on the pad. +This function can only be used by the element that owns the pad. +No locking is performed in this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to set the private data of.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="priv" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The private data to attach to the pad.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_event_full_function_full" c:identifier="gst_pad_set_event_full_function_full" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given event handler for the pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad of either direction.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadEventFullFunction to set.</doc> + <type name="PadEventFullFunction" c:type="GstPadEventFullFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @event will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_event_function_full" c:identifier="gst_pad_set_event_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given event handler for the pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad of either direction.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadEventFunction to set.</doc> + <type name="PadEventFunction" c:type="GstPadEventFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @event will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_getrange_function_full" c:identifier="gst_pad_set_getrange_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given getrange function for the pad. The getrange function is +called to produce a new #GstBuffer to start the processing pipeline. see +#GstPadGetRangeFunction for a description of the getrange function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a source #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="get" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadGetRangeFunction to set.</doc> + <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @get will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_iterate_internal_links_function_full" c:identifier="gst_pad_set_iterate_internal_links_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given internal link iterator function for the pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad of either direction.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="iterintlink" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadIterIntLinkFunction to set.</doc> + <type name="PadIterIntLinkFunction" c:type="GstPadIterIntLinkFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @iterintlink will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_link_function_full" c:identifier="gst_pad_set_link_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given link function for the pad. It will be called when +the pad is linked with another pad. + +The return value #GST_PAD_LINK_OK should be used when the connection can be +made. + +The return value #GST_PAD_LINK_REFUSED should be used when the connection +cannot be made for some reason. + +If @link is installed on a source pad, it should call the #GstPadLinkFunction +of the peer sink pad, if present.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="link" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadLinkFunction to set.</doc> + <type name="PadLinkFunction" c:type="GstPadLinkFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @link will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_offset" c:identifier="gst_pad_set_offset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Set the offset that will be applied to the running time of @pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the offset</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_query_function_full" c:identifier="gst_pad_set_query_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Set the given query function for the pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad of either direction.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadQueryFunction to set.</doc> + <type name="PadQueryFunction" c:type="GstPadQueryFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @query will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_unlink_function_full" c:identifier="gst_pad_set_unlink_function_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Sets the given unlink function for the pad. It will be called +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> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="unlink" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadUnlinkFunction to set.</doc> + <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user_data passed to @notify</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">notify called when @unlink will not be used anymore.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="start_task" c:identifier="gst_pad_start_task"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Starts a task that repeatedly calls @func with @user_data. This function +is mostly used in pad activation functions to start the dataflow. +The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired +before @func is called.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a %TRUE if the task could be started.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to start the task of</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the task function to call</doc> + <type name="TaskFunction" c:type="GstTaskFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">user data passed to the task function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">called when @user_data is no longer referenced</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="sticky_events_foreach" c:identifier="gst_pad_sticky_events_foreach"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Iterates all sticky events on @pad and calls @foreach_func for every +event. If @foreach_func returns %FALSE the iteration is immediately stopped.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <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" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad that should be used for iteration.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="foreach_func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadStickyEventsForeachFunction that + should be called for every event.</doc> + <type name="PadStickyEventsForeachFunction" c:type="GstPadStickyEventsForeachFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the optional user data.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="stop_task" c:identifier="gst_pad_stop_task"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Stop the task of @pad. This function will also make sure that the +function executed by the task will effectively stop if not called +from the GstTaskFunction. + +This function will deadlock if called from the GstTaskFunction of +the task. Use gst_task_pause() instead. + +Regardless of whether the pad has a task, the stream lock is acquired and +released so as to ensure that streaming through this pad has finished.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a %TRUE if the task could be stopped or %FALSE on error.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPad to stop the task of</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="store_sticky_event" c:identifier="gst_pad_store_sticky_event" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Store the sticky @event on @pad</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">#GST_FLOW_OK on success, #GST_FLOW_FLUSHING when the pad +was flushing or #GST_FLOW_EOS when the pad was EOS.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstEvent</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </method> + <method name="unlink" c:identifier="gst_pad_unlink"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Unlinks the source pad from the sink pad. Will emit the #GstPad::unlinked +signal on both pads.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">%TRUE if the pads were unlinked. This function returns %FALSE if +the pads were not linked together. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="srcpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the source #GstPad to unlink.</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + <parameter name="sinkpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the sink #GstPad to unlink.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="use_fixed_caps" c:identifier="gst_pad_use_fixed_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A helper function you can use that sets the FIXED_CAPS flag +This way the default CAPS query will always return the negotiated caps +or in case the pad is not negotiated, the padtemplate caps. + +The negotiated caps are the caps of the last CAPS event that passed on the +pad. Use this function on a pad that, once it negotiated to a CAPS, cannot +be renegotiated to something else.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <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" filename="../subprojects/gstreamer/gst/gstutils.c">the pad to use</doc> + <type name="Pad" c:type="GstPad*"/> + </instance-parameter> + </parameters> + </method> + <property name="caps" transfer-ownership="none"> + <type name="Caps"/> + </property> + <property name="direction" writable="1" construct-only="1" transfer-ownership="none"> + <type name="PadDirection"/> + </property> + <property name="offset" version="1.6" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The offset that will be applied to the running time of the pad.</doc> + <type name="gint64" c:type="gint64"/> + </property> + <property name="template" writable="1" transfer-ownership="none"> + <type name="PadTemplate"/> + </property> + <field name="object"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="element_private"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">private data owned by the parent element</doc> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="padtemplate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">padtemplate for this pad</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </field> + <field name="direction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the direction of the pad, cannot change after creating + the pad.</doc> + <type name="PadDirection" c:type="GstPadDirection"/> + </field> + <field name="stream_rec_lock" readable="0" private="1"> + <type name="GLib.RecMutex" c:type="GRecMutex"/> + </field> + <field name="task" readable="0" private="1"> + <type name="Task" c:type="GstTask*"/> + </field> + <field name="block_cond" readable="0" private="1"> + <type name="GLib.Cond" c:type="GCond"/> + </field> + <field name="probes" readable="0" private="1"> + <type name="GLib.HookList" c:type="GHookList"/> + </field> + <field name="mode" readable="0" private="1"> + <type name="PadMode" c:type="GstPadMode"/> + </field> + <field name="activatefunc" readable="0" private="1"> + <type name="PadActivateFunction" c:type="GstPadActivateFunction"/> + </field> + <field name="activatedata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="activatenotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="activatemodefunc" readable="0" private="1"> + <type name="PadActivateModeFunction" c:type="GstPadActivateModeFunction"/> + </field> + <field name="activatemodedata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="activatemodenotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="peer" readable="0" private="1"> + <type name="Pad" c:type="GstPad*"/> + </field> + <field name="linkfunc" readable="0" private="1"> + <type name="PadLinkFunction" c:type="GstPadLinkFunction"/> + </field> + <field name="linkdata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="linknotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="unlinkfunc" readable="0" private="1"> + <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/> + </field> + <field name="unlinkdata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="unlinknotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="chainfunc" readable="0" private="1"> + <type name="PadChainFunction" c:type="GstPadChainFunction"/> + </field> + <field name="chaindata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="chainnotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="chainlistfunc" readable="0" private="1"> + <type name="PadChainListFunction" c:type="GstPadChainListFunction"/> + </field> + <field name="chainlistdata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="chainlistnotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="getrangefunc" readable="0" private="1"> + <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/> + </field> + <field name="getrangedata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="getrangenotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="eventfunc" readable="0" private="1"> + <type name="PadEventFunction" c:type="GstPadEventFunction"/> + </field> + <field name="eventdata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="eventnotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="offset" readable="0" private="1"> + <type name="gint64" c:type="gint64"/> + </field> + <field name="queryfunc" readable="0" private="1"> + <type name="PadQueryFunction" c:type="GstPadQueryFunction"/> + </field> + <field name="querydata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="querynotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="iterintlinkfunc" readable="0" private="1"> + <type name="PadIterIntLinkFunction" c:type="GstPadIterIntLinkFunction"/> + </field> + <field name="iterintlinkdata" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="iterintlinknotify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="num_probes" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="num_blocked" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="PadPrivate" c:type="GstPadPrivate*"/> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <field name="last_flowret" writable="1"> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </field> + <field name="eventfullfunc" writable="1"> + <type name="PadEventFullFunction" c:type="GstPadEventFullFunction"/> + </field> + </record> + </union> + <glib:signal name="linked" when="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Signals that a pad has been linked to the peer pad.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="peer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the peer pad that has been connected</doc> + <type name="Pad"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="unlinked" when="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Signals that a pad has been unlinked from the peer pad.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="peer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the peer pad that has been disconnected</doc> + <type name="Pad"/> + </parameter> + </parameters> + </glib:signal> + </class> + <callback name="PadActivateFunction" c:type="GstPadActivateFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">This function is called when the pad is activated during the element +READY to PAUSED state change. By default this function will call the +activate function that puts the pad in push mode but elements can +override this function to activate the pad in pull mode if they wish.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">%TRUE if the pad could be activated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </callback> + <callback name="PadActivateModeFunction" c:type="GstPadActivateModeFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The prototype of the push and pull activate functions.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">%TRUE if the pad could be activated or deactivated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPad</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the requested activation mode of @pad</doc> + <type name="PadMode" c:type="GstPadMode"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">activate or deactivate the pad.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + <callback name="PadChainFunction" c:type="GstPadChainFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">A function that will be called on sinkpads when chaining buffers. +The function typically processes the data contained in the buffer and +either consumes the data or passes it on to the internally linked pad(s). + +The implementer of this function receives a refcount to @buffer and should +gst_buffer_unref() when the buffer is no longer needed. + +When a chain function detects an error in the data stream, it must post an +error on the bus and return an appropriate #GstFlowReturn value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">#GST_FLOW_OK for success</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the sink #GstPad that performed the chain.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT + flag is set, @parent is guaranteed to be not-%NULL and remain valid + during the execution of this function.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstBuffer that is chained, not %NULL.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + <callback name="PadChainListFunction" c:type="GstPadChainListFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">A function that will be called on sinkpads when chaining buffer lists. +The function typically processes the data contained in the buffer list and +either consumes the data or passes it on to the internally linked pad(s). + +The implementer of this function receives a refcount to @list and +should gst_buffer_list_unref() when the list is no longer needed. + +When a chainlist function detects an error in the data stream, it must +post an error on the bus and return an appropriate #GstFlowReturn value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">#GST_FLOW_OK for success</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the sink #GstPad that performed the chain.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT + flag is set, @parent is guaranteed to be not-%NULL and remain valid + during the execution of this function.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstBufferList that is chained, not %NULL.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </callback> + <record name="PadClass" c:type="GstPadClass" glib:is-gtype-struct-for="Pad"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <field name="parent_class"> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="linked"> + <callback name="linked"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="peer" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unlinked"> + <callback name="unlinked"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="peer" transfer-ownership="none"> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="PadDirection" glib:type-name="GstPadDirection" glib:get-type="gst_pad_direction_get_type" c:type="GstPadDirection"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The direction of a pad.</doc> + <member name="unknown" value="0" c:identifier="GST_PAD_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">direction is unknown.</doc> + </member> + <member name="src" value="1" c:identifier="GST_PAD_SRC" glib:nick="src"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the pad is a source pad.</doc> + </member> + <member name="sink" value="2" c:identifier="GST_PAD_SINK" glib:nick="sink"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the pad is a sink pad.</doc> + </member> + </enumeration> + <callback name="PadEventFullFunction" c:type="GstPadEventFullFunction" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Function signature to handle an event for the pad. + +This variant is for specific elements that will take into account the +last downstream flow return (from a pad push), in which case they can +return it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">%GST_FLOW_OK if the event was handled properly, or any other +#GstFlowReturn dependent on downstream state.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPad to handle the event.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT + flag is set, @parent is guaranteed to be not-%NULL and remain valid + during the execution of this function.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstEvent to handle.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + <callback name="PadEventFunction" c:type="GstPadEventFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Function signature to handle an event for the pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">%TRUE if the pad could handle the event.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPad to handle the event.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT + flag is set, @parent is guaranteed to be not-%NULL and remain valid + during the execution of this function.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstEvent to handle.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + <bitfield name="PadFlags" glib:type-name="GstPadFlags" glib:get-type="gst_pad_flags_get_type" c:type="GstPadFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pad state flags</doc> + <member name="blocked" value="16" c:identifier="GST_PAD_FLAG_BLOCKED" glib:nick="blocked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">is dataflow on a pad blocked</doc> + </member> + <member name="flushing" value="32" c:identifier="GST_PAD_FLAG_FLUSHING" glib:nick="flushing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">is pad flushing</doc> + </member> + <member name="eos" value="64" c:identifier="GST_PAD_FLAG_EOS" glib:nick="eos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">is pad in EOS state</doc> + </member> + <member name="blocking" value="128" c:identifier="GST_PAD_FLAG_BLOCKING" glib:nick="blocking"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">is pad currently blocking on a buffer or event</doc> + </member> + <member name="need_parent" value="256" c:identifier="GST_PAD_FLAG_NEED_PARENT" glib:nick="need-parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">ensure that there is a parent object before calling + into the pad callbacks.</doc> + </member> + <member name="need_reconfigure" value="512" c:identifier="GST_PAD_FLAG_NEED_RECONFIGURE" glib:nick="need-reconfigure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the pad should be reconfigured/renegotiated. + The flag has to be unset manually after + reconfiguration happened.</doc> + </member> + <member name="pending_events" value="1024" c:identifier="GST_PAD_FLAG_PENDING_EVENTS" glib:nick="pending-events"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the pad has pending events</doc> + </member> + <member name="fixed_caps" value="2048" c:identifier="GST_PAD_FLAG_FIXED_CAPS" glib:nick="fixed-caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the pad is using fixed caps. This means that + once the caps are set on the pad, the default caps query function + will only return those caps.</doc> + </member> + <member name="proxy_caps" value="4096" c:identifier="GST_PAD_FLAG_PROXY_CAPS" glib:nick="proxy-caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the default event and query handler will forward + all events and queries to the internally linked pads + instead of discarding them.</doc> + </member> + <member name="proxy_allocation" value="8192" c:identifier="GST_PAD_FLAG_PROXY_ALLOCATION" glib:nick="proxy-allocation"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the default query handler will forward + allocation queries to the internally linked pads + instead of discarding them.</doc> + </member> + <member name="proxy_scheduling" value="16384" c:identifier="GST_PAD_FLAG_PROXY_SCHEDULING" glib:nick="proxy-scheduling"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the default query handler will forward + scheduling queries to the internally linked pads + instead of discarding them.</doc> + </member> + <member name="accept_intersect" value="32768" c:identifier="GST_PAD_FLAG_ACCEPT_INTERSECT" glib:nick="accept-intersect"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the default accept-caps handler will check + it the caps intersect the query-caps result instead + of checking for a subset. This is interesting for + parsers that can accept incompletely specified caps.</doc> + </member> + <member name="accept_template" value="65536" c:identifier="GST_PAD_FLAG_ACCEPT_TEMPLATE" glib:nick="accept-template"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the default accept-caps handler will use + the template pad caps instead of query caps to + compare with the accept caps. Use this in combination + with %GST_PAD_FLAG_ACCEPT_INTERSECT. (Since: 1.6)</doc> + </member> + <member name="last" value="1048576" c:identifier="GST_PAD_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">offset to define more flags</doc> + </member> + </bitfield> + <callback name="PadForwardFunction" c:type="GstPadForwardFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">A forward function is called for all internally linked pads, see +gst_pad_forward().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">%TRUE if the dispatching procedure has to be stopped.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPad that is forwarded.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the gpointer to optional user data.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">This function will be called on source pads when a peer element +request a buffer at the specified @offset and @length. If this function +returns #GST_FLOW_OK, the result buffer will be stored in @buffer. The +contents of @buffer is invalid for any other return value. + +This function is installed on a source pad with +gst_pad_set_getrange_function() and can only be called on source pads after +they are successfully activated with gst_pad_activate_mode() with the +#GST_PAD_MODE_PULL. + +@offset and @length are always given in byte units. @offset must normally be a value +between 0 and the length in bytes of the data available on @pad. The +length (duration in bytes) can be retrieved with a #GST_QUERY_DURATION or with a +#GST_QUERY_SEEKING. + +Any @offset larger or equal than the length will make the function return +#GST_FLOW_EOS, which corresponds to EOS. In this case @buffer does not +contain a valid buffer. + +The buffer size of @buffer will only be smaller than @length when @offset is +near the end of the stream. In all other cases, the size of @buffer must be +exactly the requested size. + +It is allowed to call this function with a 0 @length and valid @offset, in +which case @buffer will contain a 0-sized buffer and the function returns +#GST_FLOW_OK. + +When this function is called with a -1 @offset, the sequentially next buffer +of length @length in the stream is returned. + +When this function is called with a -1 @length, a buffer with a default +optimal length is returned in @buffer. The length might depend on the value +of @offset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">#GST_FLOW_OK for success and a valid buffer in @buffer. Any other +return value leaves @buffer undefined.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the src #GstPad to perform the getrange on.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT + flag is set, @parent is guaranteed to be not-%NULL and remain valid + during the execution of this function.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the offset of the range</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the length of the range</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a memory location to hold the result buffer, cannot be %NULL.</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + <callback name="PadIterIntLinkFunction" c:type="GstPadIterIntLinkFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The signature of the internal pad link iterator function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a new #GstIterator that will iterate over all pads that are +linked to the given pad on the inside of the parent element. + +the caller must call gst_iterator_free() after usage.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The #GstPad to query.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT + flag is set, @parent is guaranteed to be not-%NULL and remain valid + during the execution of this function.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </callback> + <bitfield name="PadLinkCheck" glib:type-name="GstPadLinkCheck" glib:get-type="gst_pad_link_check_get_type" c:type="GstPadLinkCheck"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The amount of checking to be done when linking pads. @GST_PAD_LINK_CHECK_CAPS +and @GST_PAD_LINK_CHECK_TEMPLATE_CAPS are mutually exclusive. If both are +specified, expensive but safe @GST_PAD_LINK_CHECK_CAPS are performed. + +> Only disable some of the checks if you are 100% certain you know the link +> will not fail because of hierarchy/caps compatibility failures. If uncertain, +> use the default checks (%GST_PAD_LINK_CHECK_DEFAULT) or the regular methods +> for linking the pads.</doc> + <member name="nothing" value="0" c:identifier="GST_PAD_LINK_CHECK_NOTHING" glib:nick="nothing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Don't check hierarchy or caps compatibility.</doc> + </member> + <member name="hierarchy" value="1" c:identifier="GST_PAD_LINK_CHECK_HIERARCHY" glib:nick="hierarchy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check the pads have same parents/grandparents. + Could be omitted if it is already known that the two elements that own the + pads are in the same bin.</doc> + </member> + <member name="template_caps" value="2" c:identifier="GST_PAD_LINK_CHECK_TEMPLATE_CAPS" glib:nick="template-caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the pads are compatible by using + their template caps. This is much faster than @GST_PAD_LINK_CHECK_CAPS, but + would be unsafe e.g. if one pad has %GST_CAPS_ANY.</doc> + </member> + <member name="caps" value="4" c:identifier="GST_PAD_LINK_CHECK_CAPS" glib:nick="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Check if the pads are compatible by comparing the + caps returned by gst_pad_query_caps().</doc> + </member> + <member name="no_reconfigure" value="8" c:identifier="GST_PAD_LINK_CHECK_NO_RECONFIGURE" glib:nick="no-reconfigure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Disables pushing a reconfigure event when pads are + linked.</doc> + </member> + <member name="default" value="5" c:identifier="GST_PAD_LINK_CHECK_DEFAULT" glib:nick="default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The default checks done when linking + pads (i.e. the ones used by gst_pad_link()).</doc> + </member> + </bitfield> + <callback name="PadLinkFunction" c:type="GstPadLinkFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Function signature to handle a new link on the pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the result of the link with the specified peer.</doc> + <type name="PadLinkReturn" c:type="GstPadLinkReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPad that is linked.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT + flag is set, @parent is guaranteed to be not-%NULL and remain valid + during the execution of this function.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="peer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the peer #GstPad of the link</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + <enumeration name="PadLinkReturn" glib:type-name="GstPadLinkReturn" glib:get-type="gst_pad_link_return_get_type" c:type="GstPadLinkReturn"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Result values from gst_pad_link and friends.</doc> + <member name="ok" value="0" c:identifier="GST_PAD_LINK_OK" glib:nick="ok"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">link succeeded</doc> + </member> + <member name="wrong_hierarchy" value="-1" c:identifier="GST_PAD_LINK_WRONG_HIERARCHY" glib:nick="wrong-hierarchy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">pads have no common grandparent</doc> + </member> + <member name="was_linked" value="-2" c:identifier="GST_PAD_LINK_WAS_LINKED" glib:nick="was-linked"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">pad was already linked</doc> + </member> + <member name="wrong_direction" value="-3" c:identifier="GST_PAD_LINK_WRONG_DIRECTION" glib:nick="wrong-direction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">pads have wrong direction</doc> + </member> + <member name="noformat" value="-4" c:identifier="GST_PAD_LINK_NOFORMAT" glib:nick="noformat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">pads do not have common format</doc> + </member> + <member name="nosched" value="-5" c:identifier="GST_PAD_LINK_NOSCHED" glib:nick="nosched"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">pads cannot cooperate in scheduling</doc> + </member> + <member name="refused" value="-6" c:identifier="GST_PAD_LINK_REFUSED" glib:nick="refused"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">refused for some reason</doc> + </member> + </enumeration> + <enumeration name="PadMode" glib:type-name="GstPadMode" glib:get-type="gst_pad_mode_get_type" c:type="GstPadMode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The status of a GstPad. After activating a pad, which usually happens when the +parent element goes from READY to PAUSED, the GstPadMode defines if the +pad operates in push or pull mode.</doc> + <member name="none" value="0" c:identifier="GST_PAD_MODE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pad will not handle dataflow</doc> + </member> + <member name="push" value="1" c:identifier="GST_PAD_MODE_PUSH" glib:nick="push"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pad handles dataflow in downstream push mode</doc> + </member> + <member name="pull" value="2" c:identifier="GST_PAD_MODE_PULL" glib:nick="pull"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Pad handles dataflow in upstream pull mode</doc> + </member> + <function name="get_name" c:identifier="gst_pad_mode_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Return the name of a pad mode, for use in debug messages mostly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">short mnemonic for pad mode @mode</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the pad mode</doc> + <type name="PadMode" c:type="GstPadMode"/> + </parameter> + </parameters> + </function> + </enumeration> + <enumeration name="PadPresence" glib:type-name="GstPadPresence" glib:get-type="gst_pad_presence_get_type" c:type="GstPadPresence"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Indicates when this pad will become available.</doc> + <member name="always" value="0" c:identifier="GST_PAD_ALWAYS" glib:nick="always"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the pad is always available</doc> + </member> + <member name="sometimes" value="1" c:identifier="GST_PAD_SOMETIMES" glib:nick="sometimes"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the pad will become available depending on the media stream</doc> + </member> + <member name="request" value="2" c:identifier="GST_PAD_REQUEST" glib:nick="request"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the pad is only available on request with + gst_element_request_pad().</doc> + </member> + </enumeration> + <record name="PadPrivate" c:type="GstPadPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + </record> + <callback name="PadProbeCallback" c:type="GstPadProbeCallback"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Callback used by gst_pad_add_probe(). Gets called to notify about the current +blocking type. + +The callback is allowed to modify the data pointer in @info.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a #GstPadProbeReturn</doc> + <type name="PadProbeReturn" c:type="GstPadProbeReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPad that is blocked</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">#GstPadProbeInfo</doc> + <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the gpointer to optional user data.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="PadProbeInfo" c:type="GstPadProbeInfo"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Info passed in the #GstPadProbeCallback.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the current probe type</doc> + <type name="PadProbeType" c:type="GstPadProbeType"/> + </field> + <field name="id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the id of the probe</doc> + <type name="gulong" c:type="gulong"/> + </field> + <field name="data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">type specific data, check the @type field to know the + datatype. This field can be %NULL.</doc> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="offset" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">offset of pull probe, this field is valid when @type contains + #GST_PAD_PROBE_TYPE_PULL</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">size of pull probe, this field is valid when @type contains + #GST_PAD_PROBE_TYPE_PULL</doc> + <type name="guint" c:type="guint"/> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <field name="flow_ret" writable="1"> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </field> + </record> + </union> + <method name="get_buffer" c:identifier="gst_pad_probe_info_get_buffer"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The #GstBuffer from the probe</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPadProbeInfo</doc> + <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_buffer_list" c:identifier="gst_pad_probe_info_get_buffer_list"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The #GstBufferList from the probe</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPadProbeInfo</doc> + <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_event" c:identifier="gst_pad_probe_info_get_event"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The #GstEvent from the probe</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPadProbeInfo</doc> + <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_query" c:identifier="gst_pad_probe_info_get_query"> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">The #GstQuery from the probe</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPadProbeInfo</doc> + <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/> + </instance-parameter> + </parameters> + </method> + </record> + <enumeration name="PadProbeReturn" glib:type-name="GstPadProbeReturn" glib:get-type="gst_pad_probe_return_get_type" c:type="GstPadProbeReturn"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Different return values for the #GstPadProbeCallback.</doc> + <member name="drop" value="0" c:identifier="GST_PAD_PROBE_DROP" glib:nick="drop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">drop data in data probes. For push mode this means that + the data item is not sent downstream. For pull mode, it means that + the data item is not passed upstream. In both cases, no other probes + are called for this item and %GST_FLOW_OK or %TRUE is returned to the + caller.</doc> + </member> + <member name="ok" value="1" c:identifier="GST_PAD_PROBE_OK" glib:nick="ok"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">normal probe return value. This leaves the probe in + place, and defers decisions about dropping or passing data to other + probes, if any. If there are no other probes, the default behaviour + for the probe type applies ('block' for blocking probes, + and 'pass' for non-blocking probes).</doc> + </member> + <member name="remove" value="2" c:identifier="GST_PAD_PROBE_REMOVE" glib:nick="remove"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">remove this probe, passing the data. For blocking probes + this will cause data flow to unblock, unless there are also other + blocking probes installed.</doc> + </member> + <member name="pass" value="3" c:identifier="GST_PAD_PROBE_PASS" glib:nick="pass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">pass the data item in the block probe and block on the + next item. Note, that if there are multiple pad probes installed and + any probe returns PASS, the data will be passed.</doc> + </member> + <member name="handled" value="4" c:identifier="GST_PAD_PROBE_HANDLED" glib:nick="handled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Data has been handled in the probe and will not be + forwarded further. For events and buffers this is the same behaviour as + %GST_PAD_PROBE_DROP (except that in this case you need to unref the buffer + or event yourself). For queries it will also return %TRUE to the caller. + The probe can also modify the #GstFlowReturn value by using the + #GST_PAD_PROBE_INFO_FLOW_RETURN() accessor. + Note that the resulting query must contain valid entries. + Since: 1.6</doc> + </member> + </enumeration> + <bitfield name="PadProbeType" glib:type-name="GstPadProbeType" glib:get-type="gst_pad_probe_type_get_type" c:type="GstPadProbeType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The different probing types that can occur. When either one of +@GST_PAD_PROBE_TYPE_IDLE or @GST_PAD_PROBE_TYPE_BLOCK is used, the probe will be a +blocking probe.</doc> + <member name="invalid" value="0" c:identifier="GST_PAD_PROBE_TYPE_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">invalid probe type</doc> + </member> + <member name="idle" value="1" c:identifier="GST_PAD_PROBE_TYPE_IDLE" glib:nick="idle"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe idle pads and block while the callback is called</doc> + </member> + <member name="block" value="2" c:identifier="GST_PAD_PROBE_TYPE_BLOCK" glib:nick="block"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe and block pads</doc> + </member> + <member name="buffer" value="16" c:identifier="GST_PAD_PROBE_TYPE_BUFFER" glib:nick="buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe buffers</doc> + </member> + <member name="buffer_list" value="32" c:identifier="GST_PAD_PROBE_TYPE_BUFFER_LIST" glib:nick="buffer-list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe buffer lists</doc> + </member> + <member name="event_downstream" value="64" c:identifier="GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM" glib:nick="event-downstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe downstream events</doc> + </member> + <member name="event_upstream" value="128" c:identifier="GST_PAD_PROBE_TYPE_EVENT_UPSTREAM" glib:nick="event-upstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe upstream events</doc> + </member> + <member name="event_flush" value="256" c:identifier="GST_PAD_PROBE_TYPE_EVENT_FLUSH" glib:nick="event-flush"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe flush events. This probe has to be + explicitly enabled and is not included in the + @@GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM or + @@GST_PAD_PROBE_TYPE_EVENT_UPSTREAM probe types.</doc> + </member> + <member name="query_downstream" value="512" c:identifier="GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM" glib:nick="query-downstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe downstream queries</doc> + </member> + <member name="query_upstream" value="1024" c:identifier="GST_PAD_PROBE_TYPE_QUERY_UPSTREAM" glib:nick="query-upstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe upstream queries</doc> + </member> + <member name="push" value="4096" c:identifier="GST_PAD_PROBE_TYPE_PUSH" glib:nick="push"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe push</doc> + </member> + <member name="pull" value="8192" c:identifier="GST_PAD_PROBE_TYPE_PULL" glib:nick="pull"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe pull</doc> + </member> + <member name="blocking" value="3" c:identifier="GST_PAD_PROBE_TYPE_BLOCKING" glib:nick="blocking"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe and block at the next opportunity, at data flow or when idle</doc> + </member> + <member name="data_downstream" value="112" c:identifier="GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM" glib:nick="data-downstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe downstream data (buffers, buffer lists, and events)</doc> + </member> + <member name="data_upstream" value="128" c:identifier="GST_PAD_PROBE_TYPE_DATA_UPSTREAM" glib:nick="data-upstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe upstream data (events)</doc> + </member> + <member name="data_both" value="240" c:identifier="GST_PAD_PROBE_TYPE_DATA_BOTH" glib:nick="data-both"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe upstream and downstream data (buffers, buffer lists, and events)</doc> + </member> + <member name="block_downstream" value="114" c:identifier="GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM" glib:nick="block-downstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe and block downstream data (buffers, buffer lists, and events)</doc> + </member> + <member name="block_upstream" value="130" c:identifier="GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM" glib:nick="block-upstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe and block upstream data (events)</doc> + </member> + <member name="event_both" value="192" c:identifier="GST_PAD_PROBE_TYPE_EVENT_BOTH" glib:nick="event-both"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe upstream and downstream events</doc> + </member> + <member name="query_both" value="1536" c:identifier="GST_PAD_PROBE_TYPE_QUERY_BOTH" glib:nick="query-both"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe upstream and downstream queries</doc> + </member> + <member name="all_both" value="1776" c:identifier="GST_PAD_PROBE_TYPE_ALL_BOTH" glib:nick="all-both"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe upstream events and queries and downstream buffers, buffer lists, events and queries</doc> + </member> + <member name="scheduling" value="12288" c:identifier="GST_PAD_PROBE_TYPE_SCHEDULING" glib:nick="scheduling"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">probe push and pull</doc> + </member> + </bitfield> + <callback name="PadQueryFunction" c:type="GstPadQueryFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">The signature of the query function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">%TRUE if the query could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPad to query.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT + flag is set, @parent is guaranteed to be not-%NULL and remain valid + during the execution of this function.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstQuery object to execute</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + <callback name="PadStickyEventsForeachFunction" c:type="GstPadStickyEventsForeachFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Callback used by gst_pad_sticky_events_foreach(). + +When this function returns %TRUE, the next event will be +returned. When %FALSE is returned, gst_pad_sticky_events_foreach() will return. + +When @event is set to %NULL, the item will be removed from the list of sticky events. +@event can be replaced by assigning a new reference to it. +This function is responsible for unreffing the old event when +removing or modifying.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">%TRUE if the iteration should continue</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPad.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="event" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">a sticky #GstEvent.</doc> + <type name="Event" c:type="GstEvent**"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #gpointer to optional user data.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="PadTemplate" c:symbol-prefix="pad_template" c:type="GstPadTemplate" parent="Object" glib:type-name="GstPadTemplate" glib:get-type="gst_pad_template_get_type" glib:type-struct="PadTemplateClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Padtemplates describe the possible media types a pad or an elementfactory can +handle. This allows for both inspection of handled types before loading the +element plugin as well as identifying pads on elements that are not yet +created (request or sometimes pads). + +Pad and PadTemplates have #GstCaps attached to it to describe the media type +they are capable of dealing with. gst_pad_template_get_caps() or +GST_PAD_TEMPLATE_CAPS() are used to get the caps of a padtemplate. It's not +possible to modify the caps of a padtemplate after creation. + +PadTemplates have a #GstPadPresence property which identifies the lifetime +of the pad and that can be retrieved with GST_PAD_TEMPLATE_PRESENCE(). Also +the direction of the pad can be retrieved from the #GstPadTemplate with +GST_PAD_TEMPLATE_DIRECTION(). + +The GST_PAD_TEMPLATE_NAME_TEMPLATE () is important for GST_PAD_REQUEST pads +because it has to be used as the name in the gst_element_request_pad_simple() +call to instantiate a pad from this template. + +Padtemplates can be created with gst_pad_template_new() or with +gst_static_pad_template_get (), which creates a #GstPadTemplate from a +#GstStaticPadTemplate that can be filled with the +convenient GST_STATIC_PAD_TEMPLATE() macro. + +A padtemplate can be used to create a pad (see gst_pad_new_from_template() +or gst_pad_new_from_static_template ()) or to add to an element class +(see gst_element_class_add_static_pad_template ()). + +The following code example shows the code to create a pad from a padtemplate. +|[<!-- language="C" --> + GstStaticPadTemplate my_template = + GST_STATIC_PAD_TEMPLATE ( + "sink", // the name of the pad + GST_PAD_SINK, // the direction of the pad + GST_PAD_ALWAYS, // when this pad will be present + GST_STATIC_CAPS ( // the capabilities of the padtemplate + "audio/x-raw, " + "channels = (int) [ 1, 6 ]" + ) + ); + void + my_method (void) + { + GstPad *pad; + pad = gst_pad_new_from_static_template (&my_template, "sink"); + ... + } +]| + +The following example shows you how to add the padtemplate to an +element class, this is usually done in the class_init of the class: +|[<!-- language="C" --> + static void + my_element_class_init (GstMyElementClass *klass) + { + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_static_pad_template (gstelement_class, &my_template); + } +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <constructor name="new" c:identifier="gst_pad_template_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Creates a new pad template with a name according to the given template +and with the given arguments.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a new #GstPadTemplate.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </return-value> + <parameters> + <parameter name="name_template" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the name template.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the #GstPadDirection of the template.</doc> + <type name="PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="presence" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the #GstPadPresence of the pad.</doc> + <type name="PadPresence" c:type="GstPadPresence"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a #GstCaps set for the template.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_static_pad_template_with_gtype" c:identifier="gst_pad_template_new_from_static_pad_template_with_gtype" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Converts a #GstStaticPadTemplate into a #GstPadTemplate with a type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a new #GstPadTemplate.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </return-value> + <parameters> + <parameter name="pad_template" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the static pad template</doc> + <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="pad_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">The #GType of the pad to create</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_with_gtype" c:identifier="gst_pad_template_new_with_gtype" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Creates a new pad template with a name according to the given template +and with the given arguments.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a new #GstPadTemplate.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </return-value> + <parameters> + <parameter name="name_template" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the name template.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the #GstPadDirection of the template.</doc> + <type name="PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="presence" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the #GstPadPresence of the pad.</doc> + <type name="PadPresence" c:type="GstPadPresence"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a #GstCaps set for the template.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="pad_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">The #GType of the pad to create</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="pad_created" invoker="pad_created"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Emit the pad-created signal for this template when created by this pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a #GstPadTemplate that has been created</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the #GstPad that created it</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_caps" c:identifier="gst_pad_template_get_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Gets the capabilities of the pad template.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the #GstCaps of the pad template. +Unref after usage.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a #GstPadTemplate to get capabilities of.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_documentation_caps" c:identifier="gst_pad_template_get_documentation_caps" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">See gst_pad_template_set_documentation_caps().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">The caps to document. For convenience, this will return + gst_pad_template_get_caps() when no documentation caps were set.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the pad template to get documented capabilities on</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </instance-parameter> + </parameters> + </method> + <method name="pad_created" c:identifier="gst_pad_template_pad_created"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Emit the pad-created signal for this template when created by this pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a #GstPadTemplate that has been created</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the #GstPad that created it</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="set_documentation_caps" c:identifier="gst_pad_template_set_documentation_caps" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Certain elements will dynamically construct the caps of their +pad templates. In order not to let environment-specific information +into the documentation, element authors should use this method to +expose "stable" caps to the reader.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the pad template to set documented capabilities on</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the documented capabilities</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <property name="caps" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">The capabilities of the pad described by the pad template.</doc> + <type name="Caps"/> + </property> + <property name="direction" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">The direction of the pad described by the pad template.</doc> + <type name="PadDirection"/> + </property> + <property name="gtype" version="1.14" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">The type of the pad described by the pad template.</doc> + <type name="GType" c:type="GType"/> + </property> + <property name="name-template" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">The name template of the pad template.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="presence" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">When the pad described by the pad template will become available.</doc> + <type name="PadPresence"/> + </property> + <field name="object"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="name_template"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="direction"> + <type name="PadDirection" c:type="GstPadDirection"/> + </field> + <field name="presence"> + <type name="PadPresence" c:type="GstPadPresence"/> + </field> + <field name="caps"> + <type name="Caps" c:type="GstCaps*"/> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <field name="gtype" writable="1"> + <type name="GType" c:type="GType"/> + </field> + <field name="documentation_caps" writable="1"> + <type name="Caps" c:type="GstCaps*"/> + </field> + </record> + </union> + <glib:signal name="pad-created" when="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">This signal is fired when an element creates a pad from this template.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the pad that was created.</doc> + <type name="Pad"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="PadTemplateClass" c:type="GstPadTemplateClass" glib:is-gtype-struct-for="PadTemplate"> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <field name="parent_class"> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="pad_created"> + <callback name="pad_created"> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a #GstPadTemplate that has been created</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the #GstPad that created it</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="PadTemplateFlags" glib:type-name="GstPadTemplateFlags" glib:get-type="gst_pad_template_flags_get_type" c:type="GstPadTemplateFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Flags for the padtemplate</doc> + <member name="last" value="256" c:identifier="GST_PAD_TEMPLATE_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">first flag that can be used by subclasses.</doc> + </member> + </bitfield> + <callback name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">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> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the #GstPad that is linked.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT + flag is set, @parent is guaranteed to be not-%NULL and remain valid + during the execution of this function.</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </callback> + <class name="ParamArray" c:symbol-prefix="param_spec_array" version="1.12" parent="GObject.ParamSpec" glib:type-name="GstParamArray" glib:get-type="gst_param_spec_array_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">A fundamental type that describes a #GParamSpec for arrays of +values</doc> + </class> + <class name="ParamFraction" c:symbol-prefix="param_spec_fraction" parent="GObject.ParamSpec" glib:type-name="GstParamFraction" glib:get-type="gst_param_spec_fraction_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">A fundamental type that describes a #GParamSpec for fractional +properties</doc> + </class> + <record name="ParamSpecArray" c:type="GstParamSpecArray"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">A GParamSpec derived structure for arrays of values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <field name="parent_instance" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">super class</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec"/> + </field> + <field name="element_spec" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">the #GParamSpec of the type of values in the array</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </field> + </record> + <record name="ParamSpecFraction" c:type="GstParamSpecFraction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">A GParamSpec derived structure that contains the meta data for fractional +properties.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <field name="parent_instance" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">super class</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec"/> + </field> + <field name="min_num" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">minimal numerator</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="min_den" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">minimal denominator</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="max_num" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">maximal numerator</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="max_den" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">maximal denominator</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="def_num" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">default numerator</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="def_den" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.h">default denominator</doc> + <type name="gint" c:type="gint"/> + </field> + </record> + <record name="ParentBufferMeta" c:type="GstParentBufferMeta" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">The #GstParentBufferMeta is a #GstMeta which can be attached to a #GstBuffer +to hold a reference to another buffer that is only released when the child +#GstBuffer is released. + +Typically, #GstParentBufferMeta is used when the child buffer is directly +using the #GstMemory of the parent buffer, and wants to prevent the parent +buffer from being returned to a buffer pool until the #GstMemory is available +for re-use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <field name="parent" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the parent #GstMeta structure</doc> + <type name="Meta" c:type="GstMeta"/> + </field> + <field name="buffer" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the #GstBuffer on which a reference is being held.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </field> + <function name="get_info" c:identifier="gst_parent_buffer_meta_get_info" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the global #GstMetaInfo describing the #GstParentBufferMeta meta.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The #GstMetaInfo</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <record name="ParseContext" c:type="GstParseContext" glib:type-name="GstParseContext" glib:get-type="gst_parse_context_get_type" c:symbol-prefix="parse_context"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">Opaque structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparse.h"/> + <constructor name="new" c:identifier="gst_parse_context_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Allocates a parse context for use with gst_parse_launch_full() or +gst_parse_launchv_full(). + +Free-function: gst_parse_context_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparse.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a newly-allocated parse context. Free + with gst_parse_context_free() when no longer needed.</doc> + <type name="ParseContext" c:type="GstParseContext*"/> + </return-value> + </constructor> + <method name="copy" c:identifier="gst_parse_context_copy" version="1.12.1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Copies the @context.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparse.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">A copied #GstParseContext</doc> + <type name="ParseContext" c:type="GstParseContext*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a #GstParseContext</doc> + <type name="ParseContext" c:type="const GstParseContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_parse_context_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Frees a parse context previously allocated with gst_parse_context_new().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a #GstParseContext</doc> + <type name="ParseContext" c:type="GstParseContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_missing_elements" c:identifier="gst_parse_context_get_missing_elements"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Retrieve missing elements from a previous run of gst_parse_launch_full() +or gst_parse_launchv_full(). Will only return results if an error code +of %GST_PARSE_ERROR_NO_SUCH_ELEMENT was returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparse.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a + %NULL-terminated array of element factory name strings of missing + elements. Free with g_strfreev() when no longer needed.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a #GstParseContext</doc> + <type name="ParseContext" c:type="GstParseContext*"/> + </instance-parameter> + </parameters> + </method> + </record> + <enumeration name="ParseError" glib:type-name="GstParseError" glib:get-type="gst_parse_error_get_type" c:type="GstParseError" glib:error-domain="gst_parse_error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">The different parsing errors that can occur.</doc> + <member name="syntax" value="0" c:identifier="GST_PARSE_ERROR_SYNTAX" glib:nick="syntax"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">A syntax error occurred.</doc> + </member> + <member name="no_such_element" value="1" c:identifier="GST_PARSE_ERROR_NO_SUCH_ELEMENT" glib:nick="no-such-element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">The description contained an unknown element</doc> + </member> + <member name="no_such_property" value="2" c:identifier="GST_PARSE_ERROR_NO_SUCH_PROPERTY" glib:nick="no-such-property"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">An element did not have a specified property</doc> + </member> + <member name="link" value="3" c:identifier="GST_PARSE_ERROR_LINK" glib:nick="link"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">There was an error linking two pads.</doc> + </member> + <member name="could_not_set_property" value="4" c:identifier="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY" glib:nick="could-not-set-property"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">There was an error setting a property</doc> + </member> + <member name="empty_bin" value="5" c:identifier="GST_PARSE_ERROR_EMPTY_BIN" glib:nick="empty-bin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">An empty bin was specified.</doc> + </member> + <member name="empty" value="6" c:identifier="GST_PARSE_ERROR_EMPTY" glib:nick="empty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">An empty description was specified</doc> + </member> + <member name="delayed_link" value="7" c:identifier="GST_PARSE_ERROR_DELAYED_LINK" glib:nick="delayed-link"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">A delayed link did not get resolved.</doc> + </member> + <function name="quark" c:identifier="gst_parse_error_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Get the error quark used by the parsing subsystem.</doc> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">the quark of the parse errors.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <bitfield name="ParseFlags" glib:type-name="GstParseFlags" glib:get-type="gst_parse_flags_get_type" c:type="GstParseFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">Parsing options.</doc> + <member name="none" value="0" c:identifier="GST_PARSE_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">Do not use any special parsing options.</doc> + </member> + <member name="fatal_errors" value="1" c:identifier="GST_PARSE_FLAG_FATAL_ERRORS" glib:nick="fatal-errors"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">Always return %NULL when an error occurs + (default behaviour is to return partially constructed bins or elements + in some cases)</doc> + </member> + <member name="no_single_element_bins" value="2" c:identifier="GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS" glib:nick="no-single-element-bins"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">If a bin only has a single element, + just return the element.</doc> + </member> + <member name="place_in_bin" value="4" c:identifier="GST_PARSE_FLAG_PLACE_IN_BIN" glib:nick="place-in-bin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.h">If more than one toplevel element is described + by the pipeline description string, put them in a #GstBin instead of a + #GstPipeline. (Since: 1.10)</doc> + </member> + </bitfield> + <class name="Pipeline" c:symbol-prefix="pipeline" c:type="GstPipeline" parent="Bin" glib:type-name="GstPipeline" glib:get-type="gst_pipeline_get_type" glib:type-struct="PipelineClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">A #GstPipeline is a special #GstBin used as the toplevel container for +the filter graph. The #GstPipeline will manage the selection and +distribution of a global #GstClock as well as provide a #GstBus to the +application. + +gst_pipeline_new() is used to create a pipeline. when you are done with +the pipeline, use gst_object_unref() to free its resources including all +added #GstElement objects (if not otherwise referenced). + +Elements are added and removed from the pipeline using the #GstBin +methods like gst_bin_add() and gst_bin_remove() (see #GstBin). + +Before changing the state of the #GstPipeline (see #GstElement) a #GstBus +should be retrieved with gst_pipeline_get_bus(). This #GstBus should then +be used to receive #GstMessage from the elements in the pipeline. Listening +to the #GstBus is necessary for retrieving error messages from the +#GstPipeline and otherwise the #GstPipeline might stop without any +indication, why. Furthermore, the #GstPipeline posts messages even if +nobody listens on the #GstBus, which will pile up and use up memory. + +By default, a #GstPipeline will automatically flush the pending #GstBus +messages when going to the NULL state to ensure that no circular +references exist when no messages are read from the #GstBus. This +behaviour can be changed with gst_pipeline_set_auto_flush_bus(). + +When the #GstPipeline performs the PAUSED to PLAYING state change it will +select a clock for the elements. The clock selection algorithm will by +default select a clock provided by an element that is most upstream +(closest to the source). For live pipelines (ones that return +#GST_STATE_CHANGE_NO_PREROLL from the gst_element_set_state() call) this +will select the clock provided by the live source. For normal pipelines +this will select a clock provided by the sinks (most likely the audio +sink). If no element provides a clock, a default #GstSystemClock is used. + +The clock selection can be controlled with the gst_pipeline_use_clock() +method, which will enforce a given clock on the pipeline. With +gst_pipeline_auto_clock() the default clock selection algorithm can be +restored. + +A #GstPipeline maintains a running time for the elements. The running +time is defined as the difference between the current clock time and +the base time. When the pipeline goes to READY or a flushing seek is +performed on it, the running time is reset to 0. When the pipeline is +set from PLAYING to PAUSED, the current clock time is sampled and used to +configure the base time for the elements when the pipeline is set +to PLAYING again. The effect is that the running time (as the difference +between the clock time and the base time) will count how much time was spent +in the PLAYING state. This default behaviour can be changed with the +gst_element_set_start_time() method.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <implements name="ChildProxy"/> + <constructor name="new" c:identifier="gst_pipeline_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Create a new pipeline with the given name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">newly created GstPipeline + +MT safe.</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">name of new pipeline</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="auto_clock" c:identifier="gst_pipeline_auto_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Let @pipeline select a clock automatically. This is the default +behaviour. + +Use this function if you previous forced a fixed clock with +gst_pipeline_use_clock() and want to restore the default +pipeline clock selection algorithm. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_auto_flush_bus" c:identifier="gst_pipeline_get_auto_flush_bus"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Check if @pipeline will automatically flush messages when going to +the NULL state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">whether the pipeline will automatically flush its bus when +going from READY to NULL state or not. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_bus" c:identifier="gst_pipeline_get_bus"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Gets the #GstBus of @pipeline. The bus allows applications to receive +#GstMessage packets.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstBus, unref after usage. + +MT safe.</doc> + <type name="Bus" c:type="GstBus*"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_clock" c:identifier="gst_pipeline_get_clock" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Gets the current clock used by @pipeline. Users of object +oriented languages should use gst_pipeline_get_pipeline_clock() +to avoid confusion with gst_element_get_clock() which has a different behavior. + +Unlike gst_element_get_clock(), this function will always return a +clock, even if the pipeline is not in the PLAYING state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstClock, unref after usage.</doc> + <type name="Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_delay" c:identifier="gst_pipeline_get_delay"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Get the configured delay (see gst_pipeline_set_delay()).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">The configured delay. + +MT safe.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_latency" c:identifier="gst_pipeline_get_latency" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Gets the latency that should be configured on the pipeline. See +gst_pipeline_set_latency().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Latency to configure on the pipeline or GST_CLOCK_TIME_NONE</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pipeline_clock" c:identifier="gst_pipeline_get_pipeline_clock" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Gets the current clock used by @pipeline. + +Unlike gst_element_get_clock(), this function will always return a +clock, even if the pipeline is not in the PLAYING state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstClock, unref after usage.</doc> + <type name="Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_auto_flush_bus" c:identifier="gst_pipeline_set_auto_flush_bus"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Usually, when a pipeline goes from READY to NULL state, it automatically +flushes all pending messages on the bus, which is done for refcounting +purposes, to break circular references. + +This means that applications that update state using (async) bus messages +(e.g. do certain things when a pipeline goes from PAUSED to READY) might +not get to see messages when the pipeline is shut down, because they might +be flushed before they can be dispatched in the main thread. This behaviour +can be disabled using this function. + +It is important that all messages on the bus are handled when the +automatic flushing is disabled else memory leaks will be introduced. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + <parameter name="auto_flush" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">whether or not to automatically flush the bus when +the pipeline goes from READY to NULL state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_clock" c:identifier="gst_pipeline_set_clock" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Set the clock for @pipeline. The clock will be distributed +to all the elements managed by the pipeline.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">%TRUE if the clock could be set on the pipeline. %FALSE if + some element did not accept the clock. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + <parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">the clock to set</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </method> + <method name="set_delay" c:identifier="gst_pipeline_set_delay"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Set the expected delay needed for all elements to perform the +PAUSED to PLAYING state change. @delay will be added to the +base time of the elements so that they wait an additional @delay +amount of time before starting to process buffers and cannot be +#GST_CLOCK_TIME_NONE. + +This option is used for tuning purposes and should normally not be +used. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + <parameter name="delay" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">the delay</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_latency" c:identifier="gst_pipeline_set_latency" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Sets the latency that should be configured on the pipeline. Setting +GST_CLOCK_TIME_NONE will restore the default behaviour of using the minimum +latency from the LATENCY query. Setting this is usually not required and +the pipeline will figure out an appropriate latency automatically. + +Setting a too low latency, especially lower than the minimum latency from +the LATENCY query, will most likely cause the pipeline to fail.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + <parameter name="latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">latency to configure</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="use_clock" c:identifier="gst_pipeline_use_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Force @pipeline to use the given @clock. The pipeline will +always use the given clock even if new clock providers are added +to this pipeline. + +If @clock is %NULL all clocking will be disabled which will make +the pipeline run as fast as possible. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">a #GstPipeline</doc> + <type name="Pipeline" c:type="GstPipeline*"/> + </instance-parameter> + <parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">the clock to use</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </method> + <property name="auto-flush-bus" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Whether or not to automatically flush all messages on the +pipeline's bus when going from READY to NULL state. Please see +gst_pipeline_set_auto_flush_bus() for more information on this option.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="delay" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">The expected delay needed for elements to spin up to the +PLAYING state expressed in nanoseconds. +see gst_pipeline_set_delay() for more information on this option.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="latency" version="1.6" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.c">Latency to configure on the pipeline. See gst_pipeline_set_latency().</doc> + <type name="guint64" c:type="guint64"/> + </property> + <field name="bin"> + <type name="Bin" c:type="GstBin"/> + </field> + <field name="fixed_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.h">The fixed clock of the pipeline, used when + GST_PIPELINE_FLAG_FIXED_CLOCK is set.</doc> + <type name="Clock" c:type="GstClock*"/> + </field> + <field name="stream_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.h">The stream time of the pipeline. A better name for this + property would be the running_time, the total time spent in the + PLAYING state without being flushed. (deprecated, use the start_time + on GstElement).</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="delay"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.h">Extra delay added to base_time to compensate for computing delays + when setting elements to PLAYING.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="PipelinePrivate" c:type="GstPipelinePrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="PipelineClass" c:type="GstPipelineClass" glib:is-gtype-struct-for="Pipeline"> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + <field name="parent_class"> + <type name="BinClass" c:type="GstBinClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="PipelineFlags" glib:type-name="GstPipelineFlags" glib:get-type="gst_pipeline_flags_get_type" c:type="GstPipelineFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.h">Pipeline flags</doc> + <member name="fixed_clock" value="524288" c:identifier="GST_PIPELINE_FLAG_FIXED_CLOCK" glib:nick="fixed-clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.h">this pipeline works with a fixed clock</doc> + </member> + <member name="last" value="8388608" c:identifier="GST_PIPELINE_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpipeline.h">offset to define more flags</doc> + </member> + </bitfield> + <record name="PipelinePrivate" c:type="GstPipelinePrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstpipeline.h"/> + </record> + <class name="Plugin" c:symbol-prefix="plugin" c:type="GstPlugin" parent="Object" glib:type-name="GstPlugin" glib:get-type="gst_plugin_get_type" glib:type-struct="PluginClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">GStreamer is extensible, so #GstElement instances can be loaded at runtime. +A plugin system can provide one or more of the basic GStreamer +#GstPluginFeature subclasses. + +A plugin should export a symbol `gst_plugin_desc` that is a +struct of type #GstPluginDesc. +the plugin loader will check the version of the core library the plugin was +linked against and will create a new #GstPlugin. It will then call the +#GstPluginInitFunc function that was provided in the +`gst_plugin_desc`. + +Once you have a handle to a #GstPlugin (e.g. from the #GstRegistry), you +can add any object that subclasses #GstPluginFeature. + +Usually plugins are always automatically loaded so you don't need to call +gst_plugin_load() explicitly to bring it into memory. There are options to +statically link plugins to an app or even use GStreamer without a plugin +repository in which case gst_plugin_load() can be needed to bring the plugin +into memory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <function name="list_free" c:identifier="gst_plugin_list_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Unrefs each member of @list, then frees the list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">list of #GstPlugin</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Plugin"/> + </type> + </parameter> + </parameters> + </function> + <function name="load_by_name" c:identifier="gst_plugin_load_by_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Load the named plugin. Refs the plugin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">a reference to a loaded plugin, or +%NULL on error.</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">name of plugin to load</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="load_file" c:identifier="gst_plugin_load_file" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Loads the given plugin and refs it. Caller needs to unref after use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">a reference to the existing loaded GstPlugin, a +reference to the newly-loaded GstPlugin, or %NULL if an error occurred.</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </return-value> + <parameters> + <parameter name="filename" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the plugin filename to load</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="register_static" c:identifier="gst_plugin_register_static"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Registers a static plugin, ie. a plugin which is private to an application +or library and contained within the application or library (as opposed to +being shipped as a separate module file). + +You must make sure that GStreamer has been initialised (with gst_init() or +via gst_init_get_option_group()) before calling this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">%TRUE if the plugin was registered correctly, otherwise %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="major_version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the major version number of the GStreamer core that the + plugin was compiled for, you can just use GST_VERSION_MAJOR here</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="minor_version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the minor version number of the GStreamer core that the + plugin was compiled for, you can just use GST_VERSION_MINOR here</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">a unique name of the plugin (ideally prefixed with an application- or + library-specific namespace prefix in order to avoid name conflicts in + case a similar plugin with the same name ever gets added to GStreamer)</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">description of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="init_func" transfer-ownership="none" scope="call"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">pointer to the init function of this plugin.</doc> + <type name="PluginInitFunc" c:type="GstPluginInitFunc"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">version string of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="license" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">effective license of plugin. Must be one of the approved licenses + (see #GstPluginDesc above) or the plugin will not be registered.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">source module plugin belongs to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="package" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">shipped package plugin belongs to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="origin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">URL to provider of plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="register_static_full" c:identifier="gst_plugin_register_static_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Registers a static plugin, ie. a plugin which is private to an application +or library and contained within the application or library (as opposed to +being shipped as a separate module file) with a #GstPluginInitFullFunc +which allows user data to be passed to the callback function (useful +for bindings). + +You must make sure that GStreamer has been initialised (with gst_init() or +via gst_init_get_option_group()) before calling this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">%TRUE if the plugin was registered correctly, otherwise %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="major_version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the major version number of the GStreamer core that the + plugin was compiled for, you can just use GST_VERSION_MAJOR here</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="minor_version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the minor version number of the GStreamer core that the + plugin was compiled for, you can just use GST_VERSION_MINOR here</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">a unique name of the plugin (ideally prefixed with an application- or + library-specific namespace prefix in order to avoid name conflicts in + case a similar plugin with the same name ever gets added to GStreamer)</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">description of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="init_full_func" transfer-ownership="none" scope="call" closure="10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">pointer to the init function with user data + of this plugin.</doc> + <type name="PluginInitFullFunc" c:type="GstPluginInitFullFunc"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">version string of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="license" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">effective license of plugin. Must be one of the approved licenses + (see #GstPluginDesc above) or the plugin will not be registered.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">source module plugin belongs to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="package" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">shipped package plugin belongs to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="origin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">URL to provider of plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">gpointer to user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <method name="add_dependency" c:identifier="gst_plugin_add_dependency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Make GStreamer aware of external dependencies which affect the feature +set of this plugin (ie. the elements or typefinders associated with it). + +GStreamer will re-inspect plugins with external dependencies whenever any +of the external dependencies change. This is useful for plugins which wrap +other plugin systems, e.g. a plugin which wraps a plugin-based visualisation +library and makes visualisations available as GStreamer elements, or a +codec loader which exposes elements and/or caps dependent on what external +codec libraries are currently installed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">a #GstPlugin</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + <parameter name="env_vars" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">%NULL-terminated array of environment variables affecting the + feature set of the plugin (e.g. an environment variable containing + paths where to look for additional modules/plugins of a library), + or %NULL. Environment variable names may be followed by a path component + which will be added to the content of the environment variable, e.g. + "HOME/.mystuff/plugins".</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="paths" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">%NULL-terminated array of directories/paths where dependent files + may be, or %NULL.</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="names" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">%NULL-terminated array of file names (or file name suffixes, + depending on @flags) to be used in combination with the paths from + @paths and/or the paths extracted from the environment variables in + @env_vars, or %NULL.</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE</doc> + <type name="PluginDependencyFlags" c:type="GstPluginDependencyFlags"/> + </parameter> + </parameters> + </method> + <method name="add_dependency_simple" c:identifier="gst_plugin_add_dependency_simple"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Make GStreamer aware of external dependencies which affect the feature +set of this plugin (ie. the elements or typefinders associated with it). + +GStreamer will re-inspect plugins with external dependencies whenever any +of the external dependencies change. This is useful for plugins which wrap +other plugin systems, e.g. a plugin which wraps a plugin-based visualisation +library and makes visualisations available as GStreamer elements, or a +codec loader which exposes elements and/or caps dependent on what external +codec libraries are currently installed. + +Convenience wrapper function for gst_plugin_add_dependency() which +takes simple strings as arguments instead of string arrays, with multiple +arguments separated by predefined delimiters (see above).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the #GstPlugin</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + <parameter name="env_vars" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">one or more environment variables (separated by ':', ';' or ','), + or %NULL. Environment variable names may be followed by a path component + which will be added to the content of the environment variable, e.g. + "HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="paths" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">one ore more directory paths (separated by ':' or ';' or ','), + or %NULL. Example: "/usr/lib/mystuff/plugins"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="names" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">one or more file names or file name suffixes (separated by commas), + or %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE</doc> + <type name="PluginDependencyFlags" c:type="GstPluginDependencyFlags"/> + </parameter> + </parameters> + </method> + <method name="get_cache_data" c:identifier="gst_plugin_get_cache_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Gets the plugin specific data cache. If it is %NULL there is no cached data +stored. This is the case when the registry is getting rebuilt.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">The cached data as a +#GstStructure or %NULL.</doc> + <type name="Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">a plugin</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_description" c:identifier="gst_plugin_get_description"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Get the long descriptive name of the plugin</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the long name of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to get long name of</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_filename" c:identifier="gst_plugin_get_filename"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">get the filename of the plugin</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the filename of the plugin</doc> + <type name="filename" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to get the filename of</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_license" c:identifier="gst_plugin_get_license"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">get the license of the plugin</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the license of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to get the license of</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_name" c:identifier="gst_plugin_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Get the short name of the plugin</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the name of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to get the name of</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_origin" c:identifier="gst_plugin_get_origin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">get the URL where the plugin comes from</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the origin of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to get the origin of</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_package" c:identifier="gst_plugin_get_package"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">get the package the plugin belongs to.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the package of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to get the package of</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_release_date_string" c:identifier="gst_plugin_get_release_date_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Get the release date (and possibly time) in form of a string, if available. + +For normal GStreamer plugin releases this will usually just be a date in +the form of "YYYY-MM-DD", while pre-releases and builds from git may contain +a time component after the date as well, in which case the string will be +formatted like "YYYY-MM-DDTHH:MMZ" (e.g. "2012-04-30T09:30Z"). + +There may be plugins that do not have a valid release date set on them.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the date string of the plugin, or %NULL if not +available.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to get the release date of</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_source" c:identifier="gst_plugin_get_source"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">get the source module the plugin belongs to.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the source of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to get the source of</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_version" c:identifier="gst_plugin_get_version"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">get the version of the plugin</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">the version of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to get the version of</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_loaded" c:identifier="gst_plugin_is_loaded"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">queries if the plugin is loaded into memory</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">%TRUE is loaded, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to query</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="load" c:identifier="gst_plugin_load"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Loads @plugin. Note that the *return value* is the loaded plugin; @plugin is +untouched. The normal use pattern of this function goes like this: + +|[ +GstPlugin *loaded_plugin; +loaded_plugin = gst_plugin_load (plugin); +// presumably, we're no longer interested in the potentially-unloaded plugin +gst_object_unref (plugin); +plugin = loaded_plugin; +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">a reference to a loaded plugin, or +%NULL on error.</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">plugin to load</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_cache_data" c:identifier="gst_plugin_set_cache_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">Adds plugin specific data to cache. Passes the ownership of the structure to +the @plugin. + +The cache is flushed every time the registry is rebuilt.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">a plugin</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </instance-parameter> + <parameter name="cache_data" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.c">a structure containing the data to cache</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + </class> + <bitfield name="PluginAPIFlags" version="1.18" glib:type-name="GstPluginAPIFlags" glib:get-type="gst_plugin_api_flags_get_type" c:type="GstPluginAPIFlags"> + <member name="members" value="1" c:identifier="GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS" glib:nick="members"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Ignore enum members when generating + the plugins cache. This is useful if the members of the enum are generated + dynamically, in order not to expose incorrect documentation to the end user.</doc> + </member> + </bitfield> + <record name="PluginClass" c:type="GstPluginClass" disguised="1" glib:is-gtype-struct-for="Plugin"> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + </record> + <bitfield name="PluginDependencyFlags" glib:type-name="GstPluginDependencyFlags" glib:get-type="gst_plugin_dependency_flags_get_type" c:type="GstPluginDependencyFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">Flags used in connection with gst_plugin_add_dependency().</doc> + <member name="none" value="0" c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">no special flags</doc> + </member> + <member name="recurse" value="1" c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_RECURSE" glib:nick="recurse"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">recurse into subdirectories</doc> + </member> + <member name="paths_are_default_only" value="2" c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY" glib:nick="paths-are-default-only"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">use paths + argument only if none of the environment variables is set</doc> + </member> + <member name="file_name_is_suffix" value="4" c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX" glib:nick="file-name-is-suffix"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">interpret + filename argument as filter suffix and check all matching files in + the directory</doc> + </member> + <member name="file_name_is_prefix" value="8" c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX" glib:nick="file-name-is-prefix"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">interpret + filename argument as filter prefix and check all matching files in + the directory. Since: 1.8.</doc> + </member> + <member name="paths_are_relative_to_exe" value="16" c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE" glib:nick="paths-are-relative-to-exe"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">interpret + non-absolute paths as relative to the main executable directory. Since + 1.14.</doc> + </member> + </bitfield> + <record name="PluginDesc" c:type="GstPluginDesc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">A plugin should export a variable of this type called plugin_desc. The plugin +loader will use the data provided there to initialize the plugin. + +The @licence parameter must be one of: LGPL, GPL, QPL, GPL/QPL, MPL, +BSD, MIT/X11, Proprietary, unknown.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <field name="major_version" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">the major version number of core that plugin was compiled for</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="minor_version" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">the minor version number of core that plugin was compiled for</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">a unique name of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="description" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">description of plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="plugin_init" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">pointer to the init function of this plugin.</doc> + <type name="PluginInitFunc" c:type="GstPluginInitFunc"/> + </field> + <field name="version" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">version of the plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="license" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">effective license of plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="source" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">source module plugin belongs to</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="package" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">shipped package plugin belongs to</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="origin" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">URL to provider of plugin</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="release_datetime" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">date time string in ISO 8601 + format (or rather, a subset thereof), or %NULL. Allowed are the + following formats: "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with + 'T' a separator and 'Z' indicating UTC/Zulu time). This field + should be set via the GST_PACKAGE_RELEASE_DATETIME + preprocessor macro.</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="PluginError" glib:type-name="GstPluginError" glib:get-type="gst_plugin_error_get_type" c:type="GstPluginError" glib:error-domain="gst_plugin_error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The plugin loading errors</doc> + <member name="module" value="0" c:identifier="GST_PLUGIN_ERROR_MODULE" glib:nick="module"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The plugin could not be loaded</doc> + </member> + <member name="dependencies" value="1" c:identifier="GST_PLUGIN_ERROR_DEPENDENCIES" glib:nick="dependencies"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The plugin has unresolved dependencies</doc> + </member> + <member name="name_mismatch" value="2" c:identifier="GST_PLUGIN_ERROR_NAME_MISMATCH" glib:nick="name-mismatch"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The plugin has already be loaded from a different file</doc> + </member> + <function name="quark" c:identifier="gst_plugin_error_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">Get the error quark.</doc> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The error quark used in GError messages</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <class name="PluginFeature" c:symbol-prefix="plugin_feature" c:type="GstPluginFeature" parent="Object" abstract="1" glib:type-name="GstPluginFeature" glib:get-type="gst_plugin_feature_get_type" glib:type-struct="PluginFeatureClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">This is a base class for anything that can be added to a #GstPlugin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <function name="list_copy" c:identifier="gst_plugin_feature_list_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Copies the list of features. Caller should call @gst_plugin_feature_list_free +when done with the list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">a copy of @list, + with each feature's reference count incremented.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PluginFeature"/> + </type> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">list + of #GstPluginFeature</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PluginFeature"/> + </type> + </parameter> + </parameters> + </function> + <function name="list_debug" c:identifier="gst_plugin_feature_list_debug"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Debug the plugin feature names in @list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">a #GList of + plugin features</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PluginFeature"/> + </type> + </parameter> + </parameters> + </function> + <function name="list_free" c:identifier="gst_plugin_feature_list_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Unrefs each member of @list, then frees the list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">list + of #GstPluginFeature</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PluginFeature"/> + </type> + </parameter> + </parameters> + </function> + <function name="rank_compare_func" c:identifier="gst_plugin_feature_rank_compare_func"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Compares the two given #GstPluginFeature instances. This function can be +used as a #GCompareFunc when sorting by rank and then by name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">negative value if the rank of p1 > the rank of p2 or the ranks are +equal but the name of p1 comes before the name of p2; zero if the rank +and names are equal; positive value if the rank of p1 < the rank of p2 or the +ranks are equal but the name of p2 comes before the name of p1</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="p1" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">a #GstPluginFeature</doc> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + <parameter name="p2" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">a #GstPluginFeature</doc> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + </parameters> + </function> + <method name="check_version" c:identifier="gst_plugin_feature_check_version"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Checks whether the given plugin feature is at least + the required version</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">%TRUE if the plugin feature has at least + the required version, otherwise %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">a feature</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </instance-parameter> + <parameter name="min_major" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">minimum required major version</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="min_minor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">minimum required minor version</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="min_micro" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">minimum required micro version</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_plugin" c:identifier="gst_plugin_feature_get_plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Get the plugin that provides this feature.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">the plugin that provides this + feature, or %NULL. Unref with gst_object_unref() when no + longer needed.</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </return-value> + <parameters> + <instance-parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">a feature</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_plugin_name" c:identifier="gst_plugin_feature_get_plugin_name" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Get the name of the plugin that provides this feature.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">the name of the plugin that provides this + feature, or %NULL if the feature is not associated with a + plugin.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">a feature</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_rank" c:identifier="gst_plugin_feature_get_rank"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Gets the rank of a plugin feature.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">The rank of the feature</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">a feature</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </instance-parameter> + </parameters> + </method> + <method name="load" c:identifier="gst_plugin_feature_load"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Loads the plugin containing @feature if it's not already loaded. @feature is +unaffected; use the return value instead. + +Normally this function is used like this: +|[<!-- language="C" --> +GstPluginFeature *loaded_feature; + +loaded_feature = gst_plugin_feature_load (feature); +// presumably, we're no longer interested in the potentially-unloaded feature +gst_object_unref (feature); +feature = loaded_feature; +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">a reference to the loaded +feature, or %NULL on error</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </return-value> + <parameters> + <instance-parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">the plugin feature to check</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_rank" c:identifier="gst_plugin_feature_set_rank"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Specifies a rank for a plugin feature, so that autoplugging uses +the most appropriate feature.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">feature to rank</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </instance-parameter> + <parameter name="rank" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">rank value - higher number means more priority rank</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + </class> + <record name="PluginFeatureClass" c:type="GstPluginFeatureClass" disguised="1" glib:is-gtype-struct-for="PluginFeature"> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + </record> + <callback name="PluginFeatureFilter" c:type="GstPluginFeatureFilter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">A function that can be used with e.g. gst_registry_feature_filter() +to get a list of pluginfeature that match certain criteria.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">%TRUE for a positive match, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">the pluginfeature to check</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">the user_data that has been passed on e.g. + gst_registry_feature_filter()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="PluginFilter" c:type="GstPluginFilter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">A function that can be used with e.g. gst_registry_plugin_filter() +to get a list of plugins that match certain criteria.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">%TRUE for a positive match, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">the plugin to check</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">the user_data that has been passed on e.g. gst_registry_plugin_filter()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <bitfield name="PluginFlags" glib:type-name="GstPluginFlags" glib:get-type="gst_plugin_flags_get_type" c:type="GstPluginFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The plugin loading state</doc> + <member name="cached" value="16" c:identifier="GST_PLUGIN_FLAG_CACHED" glib:nick="cached"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">Temporarily loaded plugins</doc> + </member> + <member name="blacklisted" value="32" c:identifier="GST_PLUGIN_FLAG_BLACKLISTED" glib:nick="blacklisted"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The plugin won't be scanned (again)</doc> + </member> + </bitfield> + <callback name="PluginInitFullFunc" c:type="GstPluginInitFullFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">A plugin should provide a pointer to a function of either #GstPluginInitFunc +or this type in the plugin_desc struct. +The function will be called by the loader at startup. One would then +register each #GstPluginFeature. This version allows +user data to be passed to init function (useful for bindings).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">%TRUE if plugin initialised successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The plugin object</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">extra data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="PluginInitFunc" c:type="GstPluginInitFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">A plugin should provide a pointer to a function of this type in the +plugin_desc struct. +This function will be called by the loader at startup. One would then +register each #GstPluginFeature.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstplugin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">%TRUE if plugin initialised successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The plugin object</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + </parameters> + </callback> + <record name="Poll" c:type="GstPoll" disguised="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">A #GstPoll keeps track of file descriptors much like fd_set (used with +select ()) or a struct pollfd array (used with poll ()). Once created with +gst_poll_new(), the set can be used to wait for file descriptors to be +readable and/or writable. It is possible to make this wait be controlled +by specifying %TRUE for the @controllable flag when creating the set (or +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(), 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 +in time. The wait can be controlled by calling gst_poll_restart() and +gst_poll_set_flushing(). + +Once the file descriptor set has been waited for, one can use +gst_poll_fd_has_closed() to see if the file descriptor has been closed, +gst_poll_fd_has_error() to see if it has generated an error, +gst_poll_fd_can_read() to see if it is possible to read from the file +descriptor, and gst_poll_fd_can_write() to see if it is possible to +write to it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <method name="add_fd" c:identifier="gst_poll_add_fd"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Add a file descriptor to the file descriptor set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%TRUE if the file descriptor was successfully added to the set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + </parameters> + </method> + <method name="fd_can_read" c:identifier="gst_poll_fd_can_read"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Check if @fd in @set has data to be read.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%TRUE if the descriptor has data to be read.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="const GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + </parameters> + </method> + <method name="fd_can_write" c:identifier="gst_poll_fd_can_write"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Check if @fd in @set can be used for writing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%TRUE if the descriptor can be used for writing.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="const GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + </parameters> + </method> + <method name="fd_ctl_pri" c:identifier="gst_poll_fd_ctl_pri" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Control whether the descriptor @fd in @set will be monitored for +exceptional conditions (POLLPRI). + +Not implemented on Windows (will just return %FALSE there).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%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" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">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" filename="../subprojects/gstreamer/gst/gstpoll.c">Control whether the descriptor @fd in @set will be monitored for +readability.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%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" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a new status.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="fd_ctl_write" c:identifier="gst_poll_fd_ctl_write"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Control whether the descriptor @fd in @set will be monitored for +writability.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%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" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a new status.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="fd_has_closed" c:identifier="gst_poll_fd_has_closed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Check if @fd in @set has closed the connection.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%TRUE if the connection was closed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="const GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + </parameters> + </method> + <method name="fd_has_error" c:identifier="gst_poll_fd_has_error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Check if @fd in @set has an error.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%TRUE if the descriptor has an error.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="const GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + </parameters> + </method> + <method name="fd_has_pri" c:identifier="gst_poll_fd_has_pri" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Check if @fd in @set has an exceptional condition (POLLPRI). + +Not implemented on Windows (will just return %FALSE there).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%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" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="const GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">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" filename="../subprojects/gstreamer/gst/gstpoll.c">Mark @fd as ignored so that the next call to gst_poll_wait() will yield +the same result for @fd as last time. This function must be called if no +operation (read/write/recv/send/etc.) will be performed on @fd before +the next call to gst_poll_wait(). + +The reason why this is needed is because the underlying implementation +might not allow querying the fd more than once between calls to one of +the re-enabling operations.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_poll_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Free a file descriptor set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_read_gpollfd" c:identifier="gst_poll_get_read_gpollfd"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Get a GPollFD for the reading part of the control socket. This is useful when +integrating with a GSource and GMainLoop.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a #GstPoll</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a #GPollFD</doc> + <type name="GLib.PollFD" c:type="GPollFD*"/> + </parameter> + </parameters> + </method> + <method name="read_control" c:identifier="gst_poll_read_control"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Read a byte from the control socket of the controllable @set. + +This function only works for timer #GstPoll objects created with +gst_poll_new_timer().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%TRUE on success. %FALSE when when there was no byte to read or +reading the byte failed. If there was no byte to read, and only then, errno +will contain EWOULDBLOCK or EAGAIN. For all other values of errno this always signals a +critical error.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a #GstPoll.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_fd" c:identifier="gst_poll_remove_fd"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Remove a file descriptor from the file descriptor set.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%TRUE if the file descriptor was successfully removed from the set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor set.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a file descriptor.</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </parameter> + </parameters> + </method> + <method name="restart" c:identifier="gst_poll_restart"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Restart any gst_poll_wait() that is in progress. This function is typically +used after adding or removing descriptors to @set. + +If @set is not controllable, then this call will have no effect. + +This function only works for non-timer #GstPoll objects created with +gst_poll_new().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a #GstPoll.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_controllable" c:identifier="gst_poll_set_controllable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">When @controllable is %TRUE, this function ensures that future calls to +gst_poll_wait() will be affected by gst_poll_restart() and +gst_poll_set_flushing(). + +This function only works for non-timer #GstPoll objects created with +gst_poll_new().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%TRUE if the controllability of @set could be updated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a #GstPoll.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="controllable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">new controllable state.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_flushing" c:identifier="gst_poll_set_flushing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">When @flushing is %TRUE, this function ensures that current and future calls +to gst_poll_wait() will return -1, with errno set to EBUSY. + +Unsetting the flushing state will restore normal operation of @set. + +This function only works for non-timer #GstPoll objects created with +gst_poll_new().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a #GstPoll.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="flushing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">new flushing state.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="wait" c:identifier="gst_poll_wait"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Wait for activity on the file descriptors in @set. This function waits up to +the specified @timeout. A timeout of #GST_CLOCK_TIME_NONE waits forever. + +For #GstPoll objects created with gst_poll_new(), this function can only be +called from a single thread at a time. If called from multiple threads, +-1 will be returned with errno set to EPERM. + +This is not true for timer #GstPoll objects created with +gst_poll_new_timer(), where it is allowed to have multiple threads waiting +simultaneously.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">The number of #GstPollFD in @set that have activity or 0 when no +activity was detected after @timeout. If an error occurs, -1 is returned +and errno is set.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a #GstPoll.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a timeout in nanoseconds.</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="write_control" c:identifier="gst_poll_write_control"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Write a byte to the control socket of the controllable @set. +This function is mostly useful for timer #GstPoll objects created with +gst_poll_new_timer(). + +It will make any current and future gst_poll_wait() function return with +1, meaning the control socket is set. After an equal amount of calls to +gst_poll_read_control() have been performed, calls to gst_poll_wait() will +block again until their timeout expired. + +This function only works for timer #GstPoll objects created with +gst_poll_new_timer().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">%TRUE on success. %FALSE when when the byte could not be written. +errno contains the detailed error code but will never be EAGAIN, EINTR or +EWOULDBLOCK. %FALSE always signals a critical error.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="set" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a #GstPoll.</doc> + <type name="Poll" c:type="GstPoll*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_poll_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Create a new file descriptor set. If @controllable, it +is possible to restart or flush a call to gst_poll_wait() with +gst_poll_restart() and gst_poll_set_flushing() respectively. + +Free-function: gst_poll_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a new #GstPoll, or %NULL in + case of an error. Free with gst_poll_free().</doc> + <type name="Poll" c:type="GstPoll*"/> + </return-value> + <parameters> + <parameter name="controllable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">whether it should be possible to control a wait.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="new_timer" c:identifier="gst_poll_new_timer" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Create a new poll object that can be used for scheduling cancellable +timeouts. + +A timeout is performed with gst_poll_wait(). Multiple timeouts can be +performed from different threads. + +Free-function: gst_poll_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a new #GstPoll, or %NULL in + case of an error. Free with gst_poll_free().</doc> + <type name="Poll" c:type="GstPoll*"/> + </return-value> + </function> + </record> + <record name="PollFD" c:type="GstPollFD"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.h">A file descriptor object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <field name="fd" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.h">a file descriptor</doc> + <type name="gint" c:type="int"/> + </field> + <field name="idx" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <method name="init" c:identifier="gst_poll_fd_init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Initializes @fd. Alternatively you can initialize it with +#GST_POLL_FD_INIT.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a #GstPollFD</doc> + <type name="PollFD" c:type="GstPollFD*"/> + </instance-parameter> + </parameters> + </method> + </record> + <interface name="Preset" c:symbol-prefix="preset" c:type="GstPreset" glib:type-name="GstPreset" glib:get-type="gst_preset_get_type" glib:type-struct="PresetInterface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">This interface offers methods to query and manipulate parameter preset sets. +A preset is a bunch of property settings, together with meta data and a name. +The name of a preset serves as key for subsequent method calls to manipulate +single presets. +All instances of one type will share the list of presets. The list is created +on demand, if presets are not used, the list is not created. + +The interface comes with a default implementation that serves most plugins. +Wrapper plugins will override most methods to implement support for the +native preset format of those wrapped plugins. +One method that is useful to be overridden is gst_preset_get_property_names(). +With that one can control which properties are saved and in which order. +When implementing support for read-only presets, one should set the vmethods +for gst_preset_save_preset() and gst_preset_delete_preset() to %NULL. +Applications can use gst_preset_is_editable() to check for that. + +The default implementation supports presets located in a system directory, +application specific directory and in the users home directory. When getting +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 considered as "app presets".</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <function name="get_app_dir" c:identifier="gst_preset_get_app_dir"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Gets the directory for application specific presets if set by the +application.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">the directory or %NULL, don't free or modify +the string</doc> + <type name="filename" c:type="const gchar*"/> + </return-value> + </function> + <function name="set_app_dir" c:identifier="gst_preset_set_app_dir"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Sets an extra directory as an absolute path that should be considered when +looking for presets. Any presets in the application dir will shadow the +system presets.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if the dir already has been set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="app_dir" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">the application specific preset dir</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <virtual-method name="delete_preset" invoker="delete_preset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Delete the given preset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name to remove</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_meta" invoker="get_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Gets the @value for an existing meta data @tag. Meta data @tag names can be +something like e.g. "comment". Returned values need to be released when done.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name +or no value for the given @tag</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">meta data item name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">value</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_preset_names" invoker="get_preset_names"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Get a copy of preset names as a %NULL terminated string array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c"> + list with names, use g_strfreev() after usage.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_property_names" invoker="get_property_names"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Get a the names of the GObject properties that can be used for presets.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">an + array of property names which should be freed with g_strfreev() after use.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="load_preset" invoker="load_preset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Load the given preset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name to load</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="rename_preset" invoker="rename_preset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Renames a preset. If there is already a preset by the @new_name it will be +overwritten.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="old_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">current preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="new_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">new preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="save_preset" invoker="save_preset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Save the current object settings as a preset under the given name. If there +is already a preset by this @name it will be overwritten.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name to save</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_meta" invoker="set_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Sets a new @value for an existing meta data item or adds a new item. Meta +data @tag names can be something like e.g. "comment". Supplying %NULL for the +@value will unset an existing value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">meta data item name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">new value</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <method name="delete_preset" c:identifier="gst_preset_delete_preset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Delete the given preset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name to remove</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_meta" c:identifier="gst_preset_get_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Gets the @value for an existing meta data @tag. Meta data @tag names can be +something like e.g. "comment". Returned values need to be released when done.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name +or no value for the given @tag</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">meta data item name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">value</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="get_preset_names" c:identifier="gst_preset_get_preset_names"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Get a copy of preset names as a %NULL terminated string array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c"> + list with names, use g_strfreev() after usage.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_property_names" c:identifier="gst_preset_get_property_names"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Get a the names of the GObject properties that can be used for presets.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">an + array of property names which should be freed with g_strfreev() after use.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_editable" c:identifier="gst_preset_is_editable" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Check if one can add new presets, change existing ones and remove presets.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE if presets are editable or %FALSE if they are static</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + </parameters> + </method> + <method name="load_preset" c:identifier="gst_preset_load_preset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Load the given preset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name to load</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="rename_preset" c:identifier="gst_preset_rename_preset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Renames a preset. If there is already a preset by the @new_name it will be +overwritten.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="old_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">current preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="new_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">new preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="save_preset" c:identifier="gst_preset_save_preset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Save the current object settings as a preset under the given name. If there +is already a preset by this @name it will be overwritten.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name to save</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_meta" c:identifier="gst_preset_set_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Sets a new @value for an existing meta data item or adds a new item. Meta +data @tag names can be something like e.g. "comment". Supplying %NULL for the +@value will unset an existing value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">meta data item name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">new value</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </interface> + <record name="PresetInterface" c:type="GstPresetInterface" glib:is-gtype-struct-for="Preset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.h">#GstPreset interface.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.h">parent interface type.</doc> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="get_preset_names"> + <callback name="get_preset_names"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c"> + list with names, use g_strfreev() after usage.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_property_names"> + <callback name="get_property_names"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">an + array of property names which should be freed with g_strfreev() after use.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="load_preset"> + <callback name="load_preset"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name to load</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="save_preset"> + <callback name="save_preset"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name to save</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="rename_preset"> + <callback name="rename_preset"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </parameter> + <parameter name="old_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">current preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="new_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">new preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="delete_preset"> + <callback name="delete_preset"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name to remove</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_meta"> + <callback name="set_meta"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">meta data item name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">new value</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_meta"> + <callback name="get_meta"> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if e.g. there is no preset with that @name +or no value for the given @tag</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="preset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">a #GObject that implements #GstPreset</doc> + <type name="Preset" c:type="GstPreset*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">preset name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">meta data item name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">value</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="ProgressType" glib:type-name="GstProgressType" glib:get-type="gst_progress_type_get_type" c:type="GstProgressType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">The type of a %GST_MESSAGE_PROGRESS. The progress messages inform the +application of the status of asynchronous tasks.</doc> + <member name="start" value="0" c:identifier="GST_PROGRESS_TYPE_START" glib:nick="start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A new task started.</doc> + </member> + <member name="continue" value="1" c:identifier="GST_PROGRESS_TYPE_CONTINUE" glib:nick="continue"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A task completed and a new one continues.</doc> + </member> + <member name="complete" value="2" c:identifier="GST_PROGRESS_TYPE_COMPLETE" glib:nick="complete"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A task completed.</doc> + </member> + <member name="canceled" value="3" c:identifier="GST_PROGRESS_TYPE_CANCELED" glib:nick="canceled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A task was canceled.</doc> + </member> + <member name="error" value="4" c:identifier="GST_PROGRESS_TYPE_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A task caused an error. An error message is also + posted on the bus.</doc> + </member> + </enumeration> + <record name="Promise" c:type="GstPromise" version="1.14" glib:type-name="GstPromise" glib:get-type="gst_promise_get_type" c:symbol-prefix="promise"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">The #GstPromise object implements the container for values that may +be available later. i.e. a Future or a Promise in +<https://en.wikipedia.org/wiki/Futures_and_promises>. +As with all Future/Promise-like functionality, there is the concept of the +producer of the value and the consumer of the value. + +A #GstPromise is created with gst_promise_new() by the consumer and passed +to the producer to avoid thread safety issues with the change callback. +A #GstPromise can be replied to with a value (or an error) by the producer +with gst_promise_reply(). The exact value returned is defined by the API +contract of the producer and %NULL may be a valid reply. +gst_promise_interrupt() is for the consumer to +indicate to the producer that the value is not needed anymore and producing +that value can stop. The @GST_PROMISE_RESULT_EXPIRED state set by a call +to gst_promise_expire() indicates to the consumer that a value will never +be produced and is intended to be called by a third party that implements +some notion of message handling such as #GstBus. +A callback can also be installed at #GstPromise creation for +result changes with gst_promise_new_with_change_func(). +The change callback can be used to chain #GstPromises's together as in the +following example. +|[<!-- language="C" --> +const GstStructure *reply; +GstPromise *p; +if (gst_promise_wait (promise) != GST_PROMISE_RESULT_REPLIED) + return; // interrupted or expired value +reply = gst_promise_get_reply (promise); +if (error in reply) + return; // propagate error +p = gst_promise_new_with_change_func (another_promise_change_func, user_data, notify); +pass p to promise-using API +]| + +Each #GstPromise starts out with a #GstPromiseResult of +%GST_PROMISE_RESULT_PENDING and only ever transitions once +into one of the other #GstPromiseResult's. + +In order to support multi-threaded code, gst_promise_reply(), +gst_promise_interrupt() and gst_promise_expire() may all be from +different threads with some restrictions and the final result of the promise +is whichever call is made first. There are two restrictions on ordering: + +1. That gst_promise_reply() and gst_promise_interrupt() cannot be called +after gst_promise_expire() +2. That gst_promise_reply() and gst_promise_interrupt() +cannot be called twice. + +The change function set with gst_promise_new_with_change_func() is +called directly from either the gst_promise_reply(), +gst_promise_interrupt() or gst_promise_expire() and can be called +from an arbitrary thread. #GstPromise using APIs can restrict this to +a single thread or a subset of threads but that is entirely up to the API +that uses #GstPromise.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <field name="parent" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.h">parent #GstMiniObject</doc> + <type name="MiniObject" c:type="GstMiniObject"/> + </field> + <constructor name="new" c:identifier="gst_promise_new" version="1.14"> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a new #GstPromise</doc> + <type name="Promise" c:type="GstPromise*"/> + </return-value> + </constructor> + <constructor name="new_with_change_func" c:identifier="gst_promise_new_with_change_func" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">@func will be called exactly once when transitioning out of +%GST_PROMISE_RESULT_PENDING into any of the other #GstPromiseResult +states.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a new #GstPromise</doc> + <type name="Promise" c:type="GstPromise*"/> + </return-value> + <parameters> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a #GstPromiseChangeFunc to call</doc> + <type name="PromiseChangeFunc" c:type="GstPromiseChangeFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">argument to call @func with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">notification function that @user_data is no longer needed</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + <method name="expire" c:identifier="gst_promise_expire" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">Expire a @promise. This will wake up any waiters with +%GST_PROMISE_RESULT_EXPIRED. Called by a message loop when the parent +message is handled and/or destroyed (possibly unanswered).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="promise" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a #GstPromise</doc> + <type name="Promise" c:type="GstPromise*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_reply" c:identifier="gst_promise_get_reply" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">Retrieve the reply set on @promise. @promise must be in +%GST_PROMISE_RESULT_REPLIED and the returned structure is owned by @promise</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">The reply set on @promise</doc> + <type name="Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="promise" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a #GstPromise</doc> + <type name="Promise" c:type="GstPromise*"/> + </instance-parameter> + </parameters> + </method> + <method name="interrupt" c:identifier="gst_promise_interrupt" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">Interrupt waiting for a @promise. This will wake up any waiters with +%GST_PROMISE_RESULT_INTERRUPTED. Called when the consumer does not want +the value produced anymore.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="promise" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a #GstPromise</doc> + <type name="Promise" c:type="GstPromise*"/> + </instance-parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_promise_ref" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">Increases the refcount of the given @promise by one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">@promise</doc> + <type name="Promise" c:type="GstPromise*"/> + </return-value> + <parameters> + <instance-parameter name="promise" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a #GstPromise.</doc> + <type name="Promise" c:type="GstPromise*"/> + </instance-parameter> + </parameters> + </method> + <method name="reply" c:identifier="gst_promise_reply" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">Set a reply on @promise. This will wake up any waiters with +%GST_PROMISE_RESULT_REPLIED. Called by the producer of the value to +indicate success (or failure). + +If @promise has already been interrupted by the consumer, then this reply +is not visible to the consumer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="promise" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a #GstPromise</doc> + <type name="Promise" c:type="GstPromise*"/> + </instance-parameter> + <parameter name="s" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a #GstStructure with the the reply contents</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_promise_unref" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">Decreases the refcount of the promise. If the refcount reaches 0, the +promise will be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="promise" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a #GstPromise.</doc> + <type name="Promise" c:type="GstPromise*"/> + </instance-parameter> + </parameters> + </method> + <method name="wait" c:identifier="gst_promise_wait" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">Wait for @promise to move out of the %GST_PROMISE_RESULT_PENDING state. +If @promise is not in %GST_PROMISE_RESULT_PENDING then it will return +immediately with the current result.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">the result of the promise</doc> + <type name="PromiseResult" c:type="GstPromiseResult"/> + </return-value> + <parameters> + <instance-parameter name="promise" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.c">a #GstPromise</doc> + <type name="Promise" c:type="GstPromise*"/> + </instance-parameter> + </parameters> + </method> + </record> + <callback name="PromiseChangeFunc" c:type="GstPromiseChangeFunc" version="1.14"> + <source-position filename="../subprojects/gstreamer/gst/gstpromise.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="promise" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.h">a #GstPromise</doc> + <type name="Promise" c:type="GstPromise*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <enumeration name="PromiseResult" version="1.14" glib:type-name="GstPromiseResult" glib:get-type="gst_promise_result_get_type" c:type="GstPromiseResult"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.h">The result of a #GstPromise</doc> + <member name="pending" value="0" c:identifier="GST_PROMISE_RESULT_PENDING" glib:nick="pending"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.h">Initial state. Waiting for transition to any + other state.</doc> + </member> + <member name="interrupted" value="1" c:identifier="GST_PROMISE_RESULT_INTERRUPTED" glib:nick="interrupted"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.h">Interrupted by the consumer as it doesn't + want the value anymore.</doc> + </member> + <member name="replied" value="2" c:identifier="GST_PROMISE_RESULT_REPLIED" glib:nick="replied"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.h">A producer marked a reply</doc> + </member> + <member name="expired" value="3" c:identifier="GST_PROMISE_RESULT_EXPIRED" glib:nick="expired"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpromise.h">The promise expired (the carrying object + lost all refs) and the promise will never be fulfilled.</doc> + </member> + </enumeration> + <record name="ProtectionMeta" c:type="GstProtectionMeta" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.h">Metadata type that holds information about a sample from a protection-protected +track, including the information needed to decrypt it (if it is encrypted).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <field name="meta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.h">the parent #GstMeta.</doc> + <type name="Meta" c:type="GstMeta"/> + </field> + <field name="info" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.h">the cryptographic information needed to decrypt the sample.</doc> + <type name="Structure" c:type="GstStructure*"/> + </field> + <function name="get_info" c:identifier="gst_protection_meta_get_info"> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <return-value transfer-ownership="none"> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <class name="ProxyPad" c:symbol-prefix="proxy_pad" c:type="GstProxyPad" parent="Pad" glib:type-name="GstProxyPad" glib:get-type="gst_proxy_pad_get_type" glib:type-struct="ProxyPadClass"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <function name="chain_default" c:identifier="gst_proxy_pad_chain_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Invoke the default chain function of the proxy pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a #GstFlowReturn from the pad.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the parent of @pad or %NULL</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstBuffer to send, return GST_FLOW_ERROR + if not.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="chain_list_default" c:identifier="gst_proxy_pad_chain_list_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Invoke the default chain list function of the proxy pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a #GstFlowReturn from the pad.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the parent of @pad or %NULL</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstBufferList to send, return GST_FLOW_ERROR + if not.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function name="getrange_default" c:identifier="gst_proxy_pad_getrange_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Invoke the default getrange function of the proxy pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a #GstFlowReturn from the pad.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a src #GstPad, returns #GST_FLOW_ERROR if not.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the parent of @pad</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">The start offset of the buffer</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">The length of the buffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a pointer to hold the #GstBuffer, + returns #GST_FLOW_ERROR if %NULL.</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </function> + <function name="iterate_internal_links_default" c:identifier="gst_proxy_pad_iterate_internal_links_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Invoke the default iterate internal links function of the proxy pad.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">a #GstIterator of #GstPad, or %NULL if @pad +has no parent. Unref each returned pad with gst_object_unref().</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstPad to get the internal links of.</doc> + <type name="Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the parent of @pad or %NULL</doc> + <type name="Object" c:type="GstObject*"/> + </parameter> + </parameters> + </function> + <method name="get_internal" c:identifier="gst_proxy_pad_get_internal"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">Get the internal pad of @pad. Unref target pad after usage. + +The internal pad of a #GstGhostPad is the internally used +pad of opposite direction, which is used to link to the target.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the target #GstProxyPad, can +be %NULL. Unref target pad after usage.</doc> + <type name="ProxyPad" c:type="GstProxyPad*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstghostpad.c">the #GstProxyPad</doc> + <type name="ProxyPad" c:type="GstProxyPad*"/> + </instance-parameter> + </parameters> + </method> + <field name="pad"> + <type name="Pad" c:type="GstPad"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ProxyPadPrivate" c:type="GstProxyPadPrivate*"/> + </field> + </class> + <record name="ProxyPadClass" c:type="GstProxyPadClass" glib:is-gtype-struct-for="ProxyPad"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + <field name="parent_class"> + <type name="PadClass" c:type="GstPadClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="1"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ProxyPadPrivate" c:type="GstProxyPadPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstghostpad.h"/> + </record> + <enumeration name="QOSType" glib:type-name="GstQOSType" glib:get-type="gst_qos_type_get_type" c:type="GstQOSType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">The different types of QoS events that can be given to the +gst_event_new_qos() method.</doc> + <member name="overflow" value="0" c:identifier="GST_QOS_TYPE_OVERFLOW" glib:nick="overflow"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">The QoS event type that is produced when upstream + elements are producing data too quickly and the element can't keep up + processing the data. Upstream should reduce their production rate. This + type is also used when buffers arrive early or in time.</doc> + </member> + <member name="underflow" value="1" c:identifier="GST_QOS_TYPE_UNDERFLOW" glib:nick="underflow"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">The QoS event type that is produced when upstream + elements are producing data too slowly and need to speed up their + production rate.</doc> + </member> + <member name="throttle" value="2" c:identifier="GST_QOS_TYPE_THROTTLE" glib:nick="throttle"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">The QoS event type that is produced when the + application enabled throttling to limit the data rate.</doc> + </member> + </enumeration> + <function-macro name="QUERY" c:identifier="GST_QUERY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="QUERY_CAST" c:identifier="GST_QUERY_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="QUERY_IS_DOWNSTREAM" c:identifier="GST_QUERY_IS_DOWNSTREAM" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Check if an query can travel downstream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="ev"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the query to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="QUERY_IS_SERIALIZED" c:identifier="GST_QUERY_IS_SERIALIZED" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Check if an query is serialized with the data stream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="ev"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the query to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="QUERY_IS_UPSTREAM" c:identifier="GST_QUERY_IS_UPSTREAM" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Check if an query can travel upstream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="ev"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the query to query</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="QUERY_MAKE_TYPE" c:identifier="GST_QUERY_MAKE_TYPE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">when making custom query types, use this macro with the num and +the given flags</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the query number to create</doc> + </parameter> + <parameter name="flags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the query flags</doc> + </parameter> + </parameters> + </function-macro> + <constant name="QUERY_NUM_SHIFT" value="8" c:type="GST_QUERY_NUM_SHIFT"> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="QUERY_TYPE" c:identifier="GST_QUERY_TYPE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Get the #GstQueryType of the query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="query"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the query to query</doc> + </parameter> + </parameters> + </function-macro> + <constant name="QUERY_TYPE_BOTH" value="3" c:type="GST_QUERY_TYPE_BOTH"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">The same thing as #GST_QUERY_TYPE_UPSTREAM | #GST_QUERY_TYPE_DOWNSTREAM.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <type name="QueryTypeFlags" c:type="GstQueryTypeFlags"/> + </constant> + <function-macro name="QUERY_TYPE_NAME" c:identifier="GST_QUERY_TYPE_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Get a constant string representation of the #GstQueryType of the query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="query"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the query to query</doc> + </parameter> + </parameters> + </function-macro> + <record name="Query" c:type="GstQuery" glib:type-name="GstQuery" glib:get-type="gst_query_get_type" c:symbol-prefix="query"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Queries can be performed on pads (gst_pad_query()) and elements +(gst_element_query()). Please note that some queries might need a running +pipeline to work. + +Queries can be created using the gst_query_new_*() functions. +Query values can be set using gst_query_set_*(), and parsed using +gst_query_parse_*() helpers. + +The following example shows how to query the duration of a pipeline: +|[<!-- language="C" --> + GstQuery *query; + gboolean res; + query = gst_query_new_duration (GST_FORMAT_TIME); + res = gst_element_query (pipeline, query); + if (res) { + gint64 duration; + gst_query_parse_duration (query, NULL, &duration); + g_print ("duration = %"GST_TIME_FORMAT, GST_TIME_ARGS (duration)); + } else { + g_print ("duration query failed..."); + } + gst_query_unref (query); +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <field name="mini_object" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">The parent #GstMiniObject type</doc> + <type name="MiniObject" c:type="GstMiniObject"/> + </field> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the #GstQueryType</doc> + <type name="QueryType" c:type="GstQueryType"/> + </field> + <constructor name="new_accept_caps" c:identifier="gst_query_new_accept_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying if @caps are accepted. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a fixed #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_allocation" c:identifier="gst_query_new_allocation"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying the allocation properties. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the negotiated caps</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="need_pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">return a pool</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_bitrate" c:identifier="gst_query_new_bitrate" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying the bitrate. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">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" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying the buffering status of +a stream. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the default #GstFormat for the new query</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_caps" c:identifier="gst_query_new_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying the caps. + +The CAPS query should return the allowable caps for a pad in the context +of the element's state, its link to other elements, and the devices or files +it has opened. These caps must be a subset of the pad template caps. In the +NULL state with no links, the CAPS query should ideally return the same caps +as the pad template. In rare circumstances, an object property can affect +the caps returned by the CAPS query, but this is discouraged. + +For most filters, the caps returned by CAPS query is directly affected by the +allowed caps on other pads. For demuxers and decoders, the caps returned by +the srcpad's getcaps function is directly related to the stream data. Again, +the CAPS query should return the most specific caps it reasonably can, since this +helps with autoplugging. + +The @filter is used to restrict the result caps, only the caps matching +@filter should be returned from the CAPS query. Specifying a filter might +greatly reduce the amount of processing an element needs to do. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a filter</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_context" c:identifier="gst_query_new_context" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying the pipeline-local context. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="context_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Context type to query</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_convert" c:identifier="gst_query_new_convert"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new convert query object. Use gst_query_unref() +when done with it. A convert query is used to ask for a conversion between +one format and another. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="src_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the source #GstFormat for the new query</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the value to convert</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the target #GstFormat</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_custom" c:identifier="gst_query_new_custom"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new custom query object. Use gst_query_unref() +when done with it. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the query type</doc> + <type name="QueryType" c:type="GstQueryType"/> + </parameter> + <parameter name="structure" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a structure for the query</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_drain" c:identifier="gst_query_new_drain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying the drain state. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + </constructor> + <constructor name="new_duration" c:identifier="gst_query_new_duration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new stream duration query object to query in the given format. +Use gst_query_unref() when done with it. A duration query will give the +total length of the stream. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the #GstFormat for this duration query</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_formats" c:identifier="gst_query_new_formats"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying formats of +the stream. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + </constructor> + <constructor name="new_latency" c:identifier="gst_query_new_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new latency query object. +Use gst_query_unref() when done with it. A latency query is usually performed +by sinks to compensate for additional latency introduced by elements in the +pipeline. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + </constructor> + <constructor name="new_position" c:identifier="gst_query_new_position"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query stream position query object. Use gst_query_unref() +when done with it. A position query is used to query the current position +of playback in the streams, in some format. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the default #GstFormat for the new query</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_scheduling" c:identifier="gst_query_new_scheduling"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying the scheduling properties. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + </constructor> + <constructor name="new_seeking" c:identifier="gst_query_new_seeking"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying seeking properties of +the stream. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the default #GstFormat for the new query</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_segment" c:identifier="gst_query_new_segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new segment query object. Use gst_query_unref() +when done with it. A segment query is used to discover information about the +currently configured segment for playback. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the #GstFormat for the new query</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_selectable" c:identifier="gst_query_new_selectable" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query object for querying the stream selection capability. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + </constructor> + <constructor name="new_uri" c:identifier="gst_query_new_uri"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Constructs a new query URI query object. Use gst_query_unref() +when done with it. An URI query is used to query the current URI +that is used by the source or sink. + +Free-function: gst_query_unref()</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + </constructor> + <method name="add_allocation_meta" c:identifier="gst_query_add_allocation_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Add @api with @params as one of the supported metadata API to @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the metadata API</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">API specific parameters</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="add_allocation_param" c:identifier="gst_query_add_allocation_param"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Add @allocator and its @params as a supported memory allocator.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="allocator" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the memory allocator</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstAllocationParams</doc> + <type name="AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="add_allocation_pool" c:identifier="gst_query_add_allocation_pool"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the pool parameters in @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">A valid #GstQuery of type GST_QUERY_ALLOCATION.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the buffer size</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="min_buffers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the min buffers</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="max_buffers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the max buffers</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_buffering_range" c:identifier="gst_query_add_buffering_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the buffering-ranges array field in @query. The current last +start position of the array should be inferior to @start.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #gboolean indicating if the range was added or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_BUFFERING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">start position of the range</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">stop position of the range</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="add_scheduling_mode" c:identifier="gst_query_add_scheduling_mode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Add @mode as one of the supported scheduling modes to @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_SCHEDULING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstPadMode</doc> + <type name="PadMode" c:type="GstPadMode"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_query_copy" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Copies the given query using the copy function of the parent #GstStructure. + +Free-function: gst_query_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a new copy of @q.</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <instance-parameter name="q" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery to copy.</doc> + <type name="Query" c:type="const GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="find_allocation_meta" c:identifier="gst_query_find_allocation_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Check if @query has metadata @api set. When this function returns %TRUE, +@index will contain the index where the requested API and the parameters +can be found.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">%TRUE when @api is in the list of metadata.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the metadata API</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="index" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the index</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_n_allocation_metas" c:identifier="gst_query_get_n_allocation_metas"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Retrieve the number of values currently stored in the +meta API array of the query's structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the metadata API array size as a #guint.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_n_allocation_params" c:identifier="gst_query_get_n_allocation_params"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Retrieve the number of values currently stored in the +allocator params array of the query's structure. + +If no memory allocator is specified, the downstream element can handle +the default memory allocator. The first memory allocator in the query +should be generic and allow mapping to system memory, all following +allocators should be ordered by preference with the preferred one first.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the allocator array size as a #guint.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_n_allocation_pools" c:identifier="gst_query_get_n_allocation_pools"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Retrieve the number of values currently stored in the +pool array of the query's structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the pool array size as a #guint.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_n_buffering_ranges" c:identifier="gst_query_get_n_buffering_ranges"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Retrieve the number of values currently stored in the +buffered-ranges array of the query's structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the range array size as a #guint.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_BUFFERING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_n_scheduling_modes" c:identifier="gst_query_get_n_scheduling_modes"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Retrieve the number of values currently stored in the +scheduling mode array of the query's structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the scheduling mode array size as a #guint.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_SCHEDULING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_structure" c:identifier="gst_query_get_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the structure of a query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the #GstStructure of the query. The + structure is still owned by the query and will therefore be freed when the + query is unreffed.</doc> + <type name="Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_scheduling_mode" c:identifier="gst_query_has_scheduling_mode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Check if @query has scheduling mode set. + +> When checking if upstream supports pull mode, it is usually not +> enough to just check for GST_PAD_MODE_PULL with this function, you +> also want to check whether the scheduling flags returned by +> gst_query_parse_scheduling() have the seeking flag set (meaning +> random access is supported, not only sequential pulls).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">%TRUE when @mode is in the list of scheduling modes.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_SCHEDULING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the scheduling mode</doc> + <type name="PadMode" c:type="GstPadMode"/> + </parameter> + </parameters> + </method> + <method name="has_scheduling_mode_with_flags" c:identifier="gst_query_has_scheduling_mode_with_flags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Check if @query has scheduling mode set and @flags is set in +query scheduling flags.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">%TRUE when @mode is in the list of scheduling modes + and @flags are compatible with query flags.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_SCHEDULING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the scheduling mode</doc> + <type name="PadMode" c:type="GstPadMode"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">#GstSchedulingFlags</doc> + <type name="SchedulingFlags" c:type="GstSchedulingFlags"/> + </parameter> + </parameters> + </method> + <method name="parse_accept_caps" c:identifier="gst_query_parse_accept_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the caps from @query. The caps remains valid as long as @query remains +valid.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">The query to parse</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="caps" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">A pointer to the caps</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + </parameters> + </method> + <method name="parse_accept_caps_result" c:identifier="gst_query_parse_accept_caps_result"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse the result from @query and store in @result.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ACCEPT_CAPS type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="result" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">location for the result</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_allocation" c:identifier="gst_query_parse_allocation"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an allocation query, writing the requested caps in @caps and +whether a pool is needed in @need_pool, if the respective parameters +are non-%NULL. + +Pool details can be retrieved using gst_query_get_n_allocation_pools() and +gst_query_parse_nth_allocation_pool().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="caps" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">The #GstCaps</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + <parameter name="need_pool" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Whether a #GstBufferPool is needed</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_bitrate" c:identifier="gst_query_parse_bitrate" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the results of a bitrate query. See also gst_query_set_bitrate().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">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" filename="../subprojects/gstreamer/gst/gstquery.c">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" filename="../subprojects/gstreamer/gst/gstquery.c">Get the percentage of buffered data. This is a value between 0 and 100. +The @busy indicator is %TRUE when the buffering is in progress.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="busy" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">if buffering is busy, or %NULL</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="percent" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a buffering percent, or %NULL</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="parse_buffering_range" c:identifier="gst_query_parse_buffering_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an available query, writing the format into @format, and +other results into the passed parameters, if the respective parameters +are non-%NULL</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_BUFFERING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the format to set for the @segment_start + and @segment_end values, or %NULL</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="start" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the start to set, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="stop" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the stop to set, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="estimated_total" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">estimated total amount of download + time remaining in milliseconds, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_buffering_stats" c:identifier="gst_query_parse_buffering_stats"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Extracts the buffering stats values from @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="mode" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a buffering mode, or %NULL</doc> + <type name="BufferingMode" c:type="GstBufferingMode*"/> + </parameter> + <parameter name="avg_in" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the average input rate, or %NULL</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="avg_out" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the average output rat, or %NULL</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="buffering_left" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">amount of buffering time left in + milliseconds, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_caps" c:identifier="gst_query_parse_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the filter from the caps @query. The caps remains valid as long as +@query remains valid.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">The query to parse</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="filter" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">A pointer to the caps filter</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + </parameters> + </method> + <method name="parse_caps_result" c:identifier="gst_query_parse_caps_result"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the caps result from @query. The caps remains valid as long as +@query remains valid.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">The query to parse</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="caps" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">A pointer to the caps</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + </parameters> + </method> + <method name="parse_context" c:identifier="gst_query_parse_context" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the context from the context @query. The context remains valid as long as +@query remains valid.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">The query to parse</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="context" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">A pointer to store the #GstContext</doc> + <type name="Context" c:type="GstContext**"/> + </parameter> + </parameters> + </method> + <method name="parse_context_type" c:identifier="gst_query_parse_context_type" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse a context type from an existing GST_QUERY_CONTEXT query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #gboolean indicating if the parsing succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_CONTEXT type query</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="context_type" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the context type, or %NULL</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_convert" c:identifier="gst_query_parse_convert"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse a convert query answer. Any of @src_format, @src_value, @dest_format, +and @dest_value may be %NULL, in which case that value is omitted.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="src_format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the #GstFormat of the + source value, or %NULL</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="src_value" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the source value, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="dest_format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the #GstFormat of the + destination value, or %NULL</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="dest_value" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the destination value, + or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_duration" c:identifier="gst_query_parse_duration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse a duration query answer. Write the format of the duration into @format, +and the value into @duration, if the respective variables are non-%NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the #GstFormat of the duration + value, or %NULL.</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="duration" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the total duration, or %NULL.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_latency" c:identifier="gst_query_parse_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse a latency query answer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="live" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">storage for live or %NULL</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="min_latency" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the min latency or %NULL</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="max_latency" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the max latency or %NULL</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="parse_n_formats" c:identifier="gst_query_parse_n_formats"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse the number of formats in the formats @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="n_formats" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the number of formats in this query.</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="parse_nth_allocation_meta" c:identifier="gst_query_parse_nth_allocation_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an available query and get the metadata API +at @index of the metadata API array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GType of the metadata API at @index.</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">position in the metadata API array to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="params" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">API specific parameters</doc> + <type name="Structure" c:type="const GstStructure**"/> + </parameter> + </parameters> + </method> + <method name="parse_nth_allocation_param" c:identifier="gst_query_parse_nth_allocation_param"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an available query and get the allocator and its params +at @index of the allocator array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">position in the allocator array to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="allocator" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">variable to hold the result</doc> + <type name="Allocator" c:type="GstAllocator**"/> + </parameter> + <parameter name="params" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">parameters for the allocator</doc> + <type name="AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="parse_nth_allocation_pool" c:identifier="gst_query_parse_nth_allocation_pool"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the pool parameters in @query. + +Unref @pool with gst_object_unref() when it's not needed any more.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">A valid #GstQuery of type GST_QUERY_ALLOCATION.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">index to parse</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pool" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool**"/> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the buffer size</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="min_buffers" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the min buffers</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="max_buffers" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the max buffers</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="parse_nth_buffering_range" c:identifier="gst_query_parse_nth_buffering_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an available query and get the start and stop values stored +at the @index of the buffered ranges array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #gboolean indicating if the parsing succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_BUFFERING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">position in the buffered-ranges array to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="start" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the start position to set, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="stop" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the stop position to set, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_nth_format" c:identifier="gst_query_parse_nth_format"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse the format query and retrieve the @nth format from it into +@format. If the list contains less elements than @nth, @format will be +set to GST_FORMAT_UNDEFINED.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="nth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the nth format to retrieve.</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a pointer to store the nth format</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + </parameters> + </method> + <method name="parse_nth_scheduling_mode" c:identifier="gst_query_parse_nth_scheduling_mode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an available query and get the scheduling mode +at @index of the scheduling modes array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstPadMode of the scheduling mode at @index.</doc> + <type name="PadMode" c:type="GstPadMode"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_SCHEDULING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">position in the scheduling modes array to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="parse_position" c:identifier="gst_query_parse_position"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse a position query, writing the format into @format, and the position +into @cur, if the respective parameters are non-%NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the #GstFormat of the + position values (may be %NULL)</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="cur" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the current position (may be %NULL)</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_scheduling" c:identifier="gst_query_parse_scheduling"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the scheduling properties.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">A valid #GstQuery of type GST_QUERY_SCHEDULING.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">#GstSchedulingFlags</doc> + <type name="SchedulingFlags" c:type="GstSchedulingFlags*"/> + </parameter> + <parameter name="minsize" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the suggested minimum size of pull requests</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="maxsize" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the suggested maximum size of pull requests:</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="align" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the suggested alignment of pull requests</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="parse_seeking" c:identifier="gst_query_parse_seeking"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse a seeking query, writing the format into @format, and +other results into the passed parameters, if the respective parameters +are non-%NULL</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_SEEKING type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the format to set for the @segment_start + and @segment_end values, or %NULL</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="seekable" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the seekable flag to set, or %NULL</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="segment_start" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the segment_start to set, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="segment_end" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the segment_end to set, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_segment" c:identifier="gst_query_parse_segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse a segment query answer. Any of @rate, @format, @start_value, and +@stop_value may be %NULL, which will cause this value to be omitted. + +See gst_query_set_segment() for an explanation of the function arguments.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="rate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the rate of the segment, or %NULL</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="format" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the #GstFormat of the values, + or %NULL</doc> + <type name="Format" c:type="GstFormat*"/> + </parameter> + <parameter name="start_value" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the start value, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="stop_value" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the stop value, or %NULL</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="parse_selectable" c:identifier="gst_query_parse_selectable" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the results of a selectable query. See also gst_query_set_selectable().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_SELECTABLE type #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="selectable" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">The resulting stream selection capability</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="parse_uri" c:identifier="gst_query_parse_uri"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an URI query, writing the URI into @uri as a newly +allocated string, if the respective parameters are non-%NULL. +Free the string with g_free() after usage.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="uri" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the current URI + (may be %NULL)</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_uri_redirection" c:identifier="gst_query_parse_uri_redirection" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an URI query, writing the URI into @uri as a newly +allocated string, if the respective parameters are non-%NULL. +Free the string with g_free() after usage.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="uri" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the storage for the redirect URI + (may be %NULL)</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_uri_redirection_permanent" c:identifier="gst_query_parse_uri_redirection_permanent" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an URI query, and set @permanent to %TRUE if there is a redirection +and it should be considered permanent. If a redirection is permanent, +applications should update their internal storage of the URI, otherwise +they should make all future requests to the original URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="permanent" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">if the URI redirection is permanent + (may be %NULL)</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_query_ref"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Increases the refcount of the given query by one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">@q</doc> + <type name="Query" c:type="GstQuery*"/> + </return-value> + <parameters> + <instance-parameter name="q" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery to increase the refcount of.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_nth_allocation_meta" c:identifier="gst_query_remove_nth_allocation_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Remove the metadata API at @index of the metadata API array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">position in the metadata API array to remove</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="remove_nth_allocation_param" c:identifier="gst_query_remove_nth_allocation_param" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Remove the allocation param at @index of the allocation param array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">position in the allocation param array to remove</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="remove_nth_allocation_pool" c:identifier="gst_query_remove_nth_allocation_pool" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Remove the allocation pool at @index of the allocation pool array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">position in the allocation pool array to remove</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_accept_caps_result" c:identifier="gst_query_set_accept_caps_result"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set @result as the result for the @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ACCEPT_CAPS type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="result" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the result to set</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_bitrate" c:identifier="gst_query_set_bitrate" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">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> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">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" filename="../subprojects/gstreamer/gst/gstquery.c">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" filename="../subprojects/gstreamer/gst/gstquery.c">Set the percentage of buffered data. This is a value between 0 and 100. +The @busy indicator is %TRUE when the buffering is in progress.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="busy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">if buffering is busy</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="percent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a buffering percent</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_buffering_range" c:identifier="gst_query_set_buffering_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the available query result fields in @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the format to set for the @start and @stop values</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the start to set</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the stop to set</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="estimated_total" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">estimated total amount of download time remaining in + milliseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_buffering_stats" c:identifier="gst_query_set_buffering_stats"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Configures the buffering stats values in @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a buffering mode</doc> + <type name="BufferingMode" c:type="GstBufferingMode"/> + </parameter> + <parameter name="avg_in" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the average input rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="avg_out" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the average output rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="buffering_left" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">amount of buffering time left in milliseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_caps_result" c:identifier="gst_query_set_caps_result"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the @caps result in @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">The query to use</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">A pointer to the caps</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_context" c:identifier="gst_query_set_context" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Answer a context query by setting the requested context.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery with query type GST_QUERY_CONTEXT</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the requested #GstContext</doc> + <type name="Context" c:type="GstContext*"/> + </parameter> + </parameters> + </method> + <method name="set_convert" c:identifier="gst_query_set_convert"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Answer a convert query by setting the requested values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="src_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the source #GstFormat</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the source value</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the destination #GstFormat</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the destination value</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_duration" c:identifier="gst_query_set_duration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Answer a duration query by setting the requested value in the given format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the #GstFormat for the duration</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the duration of the stream</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_formats" c:identifier="gst_query_set_formats" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the formats query result fields in @query. The number of formats passed +must be equal to @n_formats.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="n_formats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the number of formats to set.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">A number of @GstFormats equal to @n_formats.</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_formatsv" c:identifier="gst_query_set_formatsv"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the formats query result fields in @query. The number of formats passed +in the @formats array must be equal to @n_formats.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="n_formats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the number of formats to set.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="formats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">an array containing @n_formats + @GstFormat values.</doc> + <array length="0" zero-terminated="0" c:type="const GstFormat*"> + <type name="Format" c:type="GstFormat"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_latency" c:identifier="gst_query_set_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Answer a latency query by setting the requested values in the given format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">if there is a live element upstream</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="min_latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the minimal latency of the upstream elements</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="max_latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the maximal latency of the upstream elements</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_nth_allocation_param" c:identifier="gst_query_set_nth_allocation_param"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Parse an available query and get the allocator and its params +at @index of the allocator array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_ALLOCATION type query #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">position in the allocator array to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="allocator" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">new allocator to set</doc> + <type name="Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">parameters for the allocator</doc> + <type name="AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="set_nth_allocation_pool" c:identifier="gst_query_set_nth_allocation_pool"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the pool parameters in @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">A valid #GstQuery of type GST_QUERY_ALLOCATION.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">index to modify</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the #GstBufferPool</doc> + <type name="BufferPool" c:type="GstBufferPool*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the buffer size</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="min_buffers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the min buffers</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="max_buffers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the max buffers</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_position" c:identifier="gst_query_set_position"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Answer a position query by setting the requested value in the given format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery with query type GST_QUERY_POSITION</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the requested #GstFormat</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="cur" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the position to set</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_scheduling" c:identifier="gst_query_set_scheduling"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the scheduling properties.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">A valid #GstQuery of type GST_QUERY_SCHEDULING.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">#GstSchedulingFlags</doc> + <type name="SchedulingFlags" c:type="GstSchedulingFlags"/> + </parameter> + <parameter name="minsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the suggested minimum size of pull requests</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="maxsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the suggested maximum size of pull requests</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="align" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the suggested alignment of pull requests</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_seeking" c:identifier="gst_query_set_seeking"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the seeking query result fields in @query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the format to set for the @segment_start and @segment_end values</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="seekable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the seekable flag to set</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="segment_start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the segment_start to set</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="segment_end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the segment_end to set</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_segment" c:identifier="gst_query_set_segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Answer a segment query by setting the requested values. The normal +playback segment of a pipeline is 0 to duration at the default rate of +1.0. If a seek was performed on the pipeline to play a different +segment, this query will return the range specified in the last seek. + +@start_value and @stop_value will respectively contain the configured +playback range start and stop values expressed in @format. +The values are always between 0 and the duration of the media and +@start_value <= @stop_value. @rate will contain the playback rate. For +negative rates, playback will actually happen from @stop_value to +@start_value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the rate of the segment</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the #GstFormat of the segment values (@start_value and @stop_value)</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="start_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the start value</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="stop_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the stop value</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_selectable" c:identifier="gst_query_set_selectable" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Set the results of a selectable query. If the element answering the query can +handle stream selection, @selectable should be set to %TRUE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a GST_QUERY_SELECTABLE type #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="selectable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Whether the element can handle stream selection.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_uri" c:identifier="gst_query_set_uri"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Answer a URI query by setting the requested URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery with query type GST_QUERY_URI</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the URI to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_uri_redirection" c:identifier="gst_query_set_uri_redirection" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Answer a URI query by setting the requested URI redirection.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery with query type GST_QUERY_URI</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the URI to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_uri_redirection_permanent" c:identifier="gst_query_set_uri_redirection_permanent" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Answer a URI query by setting the requested URI redirection +to permanent or not.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <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" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery with query type %GST_QUERY_URI</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + <parameter name="permanent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">whether the redirect is permanent or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_query_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Decreases the refcount of the query. If the refcount reaches 0, the query +will be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="q" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery to decrease the refcount of.</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="writable_structure" c:identifier="gst_query_writable_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the structure of a query. This method should be called with a writable +@query so that the returned structure is guaranteed to be writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the #GstStructure of the query. The structure is + still owned by the query and will therefore be freed when the query + is unreffed.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQuery</doc> + <type name="Query" c:type="GstQuery*"/> + </instance-parameter> + </parameters> + </method> + <function name="replace" c:identifier="gst_query_replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Modifies a pointer to a #GstQuery to point to a different #GstQuery. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +query is unreffed, the new one is reffed). + +Either @new_query or the #GstQuery pointed to by @old_query may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">%TRUE if @new_query was different from @old_query</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_query" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">pointer to a pointer to a + #GstQuery to be replaced.</doc> + <type name="Query" c:type="GstQuery**"/> + </parameter> + <parameter name="new_query" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">pointer to a #GstQuery that will + replace the query pointed to by @old_query.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </function> + <function name="take" c:identifier="gst_query_take" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Modifies a pointer to a #GstQuery to point to a different #GstQuery. This +function is similar to gst_query_replace() except that it takes ownership of +@new_query. + +Either @new_query or the #GstQuery pointed to by @old_query may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">%TRUE if @new_query was different from @old_query</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_query" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">pointer to a + pointer to a #GstQuery to be stolen.</doc> + <type name="Query" c:type="GstQuery**"/> + </parameter> + <parameter name="new_query" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">pointer to a #GstQuery that will + replace the query pointed to by @old_query.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="QueryType" glib:type-name="GstQueryType" glib:get-type="gst_query_type_get_type" c:type="GstQueryType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Standard predefined Query types</doc> + <member name="unknown" value="0" c:identifier="GST_QUERY_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">unknown query type</doc> + </member> + <member name="position" value="2563" c:identifier="GST_QUERY_POSITION" glib:nick="position"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">current position in stream</doc> + </member> + <member name="duration" value="5123" c:identifier="GST_QUERY_DURATION" glib:nick="duration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">total duration of the stream</doc> + </member> + <member name="latency" value="7683" c:identifier="GST_QUERY_LATENCY" glib:nick="latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">latency of stream</doc> + </member> + <member name="jitter" value="10243" c:identifier="GST_QUERY_JITTER" glib:nick="jitter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">current jitter of stream</doc> + </member> + <member name="rate" value="12803" c:identifier="GST_QUERY_RATE" glib:nick="rate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">current rate of the stream</doc> + </member> + <member name="seeking" value="15363" c:identifier="GST_QUERY_SEEKING" glib:nick="seeking"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">seeking capabilities</doc> + </member> + <member name="segment" value="17923" c:identifier="GST_QUERY_SEGMENT" glib:nick="segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">segment start/stop positions</doc> + </member> + <member name="convert" value="20483" c:identifier="GST_QUERY_CONVERT" glib:nick="convert"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">convert values between formats</doc> + </member> + <member name="formats" value="23043" c:identifier="GST_QUERY_FORMATS" glib:nick="formats"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">query supported formats for convert</doc> + </member> + <member name="buffering" value="28163" c:identifier="GST_QUERY_BUFFERING" glib:nick="buffering"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">query available media for efficient seeking.</doc> + </member> + <member name="custom" value="30723" c:identifier="GST_QUERY_CUSTOM" glib:nick="custom"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">a custom application or element defined query.</doc> + </member> + <member name="uri" value="33283" c:identifier="GST_QUERY_URI" glib:nick="uri"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">query the URI of the source or sink.</doc> + </member> + <member name="allocation" value="35846" c:identifier="GST_QUERY_ALLOCATION" glib:nick="allocation"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the buffer allocation properties</doc> + </member> + <member name="scheduling" value="38401" c:identifier="GST_QUERY_SCHEDULING" glib:nick="scheduling"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the scheduling properties</doc> + </member> + <member name="accept_caps" value="40963" c:identifier="GST_QUERY_ACCEPT_CAPS" glib:nick="accept-caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the accept caps query</doc> + </member> + <member name="caps" value="43523" c:identifier="GST_QUERY_CAPS" glib:nick="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">the caps query</doc> + </member> + <member name="drain" value="46086" c:identifier="GST_QUERY_DRAIN" glib:nick="drain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">wait till all serialized data is consumed downstream</doc> + </member> + <member name="context" value="48643" c:identifier="GST_QUERY_CONTEXT" glib:nick="context"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">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" filename="../subprojects/gstreamer/gst/gstquery.h">the bitrate query (since 1.16)</doc> + </member> + <member name="selectable" value="53763" c:identifier="GST_QUERY_SELECTABLE" glib:nick="selectable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Query stream selection capability (Since: 1.22)</doc> + </member> + <function name="get_flags" c:identifier="gst_query_type_get_flags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Gets the #GstQueryTypeFlags associated with @type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQueryTypeFlags.</doc> + <type name="QueryTypeFlags" c:type="GstQueryTypeFlags"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQueryType</doc> + <type name="QueryType" c:type="GstQueryType"/> + </parameter> + </parameters> + </function> + <function name="get_name" c:identifier="gst_query_type_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get a printable name for the given query type. Do not modify or free.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a reference to the static name of the query.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the query type</doc> + <type name="QueryType" c:type="GstQueryType"/> + </parameter> + </parameters> + </function> + <function name="to_quark" c:identifier="gst_query_type_to_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the unique quark for the given query type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the quark associated with the query type</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the query type</doc> + <type name="QueryType" c:type="GstQueryType"/> + </parameter> + </parameters> + </function> + </enumeration> + <bitfield name="QueryTypeFlags" glib:type-name="GstQueryTypeFlags" glib:get-type="gst_query_type_flags_get_type" c:type="GstQueryTypeFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">#GstQueryTypeFlags indicate the aspects of the different #GstQueryType +values. You can get the type flags of a #GstQueryType with the +gst_query_type_get_flags() function.</doc> + <member name="upstream" value="1" c:identifier="GST_QUERY_TYPE_UPSTREAM" glib:nick="upstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Set if the query can travel upstream.</doc> + </member> + <member name="downstream" value="2" c:identifier="GST_QUERY_TYPE_DOWNSTREAM" glib:nick="downstream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Set if the query can travel downstream.</doc> + </member> + <member name="serialized" value="4" c:identifier="GST_QUERY_TYPE_SERIALIZED" glib:nick="serialized"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Set if the query should be serialized with data + flow.</doc> + </member> + </bitfield> + <function-macro name="READ_UINT16_BE" c:identifier="GST_READ_UINT16_BE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Read a 16 bit unsigned integer value in big endian format from the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="READ_UINT16_LE" c:identifier="GST_READ_UINT16_LE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Read a 16 bit unsigned integer value in little endian format from the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="READ_UINT24_BE" c:identifier="GST_READ_UINT24_BE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Read a 24 bit unsigned integer value in big endian format from the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="READ_UINT24_LE" c:identifier="GST_READ_UINT24_LE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Read a 24 bit unsigned integer value in little endian format from the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="READ_UINT32_BE" c:identifier="GST_READ_UINT32_BE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Read a 32 bit unsigned integer value in big endian format from the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="READ_UINT32_LE" c:identifier="GST_READ_UINT32_LE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Read a 32 bit unsigned integer value in little endian format from the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="READ_UINT64_BE" c:identifier="GST_READ_UINT64_BE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Read a 64 bit unsigned integer value in big endian format from the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="READ_UINT64_LE" c:identifier="GST_READ_UINT64_LE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Read a 64 bit unsigned integer value in little endian format from the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="READ_UINT8" c:identifier="GST_READ_UINT8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Read an 8 bit unsigned integer value from the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="REGISTRY" c:identifier="GST_REGISTRY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="REGISTRY_CLASS" c:identifier="GST_REGISTRY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="REGISTRY_GET_CLASS" c:identifier="GST_REGISTRY_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_DOWN_128" c:identifier="GST_ROUND_DOWN_128" version="1.4" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value down to the next multiple of 128.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round down</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_DOWN_16" c:identifier="GST_ROUND_DOWN_16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value down to the next multiple of 16.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round down</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_DOWN_2" c:identifier="GST_ROUND_DOWN_2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value down to the next multiple of 2.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round down</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_DOWN_32" c:identifier="GST_ROUND_DOWN_32" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value down to the next multiple of 32.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round down</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_DOWN_4" c:identifier="GST_ROUND_DOWN_4" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value down to the next multiple of 4.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round down</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_DOWN_64" c:identifier="GST_ROUND_DOWN_64" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value down to the next multiple of 64.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round down</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_DOWN_8" c:identifier="GST_ROUND_DOWN_8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value down to the next multiple of 8.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round down</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_DOWN_N" c:identifier="GST_ROUND_DOWN_N" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value down to the next multiple of @align. @align MUST be a +power of two.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integrer value to round down</doc> + </parameter> + <parameter name="align"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">a power of two to round down to</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_UP_128" c:identifier="GST_ROUND_UP_128" version="1.4" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value up to the next multiple of 128.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round up</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_UP_16" c:identifier="GST_ROUND_UP_16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value up to the next multiple of 16.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round up</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_UP_2" c:identifier="GST_ROUND_UP_2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value up to the next multiple of 2.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round up</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_UP_32" c:identifier="GST_ROUND_UP_32" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value up to the next multiple of 32.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round up</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_UP_4" c:identifier="GST_ROUND_UP_4" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value up to the next multiple of 4.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round up</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_UP_64" c:identifier="GST_ROUND_UP_64" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value up to the next multiple of 64.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round up</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_UP_8" c:identifier="GST_ROUND_UP_8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value up to the next multiple of 8.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integer value to round up</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="ROUND_UP_N" c:identifier="GST_ROUND_UP_N" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Rounds an integer value up to the next multiple of @align. @align MUST be a +power of two.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">integrer value to round up</doc> + </parameter> + <parameter name="align"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">a power of two to round up to</doc> + </parameter> + </parameters> + </function-macro> + <enumeration name="Rank" glib:type-name="GstRank" glib:get-type="gst_rank_get_type" c:type="GstRank"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">Element priority ranks. Defines the order in which the autoplugger (or +similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri()) +will choose this element over an alternative one with the same function. + +These constants serve as a rough guidance for defining the rank of a +#GstPluginFeature. Any value is valid, including values bigger than +@GST_RANK_PRIMARY.</doc> + <member name="none" value="0" c:identifier="GST_RANK_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">will be chosen last or not at all</doc> + </member> + <member name="marginal" value="64" c:identifier="GST_RANK_MARGINAL" glib:nick="marginal"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">unlikely to be chosen</doc> + </member> + <member name="secondary" value="128" c:identifier="GST_RANK_SECONDARY" glib:nick="secondary"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">likely to be chosen</doc> + </member> + <member name="primary" value="256" c:identifier="GST_RANK_PRIMARY" glib:nick="primary"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">will be chosen first</doc> + </member> + </enumeration> + <record name="ReferenceTimestampMeta" c:type="GstReferenceTimestampMeta" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">#GstReferenceTimestampMeta can be used to attach alternative timestamps and +possibly durations to a #GstBuffer. These are generally not according to +the pipeline clock and could be e.g. the NTP timestamp when the media was +captured. + +The reference is stored as a #GstCaps in @reference. Examples of valid +references would be + + * `timestamp/x-drivername-stream`: for timestamps that are locally + generated by some driver named `drivername` when generating the stream, + e.g. based on a frame counter + * `timestamp/x-ntp, host=pool.ntp.org, port=123`: for timestamps based on a + specific NTP server. Note that the host/port parameters might not always + be given. + * `timestamp/x-ptp, version=IEEE1588-2008, domain=1`: for timestamps based + on a given PTP clock. + * `timestamp/x-unix`: for timestamps based on the UNIX epoch according to + the local clock.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <field name="parent" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">the parent #GstMeta structure</doc> + <type name="Meta" c:type="GstMeta"/> + </field> + <field name="reference" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">identifier for the timestamp reference.</doc> + <type name="Caps" c:type="GstCaps*"/> + </field> + <field name="timestamp" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">timestamp</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="duration" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">duration, or %GST_CLOCK_TIME_NONE</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <function name="get_info" c:identifier="gst_reference_timestamp_meta_get_info" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the global #GstMetaInfo describing the #GstReferenceTimestampMeta meta.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The #GstMetaInfo</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <class name="Registry" c:symbol-prefix="registry" c:type="GstRegistry" parent="Object" glib:type-name="GstRegistry" glib:get-type="gst_registry_get_type" glib:type-struct="RegistryClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">One registry holds the metadata of a set of plugins. + +<emphasis role="bold">Design:</emphasis> + +The #GstRegistry object is a list of plugins and some functions for dealing +with them. Each #GstPlugin is matched 1-1 with a file on disk, and may or may +not be loaded at a given time. + +The primary source, at all times, of plugin information is each plugin file +itself. Thus, if an application wants information about a particular plugin, +or wants to search for a feature that satisfies given criteria, the primary +means of doing so is to load every plugin and look at the resulting +information that is gathered in the default registry. Clearly, this is a time +consuming process, so we cache information in the registry file. The format +and location of the cache file is internal to gstreamer. + +On startup, plugins are searched for in the plugin search path. The following +locations are checked in this order: + +* location from --gst-plugin-path commandline option. +* the GST_PLUGIN_PATH environment variable. +* the GST_PLUGIN_SYSTEM_PATH environment variable. +* default locations (if GST_PLUGIN_SYSTEM_PATH is not set). + Those default locations are: + `$XDG_DATA_HOME/gstreamer-$GST_API_VERSION/plugins/` + and `$prefix/libs/gstreamer-$GST_API_VERSION/`. + [$XDG_DATA_HOME](http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) defaults to + `$HOME/.local/share`. + +The registry cache file is loaded from +`$XDG_CACHE_HOME/gstreamer-$GST_API_VERSION/registry-$ARCH.bin` +(where $XDG_CACHE_HOME defaults to `$HOME/.cache`) or the file listed in the `GST_REGISTRY` +env var. One reason to change the registry location is for testing. + +For each plugin that is found in the plugin search path, there could be 3 +possibilities for cached information: + + * the cache may not contain information about a given file. + * the cache may have stale information. + * the cache may have current information. + +In the first two cases, the plugin is loaded and the cache updated. In +addition to these cases, the cache may have entries for plugins that are not +relevant to the current process. These are marked as not available to the +current process. If the cache is updated for whatever reason, it is marked +dirty. + +A dirty cache is written out at the end of initialization. Each entry is +checked to make sure the information is minimally valid. If not, the entry is +simply dropped. + +## Implementation notes: + +The "cache" and "registry" are different concepts and can represent +different sets of plugins. For various reasons, at init time, the cache is +stored in the default registry, and plugins not relevant to the current +process are marked with the %GST_PLUGIN_FLAG_CACHED bit. These plugins are +removed at the end of initialization.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <function name="fork_is_enabled" c:identifier="gst_registry_fork_is_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">By default GStreamer will perform scanning and rebuilding of the +registry file using a helper child process. + +Applications might want to disable this behaviour with the +gst_registry_fork_set_enabled() function, in which case new plugins +are scanned (and loaded) into the application process.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">%TRUE if GStreamer will use the child helper process when +rebuilding the registry.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="fork_set_enabled" c:identifier="gst_registry_fork_set_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Applications might want to disable/enable spawning of a child helper process +when rebuilding the registry. See gst_registry_fork_is_enabled() for more +information.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">whether rebuilding the registry can use a temporary child helper process.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="get" c:identifier="gst_registry_get"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Retrieves the singleton plugin registry. The caller does not own a +reference on the registry, as it is alive as long as GStreamer is +initialized.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the #GstRegistry.</doc> + <type name="Registry" c:type="GstRegistry*"/> + </return-value> + </function> + <method name="add_feature" c:identifier="gst_registry_add_feature"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Add the feature to the registry. The feature-added signal will be emitted. + +@feature's reference count will be incremented, and any floating +reference will be removed (see gst_object_ref_sink())</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">%TRUE on success. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry to add the plugin to</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the feature to add</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </parameter> + </parameters> + </method> + <method name="add_plugin" c:identifier="gst_registry_add_plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Add the plugin to the registry. The plugin-added signal will be emitted. + +@plugin's reference count will be incremented, and any floating +reference will be removed (see gst_object_ref_sink())</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">%TRUE on success. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry to add the plugin to</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the plugin to add</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + </parameters> + </method> + <method name="check_feature_version" c:identifier="gst_registry_check_feature_version"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Checks whether a plugin feature by the given name exists in +@registry and whether its version is at least the +version required.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">%TRUE if the feature could be found and the version is +the same as the required version or newer, and %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GstRegistry</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="feature_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the name of the feature (e.g. "oggdemux")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="min_major" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the minimum major version number</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="min_minor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the minimum minor version number</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="min_micro" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the minimum micro version number</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="feature_filter" c:identifier="gst_registry_feature_filter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Runs a filter against all features of the plugins in the registry +and returns a GList with the results. +If the first flag is set, only the first match is +returned (as a list with a single object).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GList of + #GstPluginFeature. Use gst_plugin_feature_list_free() after usage. + +MT safe.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PluginFeature"/> + </type> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">registry to query</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none" scope="call" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the filter to use</doc> + <type name="PluginFeatureFilter" c:type="GstPluginFeatureFilter"/> + </parameter> + <parameter name="first" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">only return first match</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">user data passed to the filter function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="find_feature" c:identifier="gst_registry_find_feature"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Find the pluginfeature with the given name and type in the registry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the pluginfeature with the + given name and type or %NULL if the plugin was not + found. gst_object_unref() after usage. + +MT safe.</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry to search</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the pluginfeature name to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the pluginfeature type to find</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="find_plugin" c:identifier="gst_registry_find_plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Find the plugin with the given name in the registry. +The plugin will be reffed; caller is responsible for unreffing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the plugin with the given name + or %NULL if the plugin was not found. gst_object_unref() after + usage. + +MT safe.</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry to search</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the plugin name to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_feature_list" c:identifier="gst_registry_get_feature_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Retrieves a #GList of #GstPluginFeature of @type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GList of + #GstPluginFeature of @type. Use gst_plugin_feature_list_free() after use + +MT safe.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PluginFeature"/> + </type> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GstRegistry</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GType.</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_feature_list_by_plugin" c:identifier="gst_registry_get_feature_list_by_plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Retrieves a #GList of features of the plugin with name @name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GList of + #GstPluginFeature. Use gst_plugin_feature_list_free() after usage.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PluginFeature"/> + </type> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GstRegistry.</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a plugin name.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_feature_list_cookie" c:identifier="gst_registry_get_feature_list_cookie"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Returns the registry's feature list cookie. This changes +every time a feature is added or removed from the registry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the feature list cookie.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_plugin_list" c:identifier="gst_registry_get_plugin_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Get a copy of all plugins registered in the given registry. The refcount +of each element in the list in incremented.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GList of #GstPlugin. + Use gst_plugin_list_free() after usage. + +MT safe.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Plugin"/> + </type> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry to search</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + </parameters> + </method> + <method name="lookup" c:identifier="gst_registry_lookup"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Look up a plugin in the given registry with the given filename. +If found, plugin is reffed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the #GstPlugin if found, or + %NULL if not. gst_object_unref() after usage.</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry to look up in</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="filename" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the name of the file to look up</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + </parameters> + </method> + <method name="lookup_feature" c:identifier="gst_registry_lookup_feature"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Find a #GstPluginFeature with @name in @registry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GstPluginFeature with its refcount incremented, + use gst_object_unref() after usage. + +MT safe.</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GstRegistry</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GstPluginFeature name</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + </parameters> + </method> + <method name="plugin_filter" c:identifier="gst_registry_plugin_filter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Runs a filter against all plugins in the registry and returns a #GList with +the results. If the first flag is set, only the first match is +returned (as a list with a single object). +Every plugin is reffed; use gst_plugin_list_free() after use, which +will unref again.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">a #GList of #GstPlugin. + Use gst_plugin_list_free() after usage. + +MT safe.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Plugin"/> + </type> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">registry to query</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none" scope="call" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the filter to use</doc> + <type name="PluginFilter" c:type="GstPluginFilter"/> + </parameter> + <parameter name="first" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">only return first match</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">user data passed to the filter function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="remove_feature" c:identifier="gst_registry_remove_feature"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Remove the feature from the registry. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry to remove the feature from</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the feature to remove</doc> + <type name="PluginFeature" c:type="GstPluginFeature*"/> + </parameter> + </parameters> + </method> + <method name="remove_plugin" c:identifier="gst_registry_remove_plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Remove the plugin from the registry. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry to remove the plugin from</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the plugin to remove</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + </parameters> + </method> + <method name="scan_path" c:identifier="gst_registry_scan_path"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Scan the given path for plugins to add to the registry. The syntax of the +path is specific to the registry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">%TRUE if registry changed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="registry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the registry to add found plugins to</doc> + <type name="Registry" c:type="GstRegistry*"/> + </instance-parameter> + <parameter name="path" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the path to scan</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <field name="object"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RegistryPrivate" c:type="GstRegistryPrivate*"/> + </field> + <glib:signal name="feature-added" when="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Signals that a feature has been added to the registry (possibly +replacing a previously-added one by the same name)</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the feature that has been added</doc> + <type name="PluginFeature"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="plugin-added" when="last"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Signals that a plugin has been added to the registry (possibly +replacing a previously-added one by the same name)</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">the plugin that has been added</doc> + <type name="Plugin"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="RegistryClass" c:type="GstRegistryClass" glib:is-gtype-struct-for="Registry"> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + <field name="parent_class"> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + </record> + <record name="RegistryPrivate" c:type="GstRegistryPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstregistry.h"/> + </record> + <enumeration name="ResourceError" glib:type-name="GstResourceError" glib:get-type="gst_resource_error_get_type" c:type="GstResourceError" glib:error-domain="gst-resource-error-quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">Resource errors are for any resource used by an element: +memory, files, network connections, process space, ... +They're typically used by source and sink elements.</doc> + <member name="failed" value="1" c:identifier="GST_RESOURCE_ERROR_FAILED" glib:nick="failed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">a general error which doesn't fit in any other +category. Make sure you add a custom message to the error call.</doc> + </member> + <member name="too_lazy" value="2" c:identifier="GST_RESOURCE_ERROR_TOO_LAZY" glib:nick="too-lazy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">do not use this except as a placeholder for +deciding where to go while developing code.</doc> + </member> + <member name="not_found" value="3" c:identifier="GST_RESOURCE_ERROR_NOT_FOUND" glib:nick="not-found"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the resource could not be found.</doc> + </member> + <member name="busy" value="4" c:identifier="GST_RESOURCE_ERROR_BUSY" glib:nick="busy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when resource is busy.</doc> + </member> + <member name="open_read" value="5" c:identifier="GST_RESOURCE_ERROR_OPEN_READ" glib:nick="open-read"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when resource fails to open for reading.</doc> + </member> + <member name="open_write" value="6" c:identifier="GST_RESOURCE_ERROR_OPEN_WRITE" glib:nick="open-write"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when resource fails to open for writing.</doc> + </member> + <member name="open_read_write" value="7" c:identifier="GST_RESOURCE_ERROR_OPEN_READ_WRITE" glib:nick="open-read-write"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when resource cannot be opened for +both reading and writing, or either (but unspecified which).</doc> + </member> + <member name="close" value="8" c:identifier="GST_RESOURCE_ERROR_CLOSE" glib:nick="close"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the resource can't be closed.</doc> + </member> + <member name="read" value="9" c:identifier="GST_RESOURCE_ERROR_READ" glib:nick="read"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the resource can't be read from.</doc> + </member> + <member name="write" value="10" c:identifier="GST_RESOURCE_ERROR_WRITE" glib:nick="write"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the resource can't be written to.</doc> + </member> + <member name="seek" value="11" c:identifier="GST_RESOURCE_ERROR_SEEK" glib:nick="seek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when a seek on the resource fails.</doc> + </member> + <member name="sync" value="12" c:identifier="GST_RESOURCE_ERROR_SYNC" glib:nick="sync"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when a synchronize on the resource fails.</doc> + </member> + <member name="settings" value="13" c:identifier="GST_RESOURCE_ERROR_SETTINGS" glib:nick="settings"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when settings can't be manipulated on.</doc> + </member> + <member name="no_space_left" value="14" c:identifier="GST_RESOURCE_ERROR_NO_SPACE_LEFT" glib:nick="no-space-left"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the resource has no space left.</doc> + </member> + <member name="not_authorized" value="15" c:identifier="GST_RESOURCE_ERROR_NOT_AUTHORIZED" glib:nick="not-authorized"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the resource can't be opened + due to missing authorization. + (Since: 1.2.4)</doc> + </member> + <member name="num_errors" value="16" c:identifier="GST_RESOURCE_ERROR_NUM_ERRORS" glib:nick="num-errors"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">the number of resource error types.</doc> + </member> + <function name="quark" c:identifier="gst_resource_error_quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <function-macro name="SAMPLE" c:identifier="GST_SAMPLE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="SAMPLE_CAST" c:identifier="GST_SAMPLE_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="SECOND" value="1000000000" c:type="GST_SECOND"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Constant that defines one GStreamer second.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/> + </constant> + <constant name="SEGMENT_FORMAT" value="paB" c:type="GST_SEGMENT_FORMAT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">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() +to pretty-print #GstSegment structures. +This can only be used on pointers to GstSegment structures.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="SEGMENT_INSTANT_FLAGS" value="912" c:type="GST_SEGMENT_INSTANT_FLAGS"> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="SEQNUM_INVALID" value="0" c:type="GST_SEQNUM_INVALID" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">A value which is guaranteed to never be returned by +gst_util_seqnum_next(). + +Can be used as a default value in variables used to store seqnum.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="SHARED_TASK_POOL" c:identifier="GST_SHARED_TASK_POOL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pool"> + </parameter> + </parameters> + </function-macro> + <function-macro name="SHARED_TASK_POOL_CLASS" c:identifier="GST_SHARED_TASK_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="SHARED_TASK_POOL_GET_CLASS" c:identifier="GST_SHARED_TASK_POOL_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pool"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE" c:identifier="GST_STATE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">This macro returns the current #GstState of the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to return state for.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_BROADCAST" c:identifier="GST_STATE_BROADCAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_GET_COND" c:identifier="GST_STATE_GET_COND" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Get the conditional used to signal the completion of a state change.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_GET_LOCK" c:identifier="GST_STATE_GET_LOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Get a reference to the state lock of @elem. +This lock is used by the core. It is taken while getting or setting +the state, during state changes, and while finalizing.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_GET_NEXT" c:identifier="GST_STATE_GET_NEXT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Given a current state @cur and a target state @pending, calculate the next (intermediate) +#GstState.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="cur"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A starting #GstState</doc> + </parameter> + <parameter name="pending"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A target #GstState</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_LOCK" c:identifier="GST_STATE_LOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_NEXT" c:identifier="GST_STATE_NEXT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">This macro returns the next #GstState of the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to return the next state for.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_PENDING" c:identifier="GST_STATE_PENDING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">This macro returns the currently pending #GstState of the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to return the pending state for.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_RETURN" c:identifier="GST_STATE_RETURN" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">This macro returns the last #GstStateChangeReturn value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to return the last state result for.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_SIGNAL" c:identifier="GST_STATE_SIGNAL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_TARGET" c:identifier="GST_STATE_TARGET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">This macro returns the target #GstState of the element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to return the target state for.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_TRANSITION" c:identifier="GST_STATE_TRANSITION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Given a current state @cur and a next state @next, calculate the associated +#GstStateChange transition.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="cur"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A current state</doc> + </parameter> + <parameter name="next"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A next state</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_TRANSITION_CURRENT" c:identifier="GST_STATE_TRANSITION_CURRENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Given a state transition @trans, extract the current #GstState.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="trans"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A #GstStateChange</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_TRANSITION_NEXT" c:identifier="GST_STATE_TRANSITION_NEXT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Given a state transition @trans, extract the next #GstState.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="trans"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">A #GstStateChange</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_TRYLOCK" c:identifier="GST_STATE_TRYLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_UNLOCK" c:identifier="GST_STATE_UNLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_WAIT" c:identifier="GST_STATE_WAIT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATE_WAIT_UNTIL" c:identifier="GST_STATE_WAIT_UNTIL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + </parameter> + <parameter name="end_time"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATIC_CAPS" c:identifier="GST_STATIC_CAPS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Creates a new #GstCaps static caps from an input string. +This can be used in pad templates.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the string describing the caps</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STATIC_PAD_TEMPLATE" c:identifier="GST_STATIC_PAD_TEMPLATE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Convenience macro to fill the values of a #GstStaticPadTemplate +structure. +Example: +|[<!-- language="C" --> +static GstStaticPadTemplate my_src_template = * GST_STATIC_PAD_TEMPLATE("src", GST_PAD_SRC, GST_PAD_ALWAYS, +, + GST_STATIC_CAPS_ANY); +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <parameters> + <parameter name="padname"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the name template of the pad</doc> + </parameter> + <parameter name="dir"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the GstPadDirection of the pad</doc> + </parameter> + <parameter name="pres"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the GstPadPresence of the pad</doc> + </parameter> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the GstStaticCaps of the pad</doc> + </parameter> + </parameters> + </function-macro> + <constant name="STIMEP_FORMAT" value="paS" c:type="GST_STIMEP_FORMAT" version="1.18" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">printf format type used to debug GStreamer signed time value pointers. 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() to pretty-print signed time (pointers to +#GstClockTimeDiff or #gint64).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="STIME_ARGS" c:identifier="GST_STIME_ARGS" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Formats @t for the #GST_STIME_FORMAT format string. Note: @t will be +evaluated more than once.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="t"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">a #GstClockTimeDiff or #gint64</doc> + </parameter> + </parameters> + </function-macro> + <constant name="STIME_FORMAT" value="c%" c:type="GST_STIME_FORMAT" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">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. + +Example: + +``` C +printf("%" GST_STIME_FORMAT "\n", GST_STIME_ARGS(ts)); +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="STREAM" c:identifier="GST_STREAM" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STREAM_CAST" c:identifier="GST_STREAM_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STREAM_CLASS" c:identifier="GST_STREAM_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STREAM_COLLECTION" c:identifier="GST_STREAM_COLLECTION" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STREAM_COLLECTION_CAST" c:identifier="GST_STREAM_COLLECTION_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STREAM_COLLECTION_CLASS" c:identifier="GST_STREAM_COLLECTION_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STREAM_COLLECTION_GET_CLASS" c:identifier="GST_STREAM_COLLECTION_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STREAM_GET_CLASS" c:identifier="GST_STREAM_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STRUCTURE" c:identifier="GST_STRUCTURE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <parameters> + <parameter name="object"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STRUCTURE_CAST" c:identifier="GST_STRUCTURE_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <parameters> + <parameter name="object"> + </parameter> + </parameters> + </function-macro> + <function-macro name="STR_FOURCC" c:identifier="GST_STR_FOURCC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Transform an input string into a #guint32 fourcc value with host +endianness. +Caller is responsible for ensuring the input string consists of at least +four characters. + +|[ +guint32 fourcc = GST_STR_FOURCC ("MJPG"); +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a string with at least four characters</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="STR_NULL" c:identifier="GST_STR_NULL" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Macro to use when a string must not be %NULL, but may be %NULL. If the string +is %NULL, "(NULL)" is printed instead. +In GStreamer printf string arguments may not be %NULL, because on some +platforms (ie Solaris) the libc crashes in that case. This includes debugging +strings.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <parameters> + <parameter name="str"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">The string to check.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="SYSTEM_CLOCK" c:identifier="GST_SYSTEM_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="SYSTEM_CLOCK_CAST" c:identifier="GST_SYSTEM_CLOCK_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="SYSTEM_CLOCK_CLASS" c:identifier="GST_SYSTEM_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="SYSTEM_CLOCK_GET_CLASS" c:identifier="GST_SYSTEM_CLOCK_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <record name="Sample" c:type="GstSample" glib:type-name="GstSample" glib:get-type="gst_sample_get_type" c:symbol-prefix="sample"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">A #GstSample is a small object containing data, a type, timing and +extra arbitrary information.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <constructor name="new" c:identifier="gst_sample_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Create a new #GstSample with the provided details. + +Free-function: gst_sample_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">the new #GstSample. gst_sample_unref() + after usage.</doc> + <type name="Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstBuffer, or %NULL</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstCaps, or %NULL</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="segment" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSegment, or %NULL</doc> + <type name="Segment" c:type="const GstSegment*"/> + </parameter> + <parameter name="info" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstStructure, or %NULL</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <method name="copy" c:identifier="gst_sample_copy" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Create a copy of the given sample. This will also make a newly allocated +copy of the data the source sample contains.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a new copy of @buf.</doc> + <type name="Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSample.</doc> + <type name="Sample" c:type="const GstSample*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_buffer" c:identifier="gst_sample_get_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Get the buffer associated with @sample</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">the buffer of @sample or %NULL + when there is no buffer. The buffer remains valid as long as + @sample is valid. If you need to hold on to it for longer than + that, take a ref to the buffer with gst_buffer_ref().</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_buffer_list" c:identifier="gst_sample_get_buffer_list" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Get the buffer list associated with @sample</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">the buffer list of @sample or %NULL + when there is no buffer list. The buffer list remains valid as long as + @sample is valid. If you need to hold on to it for longer than + that, take a ref to the buffer list with gst_mini_object_ref ().</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <instance-parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_caps" c:identifier="gst_sample_get_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Get the caps associated with @sample</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">the caps of @sample or %NULL + when there is no caps. The caps remain valid as long as @sample is + valid. If you need to hold on to the caps for longer than that, + take a ref to the caps with gst_caps_ref().</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_info" c:identifier="gst_sample_get_info"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Get extra information associated with @sample.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">the extra info of @sample. + The info remains valid as long as @sample is valid.</doc> + <type name="Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_segment" c:identifier="gst_sample_get_segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Get the segment associated with @sample</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">the segment of @sample. + The segment remains valid as long as @sample is valid.</doc> + <type name="Segment" c:type="GstSegment*"/> + </return-value> + <parameters> + <instance-parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_sample_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Increases the refcount of the given sample by one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">@sample</doc> + <type name="Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_buffer" c:identifier="gst_sample_set_buffer" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Set the buffer associated with @sample. @sample must be writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <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" filename="../subprojects/gstreamer/gst/gstsample.c">A #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">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" filename="../subprojects/gstreamer/gst/gstsample.c">Set the buffer list associated with @sample. @sample must be writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <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" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + <parameter name="buffer_list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstBufferList</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </method> + <method name="set_caps" c:identifier="gst_sample_set_caps" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Set the caps associated with @sample. @sample must be writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <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" filename="../subprojects/gstreamer/gst/gstsample.c">A #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">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" filename="../subprojects/gstreamer/gst/gstsample.c">Set the info structure associated with @sample. @sample must be writable, +and @info must not have a parent set already.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <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" filename="../subprojects/gstreamer/gst/gstsample.c">A #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">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" filename="../subprojects/gstreamer/gst/gstsample.c">Set the segment associated with @sample. @sample must be writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <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" filename="../subprojects/gstreamer/gst/gstsample.c">A #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">A #GstSegment</doc> + <type name="Segment" c:type="const GstSegment*"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_sample_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">Decreases the refcount of the sample. If the refcount reaches 0, the +sample will be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="sample" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.c">a #GstSample</doc> + <type name="Sample" c:type="GstSample*"/> + </instance-parameter> + </parameters> + </method> + </record> + <bitfield name="SchedulingFlags" glib:type-name="GstSchedulingFlags" glib:get-type="gst_scheduling_flags_get_type" c:type="GstSchedulingFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">The different scheduling flags.</doc> + <member name="seekable" value="1" c:identifier="GST_SCHEDULING_FLAG_SEEKABLE" glib:nick="seekable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">if seeking is possible</doc> + </member> + <member name="sequential" value="2" c:identifier="GST_SCHEDULING_FLAG_SEQUENTIAL" glib:nick="sequential"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">if sequential access is recommended</doc> + </member> + <member name="bandwidth_limited" value="4" c:identifier="GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED" glib:nick="bandwidth-limited"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">if bandwidth is limited and buffering possible (since 1.2)</doc> + </member> + </bitfield> + <enumeration name="SearchMode" glib:type-name="GstSearchMode" glib:get-type="gst_search_mode_get_type" c:type="GstSearchMode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">The different search modes.</doc> + <member name="exact" value="0" c:identifier="GST_SEARCH_MODE_EXACT" glib:nick="exact"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Only search for exact matches.</doc> + </member> + <member name="before" value="1" c:identifier="GST_SEARCH_MODE_BEFORE" glib:nick="before"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Search for an exact match or the element just before.</doc> + </member> + <member name="after" value="2" c:identifier="GST_SEARCH_MODE_AFTER" glib:nick="after"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Search for an exact match or the element just after.</doc> + </member> + </enumeration> + <bitfield name="SeekFlags" glib:type-name="GstSeekFlags" glib:get-type="gst_seek_flags_get_type" c:type="GstSeekFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags +can be used together. + +A non flushing seek might take some time to perform as the currently +playing data in the pipeline will not be cleared. + +An accurate seek might be slower for formats that don't have any indexes +or timestamp markers in the stream. Specifying this flag might require a +complete scan of the file in those cases. + +When performing a segment seek: after the playback of the segment completes, +no EOS will be emitted by the element that performed the seek, but a +%GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element. +When this message is posted, it is possible to send a new seek event to +continue playback. With this seek method it is possible to perform seamless +looping or simple linear editing. + +When only changing the playback rate and not the direction, the +%GST_SEEK_FLAG_INSTANT_RATE_CHANGE flag can be used for a non-flushing seek +to signal that the rate change should be applied immediately. This requires +special support in the seek handlers (e.g. demuxers) and any elements +synchronizing to the clock, and in general can't work in all cases (for example +UDP streaming where the delivery rate is controlled by a remote server). The +instant-rate-change mode supports changing the trickmode-related GST_SEEK_ flags, +but can't be used in conjunction with other seek flags that affect the new +playback position - as the playback position will not be changing. + +When doing fast forward (rate > 1.0) or fast reverse (rate < -1.0) trickmode +playback, the %GST_SEEK_FLAG_TRICKMODE flag can be used to instruct decoders +and demuxers to adjust the playback rate by skipping frames. This can improve +performance and decrease CPU usage because not all frames need to be decoded. + +Beyond that, the %GST_SEEK_FLAG_TRICKMODE_KEY_UNITS flag can be used to +request that decoders skip all frames except key units, and +%GST_SEEK_FLAG_TRICKMODE_NO_AUDIO flags can be used to request that audio +decoders do no decoding at all, and simple output silence. + +The %GST_SEEK_FLAG_SNAP_BEFORE flag can be used to snap to the previous +relevant location, and the %GST_SEEK_FLAG_SNAP_AFTER flag can be used to +select the next relevant location. If %GST_SEEK_FLAG_KEY_UNIT is specified, +the relevant location is a keyframe. If both flags are specified, the nearest +of these locations will be selected. If none are specified, the implementation is +free to select whichever it wants. + +The before and after here are in running time, so when playing backwards, +the next location refers to the one that will played in next, and not the +one that is located after in the actual source stream. + +Also see part-seeking.txt in the GStreamer design documentation for more +details on the meaning of these flags and the behaviour expected of +elements that handle them.</doc> + <member name="none" value="0" c:identifier="GST_SEEK_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">no flag</doc> + </member> + <member name="flush" value="1" c:identifier="GST_SEEK_FLAG_FLUSH" glib:nick="flush"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">flush pipeline</doc> + </member> + <member name="accurate" value="2" c:identifier="GST_SEEK_FLAG_ACCURATE" glib:nick="accurate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">accurate position is requested, this might + be considerably slower for some formats.</doc> + </member> + <member name="key_unit" value="4" c:identifier="GST_SEEK_FLAG_KEY_UNIT" glib:nick="key-unit"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">seek to the nearest keyframe. This might be + faster but less accurate.</doc> + </member> + <member name="segment" value="8" c:identifier="GST_SEEK_FLAG_SEGMENT" glib:nick="segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">perform a segment seek.</doc> + </member> + <member name="trickmode" value="16" c:identifier="GST_SEEK_FLAG_TRICKMODE" glib:nick="trickmode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">when doing fast forward or fast reverse playback, allow + elements to skip frames instead of generating all + frames. (Since: 1.6)</doc> + </member> + <member name="skip" value="16" c:identifier="GST_SEEK_FLAG_SKIP" glib:nick="skip"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">Deprecated backward compatibility flag, replaced + by %GST_SEEK_FLAG_TRICKMODE</doc> + </member> + <member name="snap_before" value="32" c:identifier="GST_SEEK_FLAG_SNAP_BEFORE" glib:nick="snap-before"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">go to a location before the requested position, + if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe at or before + the requested position the one at or before the seek target.</doc> + </member> + <member name="snap_after" value="64" c:identifier="GST_SEEK_FLAG_SNAP_AFTER" glib:nick="snap-after"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">go to a location after the requested position, + if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe at of after the + requested position.</doc> + </member> + <member name="snap_nearest" value="96" c:identifier="GST_SEEK_FLAG_SNAP_NEAREST" glib:nick="snap-nearest"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">go to a position near the requested position, + if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe closest + to the requested position, if both keyframes are at an equal + distance, behaves like %GST_SEEK_FLAG_SNAP_BEFORE.</doc> + </member> + <member name="trickmode_key_units" value="128" c:identifier="GST_SEEK_FLAG_TRICKMODE_KEY_UNITS" glib:nick="trickmode-key-units"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">when doing fast forward or fast reverse + playback, request that elements only decode keyframes + and skip all other content, for formats that have + keyframes. (Since: 1.6)</doc> + </member> + <member name="trickmode_no_audio" value="256" c:identifier="GST_SEEK_FLAG_TRICKMODE_NO_AUDIO" glib:nick="trickmode-no-audio"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">when doing fast forward or fast reverse + playback, request that audio decoder elements skip + decoding and output only gap events or silence. (Since: 1.6)</doc> + </member> + <member name="trickmode_forward_predicted" value="512" c:identifier="GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED" glib:nick="trickmode-forward-predicted"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">When doing fast forward or fast reverse + playback, request that elements only decode keyframes and + forward predicted frames and skip all other content (for example + B-Frames), for formats that have keyframes and forward predicted + frames. (Since: 1.18)</doc> + </member> + <member name="instant_rate_change" value="1024" c:identifier="GST_SEEK_FLAG_INSTANT_RATE_CHANGE" glib:nick="instant-rate-change"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">Signals that a rate change should be + applied immediately. Only valid if start/stop position + are GST_CLOCK_TIME_NONE, the playback direction does not change + and the seek is not flushing. (Since: 1.18)</doc> + </member> + </bitfield> + <enumeration name="SeekType" glib:type-name="GstSeekType" glib:get-type="gst_seek_type_get_type" c:type="GstSeekType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">The different types of seek events. When constructing a seek event with +gst_event_new_seek() or when doing gst_segment_do_seek ().</doc> + <member name="none" value="0" c:identifier="GST_SEEK_TYPE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">no change in position is required</doc> + </member> + <member name="set" value="1" c:identifier="GST_SEEK_TYPE_SET" glib:nick="set"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">absolute position is requested</doc> + </member> + <member name="end" value="2" c:identifier="GST_SEEK_TYPE_END" glib:nick="end"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">relative position to duration is requested</doc> + </member> + </enumeration> + <record name="Segment" c:type="GstSegment" glib:type-name="GstSegment" glib:get-type="gst_segment_get_type" c:symbol-prefix="segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">This helper structure holds the relevant values for tracking the region of +interest in a media file, called a segment. + +The structure can be used for two purposes: + + * performing seeks (handling seek events) + * tracking playback regions (handling newsegment events) + +The segment is usually configured by the application with a seek event which +is propagated upstream and eventually handled by an element that performs the seek. + +The configured segment is then propagated back downstream with a newsegment event. +This information is then used to clip media to the segment boundaries. + +A segment structure is initialized with gst_segment_init(), which takes a #GstFormat +that will be used as the format of the segment values. The segment will be configured +with a start value of 0 and a stop/duration of -1, which is undefined. The default +rate and applied_rate is 1.0. + +The public duration field contains the duration of the segment. When using +the segment for seeking, the start and time members should normally be left +to their default 0 value. The stop position is left to -1 unless explicitly +configured to a different value after a seek event. + +The current position in the segment should be set by changing the position +member in the structure. + +For elements that perform seeks, the current segment should be updated with the +gst_segment_do_seek() and the values from the seek event. This method will update +all the segment fields. The position field will contain the new playback position. +If the start_type was different from GST_SEEK_TYPE_NONE, playback continues from +the position position, possibly with updated flags or rate. + +For elements that want to use #GstSegment to track the playback region, +update the segment fields with the information from the newsegment event. +The gst_segment_clip() method can be used to check and clip +the media data to the segment boundaries. + +For elements that want to synchronize to the pipeline clock, gst_segment_to_running_time() +can be used to convert a timestamp to a value that can be used to synchronize +to the clock. This function takes into account the base as well as +any rate or applied_rate conversions. + +For elements that need to perform operations on media data in stream_time, +gst_segment_to_stream_time() can be used to convert a timestamp and the segment +info to stream time (which is always between 0 and the duration of the stream).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">flags for this segment</doc> + <type name="SegmentFlags" c:type="GstSegmentFlags"/> + </field> + <field name="rate" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">the playback rate of the segment is set in response to a seek + event and, without any seek, the value should be `1.0`. This + value is used by elements that synchronize buffer [running + times](additional/design/synchronisation.md#running-time) on + the clock (usually the sink elements), leading to consuming + buffers faster (for a value `> 1.0`) or slower (for `0.0 < + value < 1.0`) than normal playback speed. The rate also + defines the playback direction, meaning that when the value is + lower than `0.0`, the playback happens in reverse, and the + [stream-time](additional/design/synchronisation.md#stream-time) + is going backward. The `rate` value should never be `0.0`.</doc> + <type name="gdouble" c:type="gdouble"/> + </field> + <field name="applied_rate" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">The applied rate is the rate that has been applied to the stream. + The effective/resulting playback rate of a stream is + `rate * applied_rate`. + The applied rate can be set by source elements when a server is + sending the stream with an already modified playback speed + rate. Filter elements that modify the stream in a way that + modifies the playback speed should also modify the applied + rate. For example the #videorate element when its + #videorate:rate property is set will set the applied rate of + the segment it pushed downstream. Also #scaletempo applies the + input segment rate to the stream and outputs a segment with + rate=1.0 and applied_rate=<inputsegment.rate>.</doc> + <type name="gdouble" c:type="gdouble"/> + </field> + <field name="format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">the unit used for all of the segment's values.</doc> + <type name="Format" c:type="GstFormat"/> + </field> + <field name="base" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">the running time (plus elapsed time, see offset) of the + segment [start](GstSegment.start) ([stop](GstSegment.stop) if + rate < 0.0).</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="offset" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">the offset expresses the elapsed time (in buffer timestamps) + before a seek with its start (stop if rate < 0.0) seek type + set to #GST_SEEK_TYPE_NONE, the value is set to the position + of the segment at the time of the seek.</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="start" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">the start time of the segment (in buffer timestamps) + [(PTS)](GstBuffer.pts), that is the timestamp of the first + buffer to output inside the segment (last one during + reverse playback). For example decoders will + [clip](gst_segment_clip) out the buffers before the start + time.</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="stop" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">the stop time of the segment (in buffer timestamps) + [(PTS)](GstBuffer.pts), that is the timestamp of the last + buffer to output inside the segment (first one during + reverse playback). For example decoders will + [clip](gst_segment_clip) out buffers after the stop time.</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">the stream time of the segment [start](GstSegment.start) + ([stop](GstSegment.stop) if rate < 0.0).</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="position" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">the buffer timestamp position in the segment is supposed to be + updated by elements such as sources, demuxers or parsers to + track progress by setting it to the last pushed buffer' end time + ([timestamp](GstBuffer.pts) + #GstBuffer.duration) for that + specific segment. The position is used when reconfiguring the + segment with #gst_segment_do_seek when the seek is only + updating the segment (see [offset](GstSegment.offset)).</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="duration" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">the duration of the segment is the maximum absolute difference + between #GstSegment.start and #GstSegment.stop if stop is not + set, otherwise it should be the difference between those + two values. This should be set by elements that know the + overall stream duration (like demuxers) and will be used when + seeking with #GST_SEEK_TYPE_END.</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <constructor name="new" c:identifier="gst_segment_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Allocate a new #GstSegment structure and initialize it using +gst_segment_init(). + +Free-function: gst_segment_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a new #GstSegment, free with gst_segment_free().</doc> + <type name="Segment" c:type="GstSegment*"/> + </return-value> + </constructor> + <method name="clip" c:identifier="gst_segment_clip"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Clip the given @start and @stop values to the segment boundaries given +in @segment. @start and @stop are compared and clipped to @segment +start and stop values. + +If the function returns %FALSE, @start and @stop are known to fall +outside of @segment and @clip_start and @clip_stop are not updated. + +When the function returns %TRUE, @clip_start and @clip_stop will be +updated. If @clip_start or @clip_stop are different from @start or @stop +respectively, the region fell partially in the segment. + +Note that when @stop is -1, @clip_stop will be set to the end of the +segment. Depending on the use case, this may or may not be what you want.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">%TRUE if the given @start and @stop times fall partially or + completely in @segment, %FALSE if the values are completely outside + of the segment.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the start position in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the stop position in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="clip_start" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the clipped start position in the segment</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="clip_stop" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the clipped stop position in the segment</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_segment_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Create a copy of given @segment. + +Free-function: gst_segment_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a new #GstSegment, free with gst_segment_free().</doc> + <type name="Segment" c:type="GstSegment*"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + </parameters> + </method> + <method name="copy_into" c:identifier="gst_segment_copy_into"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Copy the contents of @src into @dest.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment</doc> + <type name="Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </method> + <method name="do_seek" c:identifier="gst_segment_do_seek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Update the segment structure with the field values of a seek event (see +gst_event_new_seek()). + +After calling this method, the segment field position and time will +contain the requested new position in the segment. The new requested +position in the segment depends on @rate and @start_type and @stop_type. + +For positive @rate, the new position in the segment is the new @segment +start field when it was updated with a @start_type different from +#GST_SEEK_TYPE_NONE. If no update was performed on @segment start position +(#GST_SEEK_TYPE_NONE), @start is ignored and @segment position is +unmodified. + +For negative @rate, the new position in the segment is the new @segment +stop field when it was updated with a @stop_type different from +#GST_SEEK_TYPE_NONE. If no stop was previously configured in the segment, the +duration of the segment will be used to update the stop position. +If no update was performed on @segment stop position (#GST_SEEK_TYPE_NONE), +@stop is ignored and @segment position is unmodified. + +The applied rate of the segment will be set to 1.0 by default. +If the caller can apply a rate change, it should update @segment +rate and applied_rate after calling this function. + +@update will be set to %TRUE if a seek should be performed to the segment +position field. This field can be %FALSE if, for example, only the @rate +has been changed but not the playback position.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">%TRUE if the seek could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="GstSegment*"/> + </instance-parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the rate of the segment.</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the segment flags for the segment</doc> + <type name="SeekFlags" c:type="GstSeekFlags"/> + </parameter> + <parameter name="start_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the seek method</doc> + <type name="SeekType" c:type="GstSeekType"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the seek start value</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="stop_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the seek method</doc> + <type name="SeekType" c:type="GstSeekType"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the seek stop value</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="update" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">boolean holding whether position was updated.</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_segment_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Free the allocated segment @segment.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment</doc> + <type name="Segment" c:type="GstSegment*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_segment_init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">The start/position fields are set to 0 and the stop/duration +fields are set to -1 (unknown). The default rate of 1.0 and no +flags are set. + +Initialize @segment to its default values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </method> + <method name="is_equal" c:identifier="gst_segment_is_equal" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Checks for two segments being equal. Equality here is defined +as perfect equality, including floating point values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">%TRUE if the segments are equal, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="s0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="s1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </parameter> + </parameters> + </method> + <method name="offset_running_time" c:identifier="gst_segment_offset_running_time" version="1.2.3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Adjust the values in @segment so that @offset is applied to all +future running-time calculations.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">%TRUE if the segment could be updated successfully. If %FALSE is +returned, @offset is not in @segment.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the offset to apply in the segment</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="position_from_running_time" c:identifier="gst_segment_position_from_running_time" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Convert @running_time into a position in the segment so that +gst_segment_to_running_time() with that position returns @running_time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the position in the segment for @running_time. This function returns +-1 when @running_time is -1 or when it is not inside @segment.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="running_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the running_time in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="position_from_running_time_full" c:identifier="gst_segment_position_from_running_time_full" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Translate @running_time to the segment position using the currently configured +segment. Compared to gst_segment_position_from_running_time() this function can +return negative segment position. + +This function is typically used by elements that need to synchronize buffers +against the clock or each other. + +@running_time can be any value and the result of this function for values +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 was < 0, and the value +in the position variable should be negated to get the real negative segment +position.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a 1 or -1 on success, 0 on failure.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="running_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the running-time</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="position" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the resulting position in the segment</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="position_from_stream_time" c:identifier="gst_segment_position_from_stream_time" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Convert @stream_time into a position in the segment so that +gst_segment_to_stream_time() with that position returns @stream_time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the position in the segment for @stream_time. This function returns +-1 when @stream_time is -1 or when it is not inside @segment.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="stream_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the stream_time in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="position_from_stream_time_full" c:identifier="gst_segment_position_from_stream_time_full" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Translate @stream_time to the segment position using the currently configured +segment. Compared to gst_segment_position_from_stream_time() this function can +return negative segment position. + +This function is typically used by elements that need to synchronize buffers +against the clock or each other. + +@stream_time can be any value and the result of this function for values outside +of the segment is extrapolated. + +When 1 is returned, @stream_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> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a 1 or -1 on success, 0 on failure.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="stream_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the stream-time</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="position" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the resulting position in the segment</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="set_running_time" c:identifier="gst_segment_set_running_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Adjust the start/stop and base values of @segment such that the next valid +buffer will be one with @running_time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">%TRUE if the segment could be updated successfully. If %FALSE is +returned, @running_time is -1 or not in @segment.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="running_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the running_time in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="to_position" c:identifier="gst_segment_to_position" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Convert @running_time into a position in the segment so that +gst_segment_to_running_time() with that position returns @running_time.</doc> + <doc-deprecated xml:space="preserve">Use gst_segment_position_from_running_time() instead.</doc-deprecated> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the position in the segment for @running_time. This function returns +-1 when @running_time is -1 or when it is not inside @segment.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="running_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the running_time in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="to_running_time" c:identifier="gst_segment_to_running_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Translate @position to the total running time using the currently configured +segment. Position is a value between @segment start and stop time. + +This function is typically used by elements that need to synchronize to the +global clock in a pipeline. The running time is a constantly increasing value +starting from 0. When gst_segment_init() is called, this value will reset to +0. + +This function returns -1 if the position is outside of @segment start and stop.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the position as the total running time or -1 when an invalid position +was given.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the position in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="to_running_time_full" c:identifier="gst_segment_to_running_time_full" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Translate @position to the total running time using the currently configured +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 each other. + +@position can be any value and the result of this function for values outside +of the segment is extrapolated. + +When 1 is returned, @position resulted in a positive running-time returned +in @running_time. + +When this function returns -1, the returned @running_time should be negated +to get the real negative running time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a 1 or -1 on success, 0 on failure.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the position in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="running_time" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">result running-time</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="to_stream_time" c:identifier="gst_segment_to_stream_time" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Translate @position to stream time using the currently configured +segment. The @position value must be between @segment start and +stop value. + +This function is typically used by elements that need to operate on +the stream time of the buffers it receives, such as effect plugins. +In those use cases, @position is typically the buffer timestamp or +clock time that one wants to convert to the stream time. +The stream time is always between 0 and the total duration of the +media stream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the position in stream_time or -1 when an invalid position +was given.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the position in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="to_stream_time_full" c:identifier="gst_segment_to_stream_time_full" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">Translate @position to the total stream time using the currently configured +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 each other. + +@position can be any value and the result of this function for values outside +of the segment is extrapolated. + +When 1 is returned, @position resulted in a positive stream-time returned +in @stream_time. + +When this function returns -1, the returned @stream_time should be negated +to get the real negative stream time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsegment.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a 1 or -1 on success, 0 on failure.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">a #GstSegment structure.</doc> + <type name="Segment" c:type="const GstSegment*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the format of the segment.</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">the position in the segment</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="stream_time" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.c">result stream-time</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + </record> + <bitfield name="SegmentFlags" glib:type-name="GstSegmentFlags" glib:get-type="gst_segment_flags_get_type" c:type="GstSegmentFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">Flags for the GstSegment structure. Currently mapped to the corresponding +values of the seek flags.</doc> + <member name="none" value="0" c:identifier="GST_SEGMENT_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">no flags</doc> + </member> + <member name="reset" value="1" c:identifier="GST_SEGMENT_FLAG_RESET" glib:nick="reset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">reset the pipeline running_time to the segment + running_time</doc> + </member> + <member name="trickmode" value="16" c:identifier="GST_SEGMENT_FLAG_TRICKMODE" glib:nick="trickmode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">perform skip playback (Since: 1.6)</doc> + </member> + <member name="skip" value="16" c:identifier="GST_SEGMENT_FLAG_SKIP" glib:nick="skip"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">Deprecated backward compatibility flag, replaced + by @GST_SEGMENT_FLAG_TRICKMODE</doc> + </member> + <member name="segment" value="8" c:identifier="GST_SEGMENT_FLAG_SEGMENT" glib:nick="segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">send SEGMENT_DONE instead of EOS</doc> + </member> + <member name="trickmode_key_units" value="128" c:identifier="GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS" glib:nick="trickmode-key-units"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">Decode only keyframes, where + possible (Since: 1.6)</doc> + </member> + <member name="trickmode_forward_predicted" value="512" c:identifier="GST_SEGMENT_FLAG_TRICKMODE_FORWARD_PREDICTED" glib:nick="trickmode-forward-predicted"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">Decode only keyframes or forward + predicted frames, where possible (Since: 1.18)</doc> + </member> + <member name="trickmode_no_audio" value="256" c:identifier="GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO" glib:nick="trickmode-no-audio"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsegment.h">Do not decode any audio, where + possible (Since: 1.6)</doc> + </member> + </bitfield> + <bitfield name="SerializeFlags" version="1.20" glib:type-name="GstSerializeFlags" glib:get-type="gst_serialize_flags_get_type" c:type="GstSerializeFlags"> + <member name="none" value="0" c:identifier="GST_SERIALIZE_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">No special flags specified.</doc> + </member> + <member name="backward_compat" value="1" c:identifier="GST_SERIALIZE_FLAG_BACKWARD_COMPAT" glib:nick="backward-compat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">Serialize using the old format for + nested structures.</doc> + </member> + </bitfield> + <class name="SharedTaskPool" c:symbol-prefix="shared_task_pool" c:type="GstSharedTaskPool" version="1.20" parent="TaskPool" glib:type-name="GstSharedTaskPool" glib:get-type="gst_shared_task_pool_get_type" glib:type-struct="SharedTaskPoolClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.h">The #GstSharedTaskPool object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <constructor name="new" c:identifier="gst_shared_task_pool_new" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Create a new shared task pool. The shared task pool will queue tasks on +a maximum number of threads, 1 by default. + +Do not use a #GstSharedTaskPool to manage potentially inter-dependent tasks such +as pad tasks, as having one task waiting on another to return before returning +would cause obvious deadlocks if they happen to share the same thread.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a new #GstSharedTaskPool. gst_object_unref() after usage.</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </return-value> + </constructor> + <method name="get_max_threads" c:identifier="gst_shared_task_pool_get_max_threads" version="1.20"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the maximum number of threads @pool is configured to spawn</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstSharedTaskPool</doc> + <type name="SharedTaskPool" c:type="GstSharedTaskPool*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_max_threads" c:identifier="gst_shared_task_pool_set_max_threads" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Update the maximal number of threads the @pool may spawn. When +the maximal number of threads is reduced, existing threads are not +immediately shut down, see g_thread_pool_set_max_threads(). + +Setting @max_threads to 0 effectively freezes the pool.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstSharedTaskPool</doc> + <type name="SharedTaskPool" c:type="GstSharedTaskPool*"/> + </instance-parameter> + <parameter name="max_threads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Maximum number of threads to spawn.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="TaskPool" c:type="GstTaskPool"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="SharedTaskPoolPrivate" c:type="GstSharedTaskPoolPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="SharedTaskPoolClass" c:type="GstSharedTaskPoolClass" glib:is-gtype-struct-for="SharedTaskPool" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.h">The #GstSharedTaskPoolClass object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <field name="parent_class"> + <type name="TaskPoolClass" c:type="GstTaskPoolClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="SharedTaskPoolPrivate" c:type="GstSharedTaskPoolPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + </record> + <bitfield name="StackTraceFlags" version="1.12" glib:type-name="GstStackTraceFlags" glib:get-type="gst_stack_trace_flags_get_type" c:type="GstStackTraceFlags"> + <member name="none" value="0" c:identifier="GST_STACK_TRACE_SHOW_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Try to retrieve the minimum information + available, which may be none on some platforms + (Since: 1.18)</doc> + </member> + <member name="full" value="1" c:identifier="GST_STACK_TRACE_SHOW_FULL" glib:nick="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">Try to retrieve as much information as possible, + including source information when getting the + stack trace</doc> + </member> + </bitfield> + <enumeration name="State" glib:type-name="GstState" glib:get-type="gst_state_get_type" c:type="GstState"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The possible states an element can be in. States can be changed using +gst_element_set_state() and checked using gst_element_get_state().</doc> + <member name="void_pending" value="0" c:identifier="GST_STATE_VOID_PENDING" glib:nick="void-pending"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">no pending state.</doc> + </member> + <member name="null" value="1" c:identifier="GST_STATE_NULL" glib:nick="null"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the NULL state or initial state of an element.</doc> + </member> + <member name="ready" value="2" c:identifier="GST_STATE_READY" glib:nick="ready"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element is ready to go to PAUSED.</doc> + </member> + <member name="paused" value="3" c:identifier="GST_STATE_PAUSED" glib:nick="paused"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element is PAUSED, it is ready to accept and + process data. Sink elements however only accept one + buffer and then block.</doc> + </member> + <member name="playing" value="4" c:identifier="GST_STATE_PLAYING" glib:nick="playing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the element is PLAYING, the #GstClock is running and + the data is flowing.</doc> + </member> + </enumeration> + <enumeration name="StateChange" glib:type-name="GstStateChange" glib:get-type="gst_state_change_get_type" c:type="GstStateChange"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">These are the different state changes an element goes through. +%GST_STATE_NULL &rArr; %GST_STATE_PLAYING is called an upwards state change +and %GST_STATE_PLAYING &rArr; %GST_STATE_NULL a downwards state change.</doc> + <member name="null_to_ready" value="10" c:identifier="GST_STATE_CHANGE_NULL_TO_READY" glib:nick="null-to-ready"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from NULL to READY. + * The element must check if the resources it needs are available. Device + sinks and -sources typically try to probe the device to constrain their + caps. + * The element opens the device (in case feature need to be probed).</doc> + </member> + <member name="ready_to_paused" value="19" c:identifier="GST_STATE_CHANGE_READY_TO_PAUSED" glib:nick="ready-to-paused"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from READY to PAUSED. + * The element pads are activated in order to receive data in PAUSED. + Streaming threads are started. + * Some elements might need to return %GST_STATE_CHANGE_ASYNC and complete + the state change when they have enough information. It is a requirement + for sinks to return %GST_STATE_CHANGE_ASYNC and complete the state change + when they receive the first buffer or %GST_EVENT_EOS (preroll). + Sinks also block the dataflow when in PAUSED. + * A pipeline resets the running_time to 0. + * Live sources return %GST_STATE_CHANGE_NO_PREROLL and don't generate data.</doc> + </member> + <member name="paused_to_playing" value="28" c:identifier="GST_STATE_CHANGE_PAUSED_TO_PLAYING" glib:nick="paused-to-playing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from PAUSED to PLAYING. + * Most elements ignore this state change. + * The pipeline selects a #GstClock and distributes this to all the children + before setting them to PLAYING. This means that it is only allowed to + synchronize on the #GstClock in the PLAYING state. + * The pipeline uses the #GstClock and the running_time to calculate the + base_time. The base_time is distributed to all children when performing + the state change. + * Sink elements stop blocking on the preroll buffer or event and start + rendering the data. + * Sinks can post %GST_MESSAGE_EOS in the PLAYING state. It is not allowed + to post %GST_MESSAGE_EOS when not in the PLAYING state. + * While streaming in PAUSED or PLAYING elements can create and remove + sometimes pads. + * Live sources start generating data and return %GST_STATE_CHANGE_SUCCESS.</doc> + </member> + <member name="playing_to_paused" value="35" c:identifier="GST_STATE_CHANGE_PLAYING_TO_PAUSED" glib:nick="playing-to-paused"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from PLAYING to PAUSED. + * Most elements ignore this state change. + * The pipeline calculates the running_time based on the last selected + #GstClock and the base_time. It stores this information to continue + playback when going back to the PLAYING state. + * Sinks unblock any #GstClock wait calls. + * When a sink does not have a pending buffer to play, it returns + #GST_STATE_CHANGE_ASYNC from this state change and completes the state + change when it receives a new buffer or an %GST_EVENT_EOS. + * Any queued %GST_MESSAGE_EOS items are removed since they will be reposted + when going back to the PLAYING state. The EOS messages are queued in + #GstBin containers. + * Live sources stop generating data and return %GST_STATE_CHANGE_NO_PREROLL.</doc> + </member> + <member name="paused_to_ready" value="26" c:identifier="GST_STATE_CHANGE_PAUSED_TO_READY" glib:nick="paused-to-ready"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from PAUSED to READY. + * Sinks unblock any waits in the preroll. + * Elements unblock any waits on devices + * Chain or get_range functions return %GST_FLOW_FLUSHING. + * The element pads are deactivated so that streaming becomes impossible and + all streaming threads are stopped. + * The sink forgets all negotiated formats + * Elements remove all sometimes pads</doc> + </member> + <member name="ready_to_null" value="17" c:identifier="GST_STATE_CHANGE_READY_TO_NULL" glib:nick="ready-to-null"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from READY to NULL. + * Elements close devices + * Elements reset any internal state.</doc> + </member> + <member name="null_to_null" value="9" c:identifier="GST_STATE_CHANGE_NULL_TO_NULL" glib:nick="null-to-null"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from NULL to NULL. (Since: 1.14)</doc> + </member> + <member name="ready_to_ready" value="18" c:identifier="GST_STATE_CHANGE_READY_TO_READY" glib:nick="ready-to-ready"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from READY to READY, +This might happen when going to PAUSED asynchronously failed, in that case +elements should make sure they are in a proper, coherent READY state. (Since: 1.14)</doc> + </member> + <member name="paused_to_paused" value="27" c:identifier="GST_STATE_CHANGE_PAUSED_TO_PAUSED" glib:nick="paused-to-paused"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from PAUSED to PAUSED. +This might happen when elements were in PLAYING state and 'lost state', +they should make sure to go back to real 'PAUSED' state (prerolling for example). (Since: 1.14)</doc> + </member> + <member name="playing_to_playing" value="36" c:identifier="GST_STATE_CHANGE_PLAYING_TO_PLAYING" glib:nick="playing-to-playing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">state change from PLAYING to PLAYING. (Since: 1.14)</doc> + </member> + <function name="get_name" c:identifier="gst_state_change_get_name" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Gets a string representing the given state transition.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a string with the name of the state + result.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="transition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstStateChange to get the name of.</doc> + <type name="StateChange" c:type="GstStateChange"/> + </parameter> + </parameters> + </function> + </enumeration> + <enumeration name="StateChangeReturn" glib:type-name="GstStateChangeReturn" glib:get-type="gst_state_change_return_get_type" c:type="GstStateChangeReturn"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">The possible return values from a state change function such as +gst_element_set_state(). Only @GST_STATE_CHANGE_FAILURE is a real failure.</doc> + <member name="failure" value="0" c:identifier="GST_STATE_CHANGE_FAILURE" glib:nick="failure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the state change failed</doc> + </member> + <member name="success" value="1" c:identifier="GST_STATE_CHANGE_SUCCESS" glib:nick="success"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the state change succeeded</doc> + </member> + <member name="async" value="2" c:identifier="GST_STATE_CHANGE_ASYNC" glib:nick="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the state change will happen asynchronously</doc> + </member> + <member name="no_preroll" value="3" c:identifier="GST_STATE_CHANGE_NO_PREROLL" glib:nick="no-preroll"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the state change succeeded but the element + cannot produce data in %GST_STATE_PAUSED. + This typically happens with live sources.</doc> + </member> + </enumeration> + <record name="StaticCaps" c:type="GstStaticCaps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Data structure to initialize #GstCaps from a string description usually +used in conjunction with GST_STATIC_CAPS() and gst_static_caps_get() to +instantiate a #GstCaps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <field name="caps" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">the cached #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </field> + <field name="string" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">a string describing a caps</doc> + <type name="utf8" c:type="const char*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="cleanup" c:identifier="gst_static_caps_cleanup"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Cleans up the cached caps contained in @static_caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="static_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstStaticCaps to clean</doc> + <type name="StaticCaps" c:type="GstStaticCaps*"/> + </instance-parameter> + </parameters> + </method> + <method name="get" c:identifier="gst_static_caps_get"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Converts a #GstStaticCaps to a #GstCaps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a pointer to the #GstCaps. Since the + core holds an additional ref to the returned caps, use + gst_caps_make_writable() on the returned caps to modify it.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="static_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">the #GstStaticCaps to convert</doc> + <type name="StaticCaps" c:type="GstStaticCaps*"/> + </instance-parameter> + </parameters> + </method> + </record> + <record name="StaticPadTemplate" c:type="GstStaticPadTemplate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">Structure describing the #GstStaticPadTemplate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <field name="name_template" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the name of the template</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="direction" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the direction of the template</doc> + <type name="PadDirection" c:type="GstPadDirection"/> + </field> + <field name="presence" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the presence of the template</doc> + <type name="PadPresence" c:type="GstPadPresence"/> + </field> + <field name="static_caps" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.h">the caps of the template.</doc> + <type name="StaticCaps" c:type="GstStaticCaps"/> + </field> + <method name="get" c:identifier="gst_static_pad_template_get"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Converts a #GstStaticPadTemplate into a #GstPadTemplate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a new #GstPadTemplate.</doc> + <type name="PadTemplate" c:type="GstPadTemplate*"/> + </return-value> + <parameters> + <instance-parameter name="pad_template" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the static pad template</doc> + <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_caps" c:identifier="gst_static_pad_template_get_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">Gets the capabilities of the static pad template.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">the #GstCaps of the static pad template. +Unref after usage. Since the core holds an additional +ref to the returned caps, use gst_caps_make_writable() +on the returned caps to modify it.</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpadtemplate.c">a #GstStaticPadTemplate to get capabilities of.</doc> + <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </instance-parameter> + </parameters> + </method> + </record> + <class name="Stream" c:symbol-prefix="stream" c:type="GstStream" version="1.10" parent="Object" glib:type-name="GstStream" glib:get-type="gst_stream_get_type" glib:type-struct="StreamClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">A high-level object representing a single stream. It might be backed, or +not, by an actual flow of data in a pipeline (#GstPad). + +A #GstStream does not care about data changes (such as decoding, encoding, +parsing,...) as long as the underlying data flow corresponds to the same +high-level flow (ex: a certain audio track). + +A #GstStream contains all the information pertinent to a stream, such as +stream-id, tags, caps, type, ... + +Elements can subclass a #GstStream for internal usage (to contain information +pertinent to streams of data).</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <constructor name="new" c:identifier="gst_stream_new" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Create a new #GstStream for the given @stream_id, @caps, @type +and @flags</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">The new #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </return-value> + <parameters> + <parameter name="stream_id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">the id for the new stream. If %NULL, +a new one will be automatically generated</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">the #GstCaps of the stream</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">the #GstStreamType of the stream</doc> + <type name="StreamType" c:type="GstStreamType"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">the #GstStreamFlags of the stream</doc> + <type name="StreamFlags" c:type="GstStreamFlags"/> + </parameter> + </parameters> + </constructor> + <method name="get_caps" c:identifier="gst_stream_get_caps" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Retrieve the caps for @stream, if any</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">The #GstCaps for @stream</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_flags" c:identifier="gst_stream_get_stream_flags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Retrieve the current stream flags for @stream</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">The #GstStreamFlags for @stream</doc> + <type name="StreamFlags" c:type="GstStreamFlags"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_id" c:identifier="gst_stream_get_stream_id" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Returns the stream ID of @stream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">the stream ID of @stream. Only valid +during the lifetime of @stream.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_type" c:identifier="gst_stream_get_stream_type" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Retrieve the stream type for @stream</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">The #GstStreamType for @stream</doc> + <type name="StreamType" c:type="GstStreamType"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_stream_get_tags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Retrieve the tags for @stream, if any</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">The #GstTagList for @stream</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_caps" c:identifier="gst_stream_set_caps" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Set the caps for the #GstStream</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_stream_flags" c:identifier="gst_stream_set_stream_flags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Set the @flags for the @stream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">the flags to set on @stream</doc> + <type name="StreamFlags" c:type="GstStreamFlags"/> + </parameter> + </parameters> + </method> + <method name="set_stream_type" c:identifier="gst_stream_set_stream_type" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Set the stream type of @stream</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </instance-parameter> + <parameter name="stream_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">the type to set on @stream</doc> + <type name="StreamType" c:type="GstStreamType"/> + </parameter> + </parameters> + </method> + <method name="set_tags" c:identifier="gst_stream_set_tags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Set the tags for the #GstStream</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </instance-parameter> + <parameter name="tags" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstTagList</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + </parameters> + </method> + <property name="caps" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">The #GstCaps of the #GstStream.</doc> + <type name="Caps"/> + </property> + <property name="stream-flags" writable="1" construct="1" transfer-ownership="none"> + <type name="StreamFlags"/> + </property> + <property name="stream-id" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">The unique identifier of the #GstStream. Can only be set at construction +time.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="stream-type" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">The #GstStreamType of the #GstStream. Can only be set at construction time.</doc> + <type name="StreamType"/> + </property> + <property name="tags" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">The #GstTagList of the #GstStream.</doc> + <type name="TagList"/> + </property> + <field name="object" readable="0" private="1"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="stream_id"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">The Stream Identifier for this #GstStream</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="StreamPrivate" c:type="GstStreamPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="StreamClass" c:type="GstStreamClass" glib:is-gtype-struct-for="Stream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">GstStream class structure</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">the parent class structure</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="StreamCollection" c:symbol-prefix="stream_collection" c:type="GstStreamCollection" version="1.10" parent="Object" glib:type-name="GstStreamCollection" glib:get-type="gst_stream_collection_get_type" glib:type-struct="StreamCollectionClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.h">A collection of #GstStream that are available. + +A #GstStreamCollection will be provided by elements that can make those +streams available. Applications can use the collection to show the user +what streams are available by using %gst_stream_collection_get_stream() + +Once posted, a #GstStreamCollection is immutable. Updates are made by sending +a new #GstStreamCollection message, which may or may not share some of +the #GstStream objects from the collection it replaces. The receiver can check +the sender of a stream collection message to know which collection is +obsoleted. + +Several elements in a pipeline can provide #GstStreamCollection. + +Applications can activate streams from a collection by using the +#GST_EVENT_SELECT_STREAMS event on a pipeline, bin or element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <constructor name="new" c:identifier="gst_stream_collection_new" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">Create a new #GstStreamCollection.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">The new #GstStreamCollection.</doc> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </return-value> + <parameters> + <parameter name="upstream_id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">The stream id of the parent stream</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="stream_notify"> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="collection" transfer-ownership="none"> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </instance-parameter> + <parameter name="stream" transfer-ownership="none"> + <type name="Stream" c:type="GstStream*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_stream" c:identifier="gst_stream_collection_add_stream" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">Add the given @stream to the @collection.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">%TRUE if the @stream was properly added, else %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="collection" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">a #GstStreamCollection</doc> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </instance-parameter> + <parameter name="stream" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">the #GstStream to add</doc> + <type name="Stream" c:type="GstStream*"/> + </parameter> + </parameters> + </method> + <method name="get_size" c:identifier="gst_stream_collection_get_size" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">Get the number of streams this collection contains</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">The number of streams that @collection contains</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="collection" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">a #GstStreamCollection</doc> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream" c:identifier="gst_stream_collection_get_stream" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">Retrieve the #GstStream with index @index from the collection. + +The caller should not modify the returned #GstStream</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">A #GstStream</doc> + <type name="Stream" c:type="GstStream*"/> + </return-value> + <parameters> + <instance-parameter name="collection" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">a #GstStreamCollection</doc> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">Index of the stream to retrieve</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_upstream_id" c:identifier="gst_stream_collection_get_upstream_id" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">Returns the upstream id of the @collection.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">The upstream id</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="collection" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.c">a #GstStreamCollection</doc> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </instance-parameter> + </parameters> + </method> + <property name="upstream-id" writable="1" construct="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="object" readable="0" private="1"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="upstream_id" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="StreamCollectionPrivate" c:type="GstStreamCollectionPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="stream-notify" when="first" no-recurse="1" detailed="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="Stream"/> + </parameter> + <parameter name="p0" transfer-ownership="none"> + <type name="GObject.ParamSpec"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="StreamCollectionClass" c:type="GstStreamCollectionClass" glib:is-gtype-struct-for="StreamCollection"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.h">GstStreamCollection class structure</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreamcollection.h">the parent class structure</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="stream_notify"> + <callback name="stream_notify"> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="collection" transfer-ownership="none"> + <type name="StreamCollection" c:type="GstStreamCollection*"/> + </parameter> + <parameter name="stream" transfer-ownership="none"> + <type name="Stream" c:type="GstStream*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="StreamCollectionPrivate" c:type="GstStreamCollectionPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gststreamcollection.h"/> + </record> + <enumeration name="StreamError" glib:type-name="GstStreamError" glib:get-type="gst_stream_error_get_type" c:type="GstStreamError" glib:error-domain="gst-stream-error-quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">Stream errors are for anything related to the stream being processed: +format errors, media type errors, ... +They're typically used by decoders, demuxers, converters, ...</doc> + <member name="failed" value="1" c:identifier="GST_STREAM_ERROR_FAILED" glib:nick="failed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">a general error which doesn't fit in any other +category. Make sure you add a custom message to the error call.</doc> + </member> + <member name="too_lazy" value="2" c:identifier="GST_STREAM_ERROR_TOO_LAZY" glib:nick="too-lazy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">do not use this except as a placeholder for +deciding where to go while developing code.</doc> + </member> + <member name="not_implemented" value="3" c:identifier="GST_STREAM_ERROR_NOT_IMPLEMENTED" glib:nick="not-implemented"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">use this when you do not want to implement +this functionality yet.</doc> + </member> + <member name="type_not_found" value="4" c:identifier="GST_STREAM_ERROR_TYPE_NOT_FOUND" glib:nick="type-not-found"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the element doesn't know the +stream's type.</doc> + </member> + <member name="wrong_type" value="5" c:identifier="GST_STREAM_ERROR_WRONG_TYPE" glib:nick="wrong-type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the element doesn't handle this type +of stream.</doc> + </member> + <member name="codec_not_found" value="6" c:identifier="GST_STREAM_ERROR_CODEC_NOT_FOUND" glib:nick="codec-not-found"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when there's no codec to handle the +stream's type.</doc> + </member> + <member name="decode" value="7" c:identifier="GST_STREAM_ERROR_DECODE" glib:nick="decode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when decoding fails.</doc> + </member> + <member name="encode" value="8" c:identifier="GST_STREAM_ERROR_ENCODE" glib:nick="encode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when encoding fails.</doc> + </member> + <member name="demux" value="9" c:identifier="GST_STREAM_ERROR_DEMUX" glib:nick="demux"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when demuxing fails.</doc> + </member> + <member name="mux" value="10" c:identifier="GST_STREAM_ERROR_MUX" glib:nick="mux"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when muxing fails.</doc> + </member> + <member name="format" value="11" c:identifier="GST_STREAM_ERROR_FORMAT" glib:nick="format"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the stream is of the wrong format +(for example, wrong caps).</doc> + </member> + <member name="decrypt" value="12" c:identifier="GST_STREAM_ERROR_DECRYPT" glib:nick="decrypt"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the stream is encrypted and can't be +decrypted because this is not supported by the element.</doc> + </member> + <member name="decrypt_nokey" value="13" c:identifier="GST_STREAM_ERROR_DECRYPT_NOKEY" glib:nick="decrypt-nokey"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">used when the stream is encrypted and +can't be decrypted because no suitable key is available.</doc> + </member> + <member name="num_errors" value="14" c:identifier="GST_STREAM_ERROR_NUM_ERRORS" glib:nick="num-errors"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.h">the number of stream error types.</doc> + </member> + <function name="quark" c:identifier="gst_stream_error_quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <bitfield name="StreamFlags" version="1.2" glib:type-name="GstStreamFlags" glib:get-type="gst_stream_flags_get_type" c:type="GstStreamFlags"> + <member name="none" value="0" c:identifier="GST_STREAM_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">This stream has no special attributes</doc> + </member> + <member name="sparse" value="1" c:identifier="GST_STREAM_FLAG_SPARSE" glib:nick="sparse"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">This stream is a sparse stream (e.g. a subtitle + stream), data may flow only in irregular intervals with large gaps in + between.</doc> + </member> + <member name="select" value="2" c:identifier="GST_STREAM_FLAG_SELECT" glib:nick="select"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">This stream should be selected by default. This + flag may be used by demuxers to signal that a stream should be selected + by default in a playback scenario.</doc> + </member> + <member name="unselect" value="4" c:identifier="GST_STREAM_FLAG_UNSELECT" glib:nick="unselect"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">This stream should not be selected by default. + This flag may be used by demuxers to signal that a stream should not + be selected by default in a playback scenario, but only if explicitly + selected by the user (e.g. an audio track for the hard of hearing or + a director's commentary track).</doc> + </member> + </bitfield> + <record name="StreamPrivate" c:type="GstStreamPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + </record> + <enumeration name="StreamStatusType" glib:type-name="GstStreamStatusType" glib:get-type="gst_stream_status_type_get_type" c:type="GstStreamStatusType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the +application of new streaming threads and their status.</doc> + <member name="create" value="0" c:identifier="GST_STREAM_STATUS_TYPE_CREATE" glib:nick="create"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">A new thread need to be created.</doc> + </member> + <member name="enter" value="1" c:identifier="GST_STREAM_STATUS_TYPE_ENTER" glib:nick="enter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a thread entered its loop function</doc> + </member> + <member name="leave" value="2" c:identifier="GST_STREAM_STATUS_TYPE_LEAVE" glib:nick="leave"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a thread left its loop function</doc> + </member> + <member name="destroy" value="3" c:identifier="GST_STREAM_STATUS_TYPE_DESTROY" glib:nick="destroy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a thread is destroyed</doc> + </member> + <member name="start" value="8" c:identifier="GST_STREAM_STATUS_TYPE_START" glib:nick="start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a thread is started</doc> + </member> + <member name="pause" value="9" c:identifier="GST_STREAM_STATUS_TYPE_PAUSE" glib:nick="pause"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a thread is paused</doc> + </member> + <member name="stop" value="10" c:identifier="GST_STREAM_STATUS_TYPE_STOP" glib:nick="stop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a thread is stopped</doc> + </member> + </enumeration> + <bitfield name="StreamType" version="1.10" glib:type-name="GstStreamType" glib:get-type="gst_stream_type_get_type" c:type="GstStreamType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">#GstStreamType describes a high level classification set for +flows of data in #GstStream objects. + +Note that this is a flag, and therefore users should not assume it +will be a single value. Do not use the equality operator for checking +whether a stream is of a certain type.</doc> + <member name="unknown" value="1" c:identifier="GST_STREAM_TYPE_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">The stream is of unknown (unclassified) type.</doc> + </member> + <member name="audio" value="2" c:identifier="GST_STREAM_TYPE_AUDIO" glib:nick="audio"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">The stream is of audio data</doc> + </member> + <member name="video" value="4" c:identifier="GST_STREAM_TYPE_VIDEO" glib:nick="video"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">The stream carries video data</doc> + </member> + <member name="container" value="8" c:identifier="GST_STREAM_TYPE_CONTAINER" glib:nick="container"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">The stream is a muxed container type</doc> + </member> + <member name="text" value="16" c:identifier="GST_STREAM_TYPE_TEXT" glib:nick="text"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.h">The stream contains subtitle / subpicture data.</doc> + </member> + <function name="get_name" c:identifier="gst_stream_type_get_name" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Get a descriptive string for a given #GstStreamType</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">A string describing the stream type</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="stype" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStreamType</doc> + <type name="StreamType" c:type="GstStreamType"/> + </parameter> + </parameters> + </function> + </bitfield> + <record name="Structure" c:type="GstStructure" glib:type-name="GstStructure" glib:get-type="gst_structure_get_type" c:symbol-prefix="structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">A #GstStructure is a collection of key/value pairs. The keys are expressed as +GQuarks and the values can be of any GType. + +In addition to the key/value pairs, a #GstStructure also has a name. The name +starts with a letter and can be filled by letters, numbers and any of +"/-_.:". + +#GstStructure is used by various GStreamer subsystems to store information in +a flexible and extensible way. A #GstStructure does not have a refcount +because it usually is part of a higher level object such as #GstCaps, +#GstMessage, #GstEvent, #GstQuery. It provides a means to enforce mutability +using the refcount of the parent with the gst_structure_set_parent_refcount() +method. + +A #GstStructure can be created with gst_structure_new_empty() or +gst_structure_new(), which both take a name and an optional set of key/value +pairs along with the types of the values. + +Field values can be changed with gst_structure_set_value() or +gst_structure_set(). + +Field values can be retrieved with gst_structure_get_value() or the more +convenient gst_structure_get_*() functions. + +Fields can be removed with gst_structure_remove_field() or +gst_structure_remove_fields(). + +Strings in structures must be ASCII or UTF-8 encoded. Other encodings are not +allowed. Strings may be %NULL however. + +## The serialization format + +GstStructure serialization format serialize the GstStructure name, +keys/GType/values in a comma separated list with the structure name as first +field without value followed by separated key/value pairs in the form +`key=value`, for example: + +``` +a-structure, key=value +```` + +The values type will be inferred if not explicitly specified with the +`(GTypeName)value` syntax, for example the following struct will have one +field called 'is-string' which has the string 'true' as a value: + +``` +a-struct, field-is-string=(string)true, field-is-boolean=true +``` + +*Note*: without specifying `(string), `field-is-string` type would have been +inferred as boolean. + +*Note*: we specified `(string)` as a type even if `gchararray` is the actual +GType name as for convenience some well known types have been aliased or +abbreviated. + +To avoid specifying the type, you can give some hints to the "type system". +For example to specify a value as a double, you should add a decimal (ie. `1` +is an `int` while `1.0` is a `double`). + +*Note*: when a structure is serialized with #gst_structure_to_string, all +values are explicitly typed. + +Some types have special delimiters: + +- [GstValueArray](GST_TYPE_ARRAY) are inside curly brackets (`{` and `}`). + For example `a-structure, array={1, 2, 3}` +- Ranges are inside brackets (`[` and `]`). For example `a-structure, + range=[1, 6, 2]` 1 being the min value, 6 the maximum and 2 the step. To + specify a #GST_TYPE_INT64_RANGE you need to explicitly specify it like: + `a-structure, a-int64-range=(gint64) [1, 5]` +- [GstValueList](GST_TYPE_LIST) are inside "less and greater than" (`<` and + `>`). For example `a-structure, list=<1, 2, 3> + +Structures are delimited either by a null character `\0` or a semicolon `;` +the latter allowing to store multiple structures in the same string (see +#GstCaps). + +Quotes are used as "default" delimiters and can be used around any types that +don't use other delimiters (for example `a-struct, i=(int)"1"`). They are use +to allow adding spaces or special characters (such as delimiters, +semicolumns, etc..) inside strings and you can use backslashes `\` to escape +characters inside them, for example: + +``` +a-struct, special="\"{[(;)]}\" can be used inside quotes" +``` + +They also allow for nested structure, such as: + +``` +a-struct, nested=(GstStructure)"nested-struct, nested=true" +``` + +Since 1.20, nested structures and caps can be specified using brackets (`[` +and `]`), for example: + +``` +a-struct, nested=[nested-struct, nested=true] +``` + +> *note*: gst_structure_to_string() won't use that syntax for backward +> compatibility reason, gst_structure_serialize() has been added for +> that purpose.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">the GType of a structure</doc> + <type name="GType" c:type="GType"/> + </field> + <field name="name" readable="0" private="1"> + <type name="GLib.Quark" c:type="GQuark"/> + </field> + <constructor name="from_string" c:identifier="gst_structure_from_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Creates a #GstStructure from a string representation. +If end is not %NULL, a pointer to the place inside the given string +where parsing ended will be returned. + +Free-function: gst_structure_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new #GstStructure or %NULL + when the string could not be parsed. Free with + gst_structure_free() after use.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a string representation of a #GstStructure.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="end" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1" skip="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">pointer to store the end of the string in.</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </constructor> + <constructor name="new" c:identifier="gst_structure_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Creates a new #GstStructure with the given name. Parses the +list of variable arguments and sets fields to the values listed. +Variable arguments should be passed as field name, field type, +and value. Last variable argument should be %NULL. + +Free-function: gst_structure_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">name of new structure</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="firstfield" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">name of first field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">additional arguments</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <constructor name="new_empty" c:identifier="gst_structure_new_empty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Creates a new, empty #GstStructure with the given @name. + +See gst_structure_set_name() for constraints on the @name parameter. + +Free-function: gst_structure_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new, empty #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">name of new structure</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_string" c:identifier="gst_structure_new_from_string" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Creates a #GstStructure from a string representation. +If end is not %NULL, a pointer to the place inside the given string +where parsing ended will be returned. + +The current implementation of serialization will lead to unexpected results +when there are nested #GstCaps / #GstStructure deeper than one level unless +the gst_structure_serialize() function is used (without +#GST_SERIALIZE_FLAG_BACKWARD_COMPAT) + +Free-function: gst_structure_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new #GstStructure or %NULL + when the string could not be parsed. Free with + gst_structure_free() after use.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a string representation of a #GstStructure</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_id" c:identifier="gst_structure_new_id" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Creates a new #GstStructure with the given name as a GQuark, followed by +fieldname quark, GType, argument(s) "triplets" in the same format as +gst_structure_id_set(). Basically a convenience wrapper around +gst_structure_new_id_empty() and gst_structure_id_set(). + +The last variable argument must be %NULL (or 0). + +Free-function: gst_structure_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <parameter name="name_quark" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">name of new structure</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="field_quark" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the GQuark for the name of the field to set</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable arguments</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <constructor name="new_id_empty" c:identifier="gst_structure_new_id_empty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Creates a new, empty #GstStructure with the given name as a GQuark. + +Free-function: gst_structure_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new, empty #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <parameter name="quark" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">name of new structure</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_valist" c:identifier="gst_structure_new_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Creates a new #GstStructure with the given @name. Structure fields +are set according to the varargs in a manner similar to +gst_structure_new(). + +See gst_structure_set_name() for constraints on the @name parameter. + +Free-function: gst_structure_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">name of new structure</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="firstfield" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">name of first field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="varargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable argument list</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </constructor> + <method name="can_intersect" c:identifier="gst_structure_can_intersect"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Tries intersecting @struct1 and @struct2 and reports whether the result +would not be empty.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if intersection would not be empty</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="struct1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="struct2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_structure_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Duplicates a #GstStructure and all its fields and values. + +Free-function: gst_structure_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new #GstStructure.</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure to duplicate</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + </parameters> + </method> + <method name="filter_and_map_in_place" c:identifier="gst_structure_filter_and_map_in_place" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Calls the provided function once for each field in the #GstStructure. In +contrast to gst_structure_foreach(), the function may modify the fields. +In contrast to gst_structure_map_in_place(), the field is removed from +the structure if %FALSE is returned from the function. +The structure must be mutable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a function to call for each field</doc> + <type name="StructureFilterMapFunc" c:type="GstStructureFilterMapFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="fixate" c:identifier="gst_structure_fixate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Fixate all values in @structure using gst_value_fixate(). +@structure will be modified in-place and should be writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + </parameters> + </method> + <method name="fixate_field" c:identifier="gst_structure_fixate_field"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Fixates a #GstStructure by changing the given field with its fixated value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure field could be fixated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="field_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a field in @structure</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + </parameters> + </method> + <method name="fixate_field_boolean" c:identifier="gst_structure_fixate_field_boolean"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Fixates a #GstStructure by changing the given @field_name field to the given +@target boolean if that field is not fixed yet.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure could be fixated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="field_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a field in @structure</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the target value of the fixation</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="fixate_field_nearest_double" c:identifier="gst_structure_fixate_field_nearest_double"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Fixates a #GstStructure by changing the given field to the nearest +double to @target that is a subset of the existing field.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure could be fixated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="field_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a field in @structure</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the target value of the fixation</doc> + <type name="gdouble" c:type="double"/> + </parameter> + </parameters> + </method> + <method name="fixate_field_nearest_fraction" c:identifier="gst_structure_fixate_field_nearest_fraction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Fixates a #GstStructure by changing the given field to the nearest +fraction to @target_numerator/@target_denominator that is a subset +of the existing field.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure could be fixated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="field_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a field in @structure</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="target_numerator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">The numerator of the target value of the fixation</doc> + <type name="gint" c:type="const gint"/> + </parameter> + <parameter name="target_denominator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">The denominator of the target value of the fixation</doc> + <type name="gint" c:type="const gint"/> + </parameter> + </parameters> + </method> + <method name="fixate_field_nearest_int" c:identifier="gst_structure_fixate_field_nearest_int"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Fixates a #GstStructure by changing the given field to the nearest +integer to @target that is a subset of the existing field.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure could be fixated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="field_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a field in @structure</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the target value of the fixation</doc> + <type name="gint" c:type="int"/> + </parameter> + </parameters> + </method> + <method name="fixate_field_string" c:identifier="gst_structure_fixate_field_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Fixates a #GstStructure by changing the given @field_name field to the given +@target string if that field is not fixed yet.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure could be fixated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="field_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a field in @structure</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the target value of the fixation</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="foreach" c:identifier="gst_structure_foreach"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Calls the provided function once for each field in the #GstStructure. The +function must not modify the fields. Also see gst_structure_map_in_place() +and gst_structure_filter_and_map_in_place().</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the supplied function returns %TRUE For each of the fields, +%FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a function to call for each field</doc> + <type name="StructureForeachFunc" c:type="GstStructureForeachFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_structure_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Frees a #GstStructure and all its fields and values. The structure must not +have a parent when this function is called.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the #GstStructure to free</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + </parameters> + </method> + <method name="get" c:identifier="gst_structure_get" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Parses the variable arguments and reads fields from @structure accordingly. +Variable arguments should be in the form field name, field type +(as a GType), pointer(s) to a variable(s) to hold the return value(s). +The last variable argument should be %NULL. + +For refcounted (mini)objects you will receive a new reference which +you must release with a suitable _unref\() when no longer needed. For +strings and boxed types you will receive a copy which you will need to +release with either g_free() or the suitable function for the boxed type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%FALSE if there was a problem reading any of the fields (e.g. + because the field requested did not exist, or was of a type other + than the type specified), otherwise %TRUE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="first_fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the first field to read</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable arguments</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="get_array" c:identifier="gst_structure_get_array" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">This is useful in language bindings where unknown #GValue types are not +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> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +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> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="array" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #GValueArray</doc> + <type name="GObject.ValueArray" c:type="GValueArray**"/> + </parameter> + </parameters> + </method> + <method name="get_boolean" c:identifier="gst_structure_get_boolean"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the boolean pointed to by @value corresponding to the value of the +given field. Caller is responsible for making sure the field exists +and has the correct type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain a boolean, this +function returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #gboolean to set</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="get_clock_time" c:identifier="gst_structure_get_clock_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the clock time pointed to by @value corresponding to the clock time +of the given field. Caller is responsible for making sure the field exists +and has the correct type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain a #GstClockTime, this +function returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #GstClockTime to set</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="get_date" c:identifier="gst_structure_get_date"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the date pointed to by @value corresponding to the date of the +given field. Caller is responsible for making sure the field exists +and has the correct type. + +On success @value will point to a newly-allocated copy of the date which +should be freed with g_date_free() when no longer needed (note: this is +inconsistent with e.g. gst_structure_get_string() which doesn't return a +copy of the string).</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain a data, this function +returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #GDate to set</doc> + <type name="GLib.Date" c:type="GDate**"/> + </parameter> + </parameters> + </method> + <method name="get_date_time" c:identifier="gst_structure_get_date_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the datetime pointed to by @value corresponding to the datetime of the +given field. Caller is responsible for making sure the field exists +and has the correct type. + +On success @value will point to a reference of the datetime which +should be unreffed with gst_date_time_unref() when no longer needed +(note: this is inconsistent with e.g. gst_structure_get_string() +which doesn't return a copy of the string).</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain a data, this function +returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #GstDateTime to set</doc> + <type name="DateTime" c:type="GstDateTime**"/> + </parameter> + </parameters> + </method> + <method name="get_double" c:identifier="gst_structure_get_double"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the double pointed to by @value corresponding to the value of the +given field. Caller is responsible for making sure the field exists +and has the correct type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain a double, this +function returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a gdouble to set</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="get_enum" c:identifier="gst_structure_get_enum"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the int pointed to by @value corresponding to the value of the +given field. Caller is responsible for making sure the field exists, +has the correct type and that the enumtype is correct.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain an enum of the given +type, this function returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="enumtype" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the enum type of a field</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to an int to set</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_field_type" c:identifier="gst_structure_get_field_type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Finds the field with the given name, and returns the type of the +value it contains. If the field is not found, G_TYPE_INVALID is +returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the #GValue of the field</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_flags" c:identifier="gst_structure_get_flags" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the unsigned int pointed to by @value corresponding to the value of the +given field. Caller is responsible for making sure the field exists, +has the correct type and that the flagstype is correct.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain flags or +did not contain flags of the given type, this function returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="flags_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the flags type of a field</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to an unsigned int to set</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_flagset" c:identifier="gst_structure_get_flagset" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Read the GstFlagSet flags and mask out of the structure into the +provided pointers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the values could be set correctly. If there was no field +with @fieldname or the existing field did not contain a GstFlagSet, this +function returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value_flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a guint for the flags field</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="value_mask" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a guint for the mask field</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_fraction" c:identifier="gst_structure_get_fraction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the integers pointed to by @value_numerator and @value_denominator +corresponding to the value of the given field. Caller is responsible +for making sure the field exists and has the correct type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the values could be set correctly. If there was no field +with @fieldname or the existing field did not contain a GstFraction, this +function returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value_numerator" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to an int to set</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="value_denominator" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to an int to set</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_int" c:identifier="gst_structure_get_int"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the int pointed to by @value corresponding to the value of the +given field. Caller is responsible for making sure the field exists +and has the correct type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%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> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to an int to set</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_int64" c:identifier="gst_structure_get_int64" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the #gint64 pointed to by @value corresponding to the value of the +given field. Caller is responsible for making sure the field exists +and has the correct type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain a #gint64, this function +returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #gint64 to set</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_list" c:identifier="gst_structure_get_list" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">This is useful in language bindings where unknown #GValue types are not +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> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain a %GST_TYPE_LIST, this +function returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="array" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #GValueArray</doc> + <type name="GObject.ValueArray" c:type="GValueArray**"/> + </parameter> + </parameters> + </method> + <method name="get_name" c:identifier="gst_structure_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Get the name of @structure as a string.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the structure.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_name_id" c:identifier="gst_structure_get_name_id"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Get the name of @structure as a GQuark.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the quark representing the name of the structure.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_string" c:identifier="gst_structure_get_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Finds the field corresponding to @fieldname, and returns the string +contained in the field's value. Caller is responsible for making +sure the field exists and has the correct type. + +The string should not be modified, and remains valid until the next +call to a gst_structure_*() function with the given structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to the string or %NULL when the +field did not exist or did not contain a string.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_uint" c:identifier="gst_structure_get_uint"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the uint pointed to by @value corresponding to the value of the +given field. Caller is responsible for making sure the field exists +and has the correct type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain a uint, this function +returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a uint to set</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_uint64" c:identifier="gst_structure_get_uint64" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the #guint64 pointed to by @value corresponding to the value of the +given field. Caller is responsible for making sure the field exists +and has the correct type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the value could be set correctly. If there was no field +with @fieldname or the existing field did not contain a #guint64, this function +returns %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #guint64 to set</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="get_valist" c:identifier="gst_structure_get_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Parses the variable arguments and reads fields from @structure accordingly. +valist-variant of gst_structure_get(). Look at the documentation of +gst_structure_get() for more details.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE, or %FALSE if there was a problem reading any of the fields</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="first_fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the first field to read</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable arguments</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="get_value" c:identifier="gst_structure_get_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Get the value of the field with name @fieldname.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the #GValue corresponding to the field with the given +name.</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="has_field" c:identifier="gst_structure_has_field"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Check if @structure contains a field named @fieldname.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure contains a field with the given name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="has_field_typed" c:identifier="gst_structure_has_field_typed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Check if @structure contains a field named @fieldname and with GType @type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure contains a field with the given name and type</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the type of a value</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="has_name" c:identifier="gst_structure_has_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Checks if the structure has the given name</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if @name matches the name of the structure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">structure name to check for</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="id_get" c:identifier="gst_structure_id_get" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Parses the variable arguments and reads fields from @structure accordingly. +Variable arguments should be in the form field id quark, field type +(as a GType), pointer(s) to a variable(s) to hold the return value(s). +The last variable argument should be %NULL (technically it should be a +0 quark, but we require %NULL so compilers that support it can check for +the %NULL terminator and warn if it's not there). + +This function is just like gst_structure_get() only that it is slightly +more efficient since it saves the string-to-quark lookup in the global +quark hashtable. + +For refcounted (mini)objects you will receive a new reference which +you must release with a suitable _unref\() when no longer needed. For +strings and boxed types you will receive a copy which you will need to +release with either g_free() or the suitable function for the boxed type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%FALSE if there was a problem reading any of the fields (e.g. + because the field requested did not exist, or was of a type other + than the type specified), otherwise %TRUE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="first_field_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the quark of the first field to read</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable arguments</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="id_get_valist" c:identifier="gst_structure_id_get_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Parses the variable arguments and reads fields from @structure accordingly. +valist-variant of gst_structure_id_get(). Look at the documentation of +gst_structure_id_get() for more details.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE, or %FALSE if there was a problem reading any of the fields</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="first_field_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the quark of the first field to read</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable arguments</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="id_get_value" c:identifier="gst_structure_id_get_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Get the value of the field with GQuark @field.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the #GValue corresponding to the field with the given +name identifier.</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the #GQuark of the field to get</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </method> + <method name="id_has_field" c:identifier="gst_structure_id_has_field"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Check if @structure contains a field named @field.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure contains a field with the given name</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">#GQuark of the field name</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </method> + <method name="id_has_field_typed" c:identifier="gst_structure_id_has_field_typed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Check if @structure contains a field named @field and with GType @type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the structure contains a field with the given name and type</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">#GQuark of the field name</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the type of a value</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="id_set" c:identifier="gst_structure_id_set" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Identical to gst_structure_set, except that field names are +passed using the GQuark for the field name. This allows more efficient +setting of the structure if the caller already knows the associated +quark values. +The last variable argument must be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the GQuark for the name of the field to set</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable arguments</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="id_set_valist" c:identifier="gst_structure_id_set_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">va_list form of gst_structure_id_set().</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field to set</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="varargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable arguments</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="id_set_value" c:identifier="gst_structure_id_set_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the field with the given GQuark @field to @value. If the field +does not exist, it is created. If the field exists, the previous +value is replaced and freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GQuark representing a field</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the new value of the field</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="id_take_value" c:identifier="gst_structure_id_take_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the field with the given GQuark @field to @value. If the field +does not exist, it is created. If the field exists, the previous +value is replaced and freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GQuark representing a field</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="value" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the new value of the field</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="intersect" c:identifier="gst_structure_intersect"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Intersects @struct1 and @struct2 and returns the intersection.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Intersection of @struct1 and @struct2</doc> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="struct1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="struct2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="is_equal" c:identifier="gst_structure_is_equal"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Tests if the two #GstStructure are equal.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the two structures have the same name and field.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure.</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="structure2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure.</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="is_subset" c:identifier="gst_structure_is_subset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Checks if @subset is a subset of @superset, i.e. has the same +structure name and for all fields that are existing in @superset, +@subset has a value that is a subset of the value in @superset.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if @subset is a subset of @superset</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="subset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="superset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a potentially greater #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="map_in_place" c:identifier="gst_structure_map_in_place"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Calls the provided function once for each field in the #GstStructure. In +contrast to gst_structure_foreach(), the function may modify but not delete the +fields. The structure must be mutable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the supplied function returns %TRUE For each of the fields, +%FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a function to call for each field</doc> + <type name="StructureMapFunc" c:type="GstStructureMapFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="n_fields" c:identifier="gst_structure_n_fields"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Get the number of fields in the structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the number of fields in the structure</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + </parameters> + </method> + <method name="nth_field_name" c:identifier="gst_structure_nth_field_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Get the name of the given field number, counting from 0 onwards.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the given field number</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the index to get the name of</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="remove_all_fields" c:identifier="gst_structure_remove_all_fields"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Removes all fields in a GstStructure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_field" c:identifier="gst_structure_remove_field"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Removes the field with the given name. If the field with the given +name does not exist, the structure is unchanged.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field to remove</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="remove_fields" c:identifier="gst_structure_remove_fields" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Removes the fields with the given names. If a field does not exist, the +argument is ignored.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field to remove</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%NULL-terminated list of more fieldnames to remove</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="remove_fields_valist" c:identifier="gst_structure_remove_fields_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">va_list form of gst_structure_remove_fields().</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field to remove</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="varargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%NULL-terminated list of more fieldnames to remove</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="serialize" c:identifier="gst_structure_serialize" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Converts @structure to a human-readable string representation. + +This version of the caps serialization function introduces support for nested +structures and caps but the resulting strings won't be parsable with +GStreamer prior to 1.20 unless #GST_SERIALIZE_FLAG_BACKWARD_COMPAT is passed +as @flag. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to string allocated by g_malloc(). + g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">The flags to use to serialize structure</doc> + <type name="SerializeFlags" c:type="GstSerializeFlags"/> + </parameter> + </parameters> + </method> + <method name="set" c:identifier="gst_structure_set" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Parses the variable arguments and sets fields accordingly. Fields that +weren't already part of the structure are added as needed. +Variable arguments should be in the form field name, field type +(as a GType), value(s). The last variable argument should be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable arguments</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_array" c:identifier="gst_structure_set_array" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">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 +the field specified by @fieldname. Be aware that this is slower then using +%GST_TYPE_ARRAY in a #GValue directly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #GValueArray</doc> + <type name="GObject.ValueArray" c:type="const GValueArray*"/> + </parameter> + </parameters> + </method> + <method name="set_list" c:identifier="gst_structure_set_list" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">This is useful in language bindings where unknown GValue types are not +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_LIST in a #GValue directly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of a field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #GValueArray</doc> + <type name="GObject.ValueArray" c:type="const GValueArray*"/> + </parameter> + </parameters> + </method> + <method name="set_name" c:identifier="gst_structure_set_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the name of the structure to the given @name. The string +provided is copied before being used. It must not be empty, start with a +letter and can be followed by letters, numbers and any of "/-_.:".</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the new name of the structure</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_parent_refcount" c:identifier="gst_structure_set_parent_refcount"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the parent_refcount field of #GstStructure. This field is used to +determine whether a structure is mutable or not. This function should only be +called by code implementing parent objects of #GstStructure, as described in +the MT Refcounting section of the design documents.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if the parent refcount could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="refcount" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to the parent's refcount</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="set_valist" c:identifier="gst_structure_set_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">va_list form of gst_structure_set().</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="varargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">variable arguments</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="set_value" c:identifier="gst_structure_set_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the field with the given name @field to @value. If the field +does not exist, it is created. If the field exists, the previous +value is replaced and freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the new value of the field</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="take_value" c:identifier="gst_structure_take_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Sets the field with the given name @field to @value. If the field +does not exist, it is created. If the field exists, the previous +value is replaced and freed. The function will take ownership of @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the name of the field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">the new value of the field</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="to_string" c:identifier="gst_structure_to_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Converts @structure to a human-readable string representation. + +For debugging purposes its easier to do something like this: |[<!-- +language="C" --> GST_LOG ("structure is %" GST_PTR_FORMAT, structure); +]| +This prints the structure in human readable form. + +This function will lead to unexpected results when there are nested #GstCaps +/ #GstStructure deeper than one level, you should user +gst_structure_serialize() instead for those cases. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to string allocated by g_malloc(). + g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a #GstStructure</doc> + <type name="Structure" c:type="const GstStructure*"/> + </instance-parameter> + </parameters> + </method> + <function name="take" c:identifier="gst_structure_take" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Atomically modifies a pointer to point to a new structure. +The #GstStructure @oldstr_ptr is pointing to is freed and +@newstr is taken ownership over. + +Either @newstr and the value pointed to by @oldstr_ptr may be %NULL. + +It is a programming error if both @newstr and the value pointed to by +@oldstr_ptr refer to the same, non-%NULL structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if @newstr was different from @oldstr_ptr</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="oldstr_ptr" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">pointer to a place of + a #GstStructure to take</doc> + <type name="Structure" c:type="GstStructure**"/> + </parameter> + <parameter name="newstr" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="StructureChangeType" glib:type-name="GstStructureChangeType" glib:get-type="gst_structure_change_type_get_type" c:type="GstStructureChangeType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">The type of a %GST_MESSAGE_STRUCTURE_CHANGE.</doc> + <member name="link" value="0" c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK" glib:nick="link"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Pad linking is starting or done.</doc> + </member> + <member name="unlink" value="1" c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK" glib:nick="unlink"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Pad unlinking is starting or done.</doc> + </member> + </enumeration> + <callback name="StructureFilterMapFunc" c:type="GstStructureFilterMapFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">A function that will be called in gst_structure_filter_and_map_in_place(). +The function may modify @value, and the value will be removed from +the structure if %FALSE is returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">%TRUE if the field should be preserved, %FALSE if it +should be removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="field_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">the #GQuark of the field name</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">the #GValue of the field</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="StructureForeachFunc" c:type="GstStructureForeachFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">A function that will be called in gst_structure_foreach(). The function may +not modify @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">%TRUE if the foreach operation should continue, %FALSE if +the foreach operation should stop with %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="field_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">the #GQuark of the field name</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">the #GValue of the field</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="StructureMapFunc" c:type="GstStructureMapFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">A function that will be called in gst_structure_map_in_place(). The function +may modify @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">%TRUE if the map operation should continue, %FALSE if +the map operation should stop with %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="field_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">the #GQuark of the field name</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">the #GValue of the field</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="SystemClock" c:symbol-prefix="system_clock" c:type="GstSystemClock" parent="Clock" glib:type-name="GstSystemClock" glib:get-type="gst_system_clock_get_type" glib:type-struct="SystemClockClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.c">The GStreamer core provides a GstSystemClock based on the system time. +Asynchronous callbacks are scheduled from an internal thread. + +Clock implementors are encouraged to subclass this systemclock as it +implements the async notification. + +Subclasses can however override all of the important methods for sync and +async notifications to implement their own callback methods or blocking +wait operations.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <function name="obtain" c:identifier="gst_system_clock_obtain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.c">Get a handle to the default system clock. The refcount of the +clock will be increased so you need to unref the clock after +usage.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.c">the default clock. + +MT safe.</doc> + <type name="Clock" c:type="GstClock*"/> + </return-value> + </function> + <function name="set_default" c:identifier="gst_system_clock_set_default" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.c">Sets the default system clock that can be obtained with +gst_system_clock_obtain(). + +This is mostly used for testing and debugging purposes when you +want to have control over the time reported by the default system +clock. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="new_clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsystemclock.c">a #GstClock</doc> + <type name="Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </function> + <property name="clock-type" writable="1" transfer-ownership="none"> + <type name="ClockType"/> + </property> + <field name="clock"> + <type name="Clock" c:type="GstClock"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="SystemClockPrivate" c:type="GstSystemClockPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="SystemClockClass" c:type="GstSystemClockClass" glib:is-gtype-struct-for="SystemClock"> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + <field name="parent_class"> + <type name="ClockClass" c:type="GstClockClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="SystemClockPrivate" c:type="GstSystemClockPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gstsystemclock.h"/> + </record> + <constant name="TAG_ALBUM" value="album" c:type="GST_TAG_ALBUM"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">album containing this data (string) + +The album name as it should be displayed, e.g. 'The Jazz Guitar'</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ALBUM_ARTIST" value="album-artist" c:type="GST_TAG_ALBUM_ARTIST"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">The artist of the entire album, as it should be displayed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ALBUM_ARTIST_SORTNAME" value="album-artist-sortname" c:type="GST_TAG_ALBUM_ARTIST_SORTNAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">The artist of the entire album, as it should be sorted.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ALBUM_GAIN" value="replaygain-album-gain" c:type="GST_TAG_ALBUM_GAIN"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">album gain in db (double)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ALBUM_PEAK" value="replaygain-album-peak" c:type="GST_TAG_ALBUM_PEAK"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">peak of the album (double)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ALBUM_SORTNAME" value="album-sortname" c:type="GST_TAG_ALBUM_SORTNAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">album containing this data, as used for sorting (string) + +The album name as it should be sorted, e.g. 'Jazz Guitar, The'</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ALBUM_VOLUME_COUNT" value="album-disc-count" c:type="GST_TAG_ALBUM_VOLUME_COUNT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">count of discs inside collection this disc belongs to (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ALBUM_VOLUME_NUMBER" value="album-disc-number" c:type="GST_TAG_ALBUM_VOLUME_NUMBER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">disc number inside a collection (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_APPLICATION_DATA" value="application-data" c:type="GST_TAG_APPLICATION_DATA"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Arbitrary application data (sample) + +Some formats allow applications to add their own arbitrary data +into files. This data is application dependent.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_APPLICATION_NAME" value="application-name" c:type="GST_TAG_APPLICATION_NAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Name of the application used to create the media (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ARTIST" value="artist" c:type="GST_TAG_ARTIST"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">person(s) responsible for the recording (string) + +The artist name as it should be displayed, e.g. 'Jimi Hendrix' or +'The Guitar Heroes'</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ARTIST_SORTNAME" value="artist-sortname" c:type="GST_TAG_ARTIST_SORTNAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">person(s) responsible for the recording, as used for sorting (string) + +The artist name as it should be sorted, e.g. 'Hendrix, Jimi' or +'Guitar Heroes, The'</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ATTACHMENT" value="attachment" c:type="GST_TAG_ATTACHMENT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">generic file attachment (sample) (sample taglist should specify the content +type and if possible set "filename" to the file name of the +attachment)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_AUDIO_CODEC" value="audio-codec" c:type="GST_TAG_AUDIO_CODEC"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">codec the audio data is stored in (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_BEATS_PER_MINUTE" value="beats-per-minute" c:type="GST_TAG_BEATS_PER_MINUTE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">number of beats per minute in audio (double)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_BITRATE" value="bitrate" c:type="GST_TAG_BITRATE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">exact or average bitrate in bits/s (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_CODEC" value="codec" c:type="GST_TAG_CODEC"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">codec the data is stored in (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_COMMENT" value="comment" c:type="GST_TAG_COMMENT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">free text commenting the data (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_COMPOSER" value="composer" c:type="GST_TAG_COMPOSER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">person(s) who composed the recording (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_COMPOSER_SORTNAME" value="composer-sortname" c:type="GST_TAG_COMPOSER_SORTNAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">The composer's name, used for sorting (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_CONDUCTOR" value="conductor" c:type="GST_TAG_CONDUCTOR" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">conductor/performer refinement (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_CONTACT" value="contact" c:type="GST_TAG_CONTACT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">contact information (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_CONTAINER_FORMAT" value="container-format" c:type="GST_TAG_CONTAINER_FORMAT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">container format the data is stored in (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_COPYRIGHT" value="copyright" c:type="GST_TAG_COPYRIGHT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">copyright notice of the data (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_COPYRIGHT_URI" value="copyright-uri" c:type="GST_TAG_COPYRIGHT_URI"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">URI to location where copyright details can be found (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_DATE" value="date" c:type="GST_TAG_DATE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">date the data was created (#GDate structure)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_DATE_TIME" value="datetime" c:type="GST_TAG_DATE_TIME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">date and time the data was created (#GstDateTime structure)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_DESCRIPTION" value="description" c:type="GST_TAG_DESCRIPTION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">short text describing the content of the data (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_DEVICE_MANUFACTURER" value="device-manufacturer" c:type="GST_TAG_DEVICE_MANUFACTURER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Manufacturer of the device used to create the media (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_DEVICE_MODEL" value="device-model" c:type="GST_TAG_DEVICE_MODEL"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Model of the device used to create the media (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_DURATION" value="duration" c:type="GST_TAG_DURATION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">length in GStreamer time units (nanoseconds) (unsigned 64-bit integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ENCODED_BY" value="encoded-by" c:type="GST_TAG_ENCODED_BY"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">name of the person or organisation that encoded the file. May contain a +copyright message if the person or organisation also holds the copyright +(string) + +Note: do not use this field to describe the encoding application. Use +#GST_TAG_APPLICATION_NAME or #GST_TAG_COMMENT for that.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ENCODER" value="encoder" c:type="GST_TAG_ENCODER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">encoder used to encode this stream (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ENCODER_VERSION" value="encoder-version" c:type="GST_TAG_ENCODER_VERSION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">version of the encoder used to encode this stream (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_EXTENDED_COMMENT" value="extended-comment" c:type="GST_TAG_EXTENDED_COMMENT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">key/value text commenting the data (string) + +Must be in the form of 'key=comment' or +'key[lc]=comment' where 'lc' is an ISO-639 +language code. + +This tag is used for unknown Vorbis comment tags, +unknown APE tags and certain ID3v2 comment fields.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="TAG_FLAG_IS_VALID" c:identifier="GST_TAG_FLAG_IS_VALID" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <parameters> + <parameter name="flag"> + </parameter> + </parameters> + </function-macro> + <constant name="TAG_GENRE" value="genre" c:type="GST_TAG_GENRE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">genre this data belongs to (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_CAPTURE_DIRECTION" value="geo-location-capture-direction" c:type="GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Indicates the direction the device is pointing to when capturing +a media. It is represented as degrees in floating point representation, +0 means the geographic north, and increases clockwise (double from 0 to 360) + +See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_CITY" value="geo-location-city" c:type="GST_TAG_GEO_LOCATION_CITY"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">The city (english name) where the media has been produced (string).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_COUNTRY" value="geo-location-country" c:type="GST_TAG_GEO_LOCATION_COUNTRY"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">The country (english name) where the media has been produced (string).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_ELEVATION" value="geo-location-elevation" c:type="GST_TAG_GEO_LOCATION_ELEVATION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">geo elevation of where the media has been recorded or produced in meters +according to WGS84 (zero is average sea level) (double).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_HORIZONTAL_ERROR" value="geo-location-horizontal-error" c:type="GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Represents the expected error on the horizontal positioning in +meters (double).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_LATITUDE" value="geo-location-latitude" c:type="GST_TAG_GEO_LOCATION_LATITUDE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">geo latitude location of where the media has been recorded or produced in +degrees according to WGS84 (zero at the equator, negative values for southern +latitudes) (double).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_LONGITUDE" value="geo-location-longitude" c:type="GST_TAG_GEO_LOCATION_LONGITUDE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">geo longitude location of where the media has been recorded or produced in +degrees according to WGS84 (zero at the prime meridian in Greenwich/UK, +negative values for western longitudes). (double).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_MOVEMENT_DIRECTION" value="geo-location-movement-direction" c:type="GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Indicates the movement direction of the device performing the capture +of a media. It is represented as degrees in floating point representation, +0 means the geographic north, and increases clockwise (double from 0 to 360) + +See also #GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_MOVEMENT_SPEED" value="geo-location-movement-speed" c:type="GST_TAG_GEO_LOCATION_MOVEMENT_SPEED"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Speed of the capturing device when performing the capture. +Represented in m/s. (double) + +See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_NAME" value="geo-location-name" c:type="GST_TAG_GEO_LOCATION_NAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">human readable descriptive location of where the media has been recorded or +produced. (string).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GEO_LOCATION_SUBLOCATION" value="geo-location-sublocation" c:type="GST_TAG_GEO_LOCATION_SUBLOCATION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">A location 'smaller' than GST_TAG_GEO_LOCATION_CITY that specifies better +where the media has been produced. (e.g. the neighborhood) (string). + +This tag has been added as this is how it is handled/named in XMP's +Iptc4xmpcore schema.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_GROUPING" value="grouping" c:type="GST_TAG_GROUPING"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Groups together media that are related and spans multiple tracks. An +example are multiple pieces of a concerto. (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_HOMEPAGE" value="homepage" c:type="GST_TAG_HOMEPAGE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Homepage for this media (i.e. artist or movie homepage) (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_IMAGE" value="image" c:type="GST_TAG_IMAGE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">image (sample) (sample taglist should specify the content type and preferably +also set "image-type" field as `GstTagImageType`)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_IMAGE_ORIENTATION" value="image-orientation" c:type="GST_TAG_IMAGE_ORIENTATION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Represents the 'Orientation' tag from EXIF. Defines how the image +should be rotated and mirrored for display. (string) + +This tag has a predefined set of allowed values: + "rotate-0" + "rotate-90" + "rotate-180" + "rotate-270" + "flip-rotate-0" + "flip-rotate-90" + "flip-rotate-180" + "flip-rotate-270" + +The naming is adopted according to a possible transformation to perform +on the image to fix its orientation, obviously equivalent operations will +yield the same result. + +Rotations indicated by the values are in clockwise direction and +'flip' means an horizontal mirroring.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_INTERPRETED_BY" value="interpreted-by" c:type="GST_TAG_INTERPRETED_BY" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Information about the people behind a remix and similar +interpretations of another existing piece (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ISRC" value="isrc" c:type="GST_TAG_ISRC"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">International Standard Recording Code - see http://www.ifpi.org/isrc/ (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_KEYWORDS" value="keywords" c:type="GST_TAG_KEYWORDS"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">comma separated keywords describing the content (string).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_LANGUAGE_CODE" value="language-code" c:type="GST_TAG_LANGUAGE_CODE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">ISO-639-2 or ISO-639-1 code for the language the content is in (string) + +There is utility API in libgsttag in gst-plugins-base to obtain a translated +language name from the language code: `gst_tag_get_language_name()`</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_LANGUAGE_NAME" value="language-name" c:type="GST_TAG_LANGUAGE_NAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Name of the language the content is in (string) + +Free-form name of the language the content is in, if a language code +is not available. This tag should not be set in addition to a language +code. It is undefined what language or locale the language name is in.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_LICENSE" value="license" c:type="GST_TAG_LICENSE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">license of data (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_LICENSE_URI" value="license-uri" c:type="GST_TAG_LICENSE_URI"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">URI to location where license details can be found (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="TAG_LIST" c:identifier="GST_TAG_LIST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <parameters> + <parameter name="x"> + </parameter> + </parameters> + </function-macro> + <constant name="TAG_LOCATION" value="location" c:type="GST_TAG_LOCATION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Origin of media as a URI (location, where the original of the file or stream +is hosted) (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_LYRICS" value="lyrics" c:type="GST_TAG_LYRICS"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">The lyrics of the media (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_MAXIMUM_BITRATE" value="maximum-bitrate" c:type="GST_TAG_MAXIMUM_BITRATE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">maximum bitrate in bits/s (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_MIDI_BASE_NOTE" value="midi-base-note" c:type="GST_TAG_MIDI_BASE_NOTE" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">[Midi note number](http://en.wikipedia.org/wiki/Note#Note_designation_in_accordance_with_octave_name) +of the audio track. This is useful for sample instruments and in particular +for multi-samples.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_MINIMUM_BITRATE" value="minimum-bitrate" c:type="GST_TAG_MINIMUM_BITRATE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">minimum bitrate in bits/s (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="TAG_MODE_IS_VALID" c:identifier="GST_TAG_MODE_IS_VALID" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <parameters> + <parameter name="mode"> + </parameter> + </parameters> + </function-macro> + <constant name="TAG_NOMINAL_BITRATE" value="nominal-bitrate" c:type="GST_TAG_NOMINAL_BITRATE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">nominal bitrate in bits/s (unsigned integer). The actual bitrate might be +different from this target bitrate.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_ORGANIZATION" value="organization" c:type="GST_TAG_ORGANIZATION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">organization (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_PERFORMER" value="performer" c:type="GST_TAG_PERFORMER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">person(s) performing (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_PREVIEW_IMAGE" value="preview-image" c:type="GST_TAG_PREVIEW_IMAGE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">image that is meant for preview purposes, e.g. small icon-sized version +(sample) (sample taglist should specify the content type)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_PRIVATE_DATA" value="private-data" c:type="GST_TAG_PRIVATE_DATA" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Any private data that may be contained in tags (sample). + +It is represented by #GstSample in which #GstBuffer contains the +binary data and the sample's info #GstStructure may contain any +extra information that identifies the origin or meaning of the data. + +Private frames in ID3v2 tags ('PRIV' frames) will be represented +using this tag, in which case the GstStructure will be named +"ID3PrivateFrame" and contain a field named "owner" of type string +which contains the owner-identification string from the tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_PUBLISHER" value="publisher" c:type="GST_TAG_PUBLISHER" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Name of the label or publisher (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_REFERENCE_LEVEL" value="replaygain-reference-level" c:type="GST_TAG_REFERENCE_LEVEL"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">reference level of track and album gain values (double)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_SERIAL" value="serial" c:type="GST_TAG_SERIAL"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">serial number of track (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="TAG_SETTER" c:identifier="GST_TAG_SETTER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TAG_SETTER_GET_INTERFACE" c:identifier="GST_TAG_SETTER_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="TAG_SHOW_EPISODE_NUMBER" value="show-episode-number" c:type="GST_TAG_SHOW_EPISODE_NUMBER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Number of the episode within a season/show (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_SHOW_NAME" value="show-name" c:type="GST_TAG_SHOW_NAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Name of the show, used for displaying (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_SHOW_SEASON_NUMBER" value="show-season-number" c:type="GST_TAG_SHOW_SEASON_NUMBER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Number of the season of a show/series (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_SHOW_SORTNAME" value="show-sortname" c:type="GST_TAG_SHOW_SORTNAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Name of the show, used for sorting (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_SUBTITLE_CODEC" value="subtitle-codec" c:type="GST_TAG_SUBTITLE_CODEC"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">codec/format the subtitle data is stored in (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_TITLE" value="title" c:type="GST_TAG_TITLE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">commonly used title (string) + +The title as it should be displayed, e.g. 'The Doll House'</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_TITLE_SORTNAME" value="title-sortname" c:type="GST_TAG_TITLE_SORTNAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">commonly used title, as used for sorting (string) + +The title as it should be sorted, e.g. 'Doll House, The'</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_TRACK_COUNT" value="track-count" c:type="GST_TAG_TRACK_COUNT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">count of tracks inside collection this track belongs to (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_TRACK_GAIN" value="replaygain-track-gain" c:type="GST_TAG_TRACK_GAIN"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">track gain in db (double)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_TRACK_NUMBER" value="track-number" c:type="GST_TAG_TRACK_NUMBER"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">track number inside a collection (unsigned integer)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_TRACK_PEAK" value="replaygain-track-peak" c:type="GST_TAG_TRACK_PEAK"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">peak of the track (double)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_USER_RATING" value="user-rating" c:type="GST_TAG_USER_RATING"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Rating attributed by a person (likely the application user). +The higher the value, the more the user likes this media +(unsigned int from 0 to 100)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_VERSION" value="version" c:type="GST_TAG_VERSION"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">version of this data (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="TAG_VIDEO_CODEC" value="video-codec" c:type="GST_TAG_VIDEO_CODEC"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">codec the video data is stored in (string)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="TASK" c:identifier="GST_TASK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_BROADCAST" c:identifier="GST_TASK_BROADCAST" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Send a broadcast signal to all waiting task conds</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Task to broadcast</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_CAST" c:identifier="GST_TASK_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_CLASS" c:identifier="GST_TASK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="tclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_GET_CLASS" c:identifier="GST_TASK_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_GET_COND" c:identifier="GST_TASK_GET_COND" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Get access to the cond of the task.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Task to get the cond of</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_GET_LOCK" c:identifier="GST_TASK_GET_LOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Get access to the task lock.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Task to get the lock of</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_POOL" c:identifier="GST_TASK_POOL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pool"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_POOL_CAST" c:identifier="GST_TASK_POOL_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pool"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_POOL_CLASS" c:identifier="GST_TASK_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pclass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_POOL_GET_CLASS" c:identifier="GST_TASK_POOL_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <parameters> + <parameter name="pool"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_SIGNAL" c:identifier="GST_TASK_SIGNAL" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Signal the task cond</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Task to signal</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_STATE" c:identifier="GST_TASK_STATE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Get access to the state of the task.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Task to get the state of</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TASK_WAIT" c:identifier="GST_TASK_WAIT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Wait for the task cond to be signalled</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <parameters> + <parameter name="task"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Task to wait for</doc> + </parameter> + </parameters> + </function-macro> + <constant name="TIMEP_FORMAT" value="paT" c:type="GST_TIMEP_FORMAT" version="1.18" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.h">printf format type used to debug GStreamer ClockTime pointers. 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() to pretty-print #GstClockTime pointers. This can +only be used on pointers to GstClockTime values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="TIMESPEC_TO_TIME" c:identifier="GST_TIMESPEC_TO_TIME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Converts a struct timespec (see `man pselect`) to a #GstClockTime.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="ts"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the timespec to convert</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMEVAL_TO_TIME" c:identifier="GST_TIMEVAL_TO_TIME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Converts a GTimeVal to a #GstClockTime.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="tv"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the timeval to convert</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIME_ARGS" c:identifier="GST_TIME_ARGS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Formats @t for the #GST_TIME_FORMAT format string. Note: @t will be +evaluated more than once.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="t"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">a #GstClockTime</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIME_AS_MSECONDS" c:identifier="GST_TIME_AS_MSECONDS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Converts a #GstClockTime to milliseconds (1/1000 of a second).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the time</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIME_AS_NSECONDS" c:identifier="GST_TIME_AS_NSECONDS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Converts a #GstClockTime to nanoseconds (1/1000000000 of a second).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the time</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIME_AS_SECONDS" c:identifier="GST_TIME_AS_SECONDS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Converts a #GstClockTime to seconds.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the time</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIME_AS_USECONDS" c:identifier="GST_TIME_AS_USECONDS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Converts a #GstClockTime to microseconds (1/1000000 of a second).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">the time</doc> + </parameter> + </parameters> + </function-macro> + <constant name="TIME_FORMAT" value="u:%02u:%02u.%09u" c:type="GST_TIME_FORMAT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">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. + +Example: + +``` C +printf("%" GST_TIME_FORMAT "\n", GST_TIME_ARGS(ts)); +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="TIME_TO_TIMESPEC" c:identifier="GST_TIME_TO_TIMESPEC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Converts a #GstClockTime to a struct timespec (see `man pselect`)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="t"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The #GstClockTime to convert</doc> + </parameter> + <parameter name="ts"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The target timespec</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIME_TO_TIMEVAL" c:identifier="GST_TIME_TO_TIMEVAL" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Converts a #GstClockTime to a GTimeVal + +> on 32-bit systems, a timeval has a range of only 2^32 - 1 seconds, +> which is about 68 years. Expect trouble if you want to schedule stuff +> in your pipeline for 2038.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <parameters> + <parameter name="t"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The #GstClockTime to convert</doc> + </parameter> + <parameter name="tv"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">The target timeval</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TOC_ENTRY_TYPE_IS_ALTERNATIVE" c:identifier="GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">Checks if @entry_type indicates that its #GstTocEntry is an alternative.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="entry_type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">The #GstTocEntryType from a #GstTocEntry</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TOC_ENTRY_TYPE_IS_SEQUENCE" c:identifier="GST_TOC_ENTRY_TYPE_IS_SEQUENCE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">Checks if @entry_type indicates that its #GstTocEntry is a sequence.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="entry_type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">The #GstTocEntryType from a #GstTocEntry</doc> + </parameter> + </parameters> + </function-macro> + <constant name="TOC_REPEAT_COUNT_INFINITE" value="-1" c:type="GST_TOC_REPEAT_COUNT_INFINITE" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">Special value for the repeat_count set in gst_toc_entry_set_loop() or +returned by gst_toc_entry_set_loop() to indicate infinite looping.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="TOC_SETTER" c:identifier="GST_TOC_SETTER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttocsetter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TOC_SETTER_GET_IFACE" c:identifier="GST_TOC_SETTER_GET_IFACE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttocsetter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER" c:identifier="GST_TRACER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_CAST" c:identifier="GST_TRACER_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_CLASS" c:identifier="GST_TRACER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_FACTORY" c:identifier="GST_TRACER_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_FACTORY_CAST" c:identifier="GST_TRACER_FACTORY_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_FACTORY_CLASS" c:identifier="GST_TRACER_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_FACTORY_GET_CLASS" c:identifier="GST_TRACER_FACTORY_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_GET_CLASS" c:identifier="GST_TRACER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_RECORD" c:identifier="GST_TRACER_RECORD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_RECORD_CAST" c:identifier="GST_TRACER_RECORD_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_RECORD_CLASS" c:identifier="GST_TRACER_RECORD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACER_RECORD_GET_CLASS" c:identifier="GST_TRACER_RECORD_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TYPE_FIND_FACTORY" c:identifier="GST_TYPE_FIND_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TYPE_FIND_FACTORY_CLASS" c:identifier="GST_TYPE_FIND_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TYPE_FIND_FACTORY_GET_CLASS" c:identifier="GST_TYPE_FIND_FACTORY_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TYPE_FIND_REGISTER" c:identifier="GST_TYPE_FIND_REGISTER" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">This macro can be used to register a type find into a #GstPlugin. +This method will be usually called in the plugin init function +but can also be called with a NULL plugin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <parameters> + <parameter name="t_f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The type find name in lower case, with words separated by '_'.</doc> + </parameter> + <parameter name="plugin"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The #GstPlugin where to register the type find.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TYPE_FIND_REGISTER_DECLARE" c:identifier="GST_TYPE_FIND_REGISTER_DECLARE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">This macro can be used to declare a new type find. +It has to be used in combination with #GST_TYPE_FIND_REGISTER_DEFINE macro +and must be placed outside any block to declare the type find registration +function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <parameters> + <parameter name="t_f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The type find name in lower case, with words separated by '_'.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TYPE_FIND_REGISTER_DEFINE" c:identifier="GST_TYPE_FIND_REGISTER_DEFINE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">A convenience macro to define the entry point of a +type find `gst_type_find_register_*(GstPlugin* plugin)`.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <parameters> + <parameter name="t_f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The type find name in lower case, with words separated by '_'. +Used to generate `gst_type_find_register_*(GstPlugin* plugin)`.</doc> + </parameter> + <parameter name="t_f_n"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The public name of the type find</doc> + </parameter> + <parameter name="r"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The #GstRank of the type find (higher rank means more importance when autoplugging, see #GstRank)</doc> + </parameter> + <parameter name="func"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The #GstTypeFindFunction to use</doc> + </parameter> + <parameter name="extensions"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">Optional comma-separated list of extensions + that could belong to this type</doc> + </parameter> + <parameter name="possible_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">Optionally the caps that could be returned when typefinding + succeeds</doc> + </parameter> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">Optional user data. This user data must be available until the plugin + is unloaded.</doc> + </parameter> + <parameter name="data_notify"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">a #GDestroyNotify that will be called on @data when the plugin + is unloaded.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TYPE_FIND_REGISTER_DEFINE_CUSTOM" c:identifier="GST_TYPE_FIND_REGISTER_DEFINE_CUSTOM" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">A convenience macro to define the entry point of a +type find `gst_type_find_register_*(GstPlugin* plugin)` which uses +register_func as the main registration method for the type find. +As an example, you may define the type find named "custom-typefind" +as following using `type_find_register_custom`: + +``` +GST_TYPE_FIND_REGISTER_DEFINE_CUSTOM (plugin, type_find_register_custom) +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <parameters> + <parameter name="type_find"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The type find name in lower case, with words separated by '_'. +Used to generate `gst_type_find_register_*(GstPlugin* plugin)`.</doc> + </parameter> + <parameter name="register_func"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">pointer to a method with the format: `gboolean register_func (GstPlugin* plugin);`</doc> + </parameter> + </parameters> + </function-macro> + <enumeration name="TagFlag" glib:type-name="GstTagFlag" glib:get-type="gst_tag_flag_get_type" c:type="GstTagFlag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Extra tag flags used when registering tags.</doc> + <member name="undefined" value="0" c:identifier="GST_TAG_FLAG_UNDEFINED" glib:nick="undefined"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">undefined flag</doc> + </member> + <member name="meta" value="1" c:identifier="GST_TAG_FLAG_META" glib:nick="meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">tag is meta data</doc> + </member> + <member name="encoded" value="2" c:identifier="GST_TAG_FLAG_ENCODED" glib:nick="encoded"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">tag is encoded</doc> + </member> + <member name="decoded" value="3" c:identifier="GST_TAG_FLAG_DECODED" glib:nick="decoded"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">tag is decoded</doc> + </member> + <member name="count" value="4" c:identifier="GST_TAG_FLAG_COUNT" glib:nick="count"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">number of tag flags</doc> + </member> + </enumeration> + <callback name="TagForeachFunc" c:type="GstTagForeachFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">A function that will be called in gst_tag_list_foreach(). The function may +not modify the tag list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">the #GstTagList</doc> + <type name="TagList" c:type="const GstTagList*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">a name of a tag in @list</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="TagList" c:type="GstTagList" glib:type-name="GstTagList" glib:get-type="gst_tag_list_get_type" c:symbol-prefix="tag_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">List of tags and values used to describe media metadata. + +Strings in structures must be ASCII or UTF-8 encoded. Other encodings are +not allowed. Strings must not be empty or %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <field name="mini_object" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">the parent type</doc> + <type name="MiniObject" c:type="GstMiniObject"/> + </field> + <constructor name="new" c:identifier="gst_tag_list_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Creates a new taglist and appends the values for the given tags. It expects +tag-value pairs like gst_tag_list_add(), and a %NULL terminator after the +last pair. The type of the values is implicit and is documented in the API +reference, but can also be queried at runtime with gst_tag_get_type(). It +is an error to pass a value of a type not matching the tag type into this +function. The tag list will make copies of any arguments passed +(e.g. strings, buffers). + +After creation you might also want to set a #GstTagScope on the returned +taglist to signal if the contained tags are global or stream tags. By +default stream scope is assumes. See gst_tag_list_set_scope(). + +Free-function: gst_tag_list_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a new #GstTagList. Free with gst_tag_list_unref() + when no longer needed.</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%NULL-terminated list of values to set</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <constructor name="new_empty" c:identifier="gst_tag_list_new_empty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Creates a new empty GstTagList. + +Free-function: gst_tag_list_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">An empty tag list</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + </constructor> + <constructor name="new_from_string" c:identifier="gst_tag_list_new_from_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Deserializes a tag list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a new #GstTagList, or %NULL in case of an +error.</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a string created with gst_tag_list_to_string()</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_valist" c:identifier="gst_tag_list_new_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Just like gst_tag_list_new(), only that it takes a va_list argument. +Useful mostly for language bindings. + +Free-function: gst_tag_list_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a new #GstTagList. Free with gst_tag_list_unref() + when no longer needed.</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag / value pairs to set</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </constructor> + <method name="add" c:identifier="gst_tag_list_add" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Sets the values for the given tags using the specified mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to set tags in</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%NULL-terminated list of values to set</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="add_valist" c:identifier="gst_tag_list_add_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Sets the values for the given tags using the specified mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to set tags in</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag / value pairs to set</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="add_valist_values" c:identifier="gst_tag_list_add_valist_values" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Sets the GValues for the given tags using the specified mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to set tags in</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag / GValue pairs to set</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="add_value" c:identifier="gst_tag_list_add_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Sets the GValue for a given tag using the specified mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to set tags in</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">GValue for this tag</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="add_values" c:identifier="gst_tag_list_add_values" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Sets the GValues for the given tags using the specified mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to set tags in</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">GValues to set</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_tag_list_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Creates a new #GstTagList as a copy of the old @taglist. The new taglist +will have a refcount of 1, owned by the caller, and will be writable as +a result. + +Note that this function is the semantic equivalent of a gst_tag_list_ref() +followed by a gst_tag_list_make_writable(). If you only want to hold on to a +reference to the data, you should use gst_tag_list_ref(). + +When you are finished with the taglist, call gst_tag_list_unref() on it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the new #GstTagList</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="taglist" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList.</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + </parameters> + </method> + <method name="foreach" c:identifier="gst_tag_list_foreach"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Calls the given function for each tag inside the tag list. Note that if there +is no tag, the function won't be called at all.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to iterate over</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">function to be called for each tag</doc> + <type name="TagForeachFunc" c:type="GstTagForeachFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">user specified data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="get_boolean" c:identifier="gst_tag_list_get_boolean"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, merging multiple values +into one if multiple values are associated with the tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="get_boolean_index" c:identifier="gst_tag_list_get_boolean_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="get_date" c:identifier="gst_tag_list_get_date"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the first date for the given tag in the taglist into the variable +pointed to by @value. Free the date with g_date_free() when it is no longer +needed. + +Free-function: g_date_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a date was copied, %FALSE if the tag didn't exist in the + given list or if it was %NULL.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">address of a GDate pointer + variable to store the result into</doc> + <type name="GLib.Date" c:type="GDate**"/> + </parameter> + </parameters> + </method> + <method name="get_date_index" c:identifier="gst_tag_list_get_date_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the date that is at the given index for the given tag in the given +list and copies it into the variable pointed to by @value. Free the date +with g_date_free() when it is no longer needed. + +Free-function: g_date_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list or if it was %NULL.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="GLib.Date" c:type="GDate**"/> + </parameter> + </parameters> + </method> + <method name="get_date_time" c:identifier="gst_tag_list_get_date_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the first datetime for the given tag in the taglist into the variable +pointed to by @value. Unref the date with gst_date_time_unref() when +it is no longer needed. + +Free-function: gst_date_time_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a datetime was copied, %FALSE if the tag didn't exist in + the given list or if it was %NULL.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">address of a #GstDateTime + pointer variable to store the result into</doc> + <type name="DateTime" c:type="GstDateTime**"/> + </parameter> + </parameters> + </method> + <method name="get_date_time_index" c:identifier="gst_tag_list_get_date_time_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the datetime that is at the given index for the given tag in the given +list and copies it into the variable pointed to by @value. Unref the datetime +with gst_date_time_unref() when it is no longer needed. + +Free-function: gst_date_time_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list or if it was %NULL.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="DateTime" c:type="GstDateTime**"/> + </parameter> + </parameters> + </method> + <method name="get_double" c:identifier="gst_tag_list_get_double"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, merging multiple values +into one if multiple values are associated with the tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="get_double_index" c:identifier="gst_tag_list_get_double_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="get_float" c:identifier="gst_tag_list_get_float"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, merging multiple values +into one if multiple values are associated with the tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gfloat" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="get_float_index" c:identifier="gst_tag_list_get_float_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gfloat" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="get_int" c:identifier="gst_tag_list_get_int"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, merging multiple values +into one if multiple values are associated with the tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_int64" c:identifier="gst_tag_list_get_int64"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, merging multiple values +into one if multiple values are associated with the tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_int64_index" c:identifier="gst_tag_list_get_int64_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_int_index" c:identifier="gst_tag_list_get_int_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_pointer" c:identifier="gst_tag_list_get_pointer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, merging multiple values +into one if multiple values are associated with the tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + </parameters> + </method> + <method name="get_pointer_index" c:identifier="gst_tag_list_get_pointer_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + </parameters> + </method> + <method name="get_sample" c:identifier="gst_tag_list_get_sample"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the first sample for the given tag in the taglist into the variable +pointed to by @sample. Free the sample with gst_sample_unref() when it is +no longer needed. You can retrieve the buffer from the sample using +gst_sample_get_buffer() and the associated caps (if any) with +gst_sample_get_caps(). + +Free-function: gst_sample_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a sample was returned, %FALSE if the tag didn't exist in + the given list or if it was %NULL.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="sample" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">address of a GstSample + pointer variable to store the result into</doc> + <type name="Sample" c:type="GstSample**"/> + </parameter> + </parameters> + </method> + <method name="get_sample_index" c:identifier="gst_tag_list_get_sample_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the sample that is at the given index for the given tag in the given +list and copies it into the variable pointed to by @sample. Free the sample +with gst_sample_unref() when it is no longer needed. You can retrieve the +buffer from the sample using gst_sample_get_buffer() and the associated +caps (if any) with gst_sample_get_caps(). + +Free-function: gst_sample_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a sample was copied, %FALSE if the tag didn't exist in the + given list or if it was %NULL.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="sample" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">address of a GstSample + pointer variable to store the result into</doc> + <type name="Sample" c:type="GstSample**"/> + </parameter> + </parameters> + </method> + <method name="get_scope" c:identifier="gst_tag_list_get_scope"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the scope of @list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">The scope of @list</doc> + <type name="TagScope" c:type="GstTagScope"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_string" c:identifier="gst_tag_list_get_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, possibly merging +multiple values into one if multiple values are associated with the tag. + +Use gst_tag_list_get_string_index (list, tag, 0, value) if you want +to retrieve the first string associated with this tag unmodified. + +The resulting string in @value will be in UTF-8 encoding and should be +freed by the caller using g_free when no longer needed. The +returned string is also guaranteed to be non-%NULL and non-empty. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="get_string_index" c:identifier="gst_tag_list_get_string_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list. + +The resulting string in @value will be in UTF-8 encoding and should be +freed by the caller using g_free when no longer needed. The +returned string is also guaranteed to be non-%NULL and non-empty. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="get_tag_size" c:identifier="gst_tag_list_get_tag_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Checks how many value are stored in this tag list for the given tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">The number of tags stored</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a taglist</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the tag to query</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_uint" c:identifier="gst_tag_list_get_uint"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, merging multiple values +into one if multiple values are associated with the tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_uint64" c:identifier="gst_tag_list_get_uint64"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, merging multiple values +into one if multiple values are associated with the tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="get_uint64_index" c:identifier="gst_tag_list_get_uint64_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="get_uint_index" c:identifier="gst_tag_list_get_uint_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_value_index" c:identifier="gst_tag_list_get_value_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the value that is at the given index for the given tag in the given +list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">The GValue for the specified + entry or %NULL if the tag wasn't available or the tag + doesn't have as many entries</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="insert" c:identifier="gst_tag_list_insert"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Inserts the tags of the @from list into the first list using the given mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="into" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to merge into</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + <parameter name="from" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to merge from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + </parameters> + </method> + <method name="is_empty" c:identifier="gst_tag_list_is_empty"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Checks if the given taglist is empty.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE if the taglist is empty, otherwise %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">A #GstTagList.</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_equal" c:identifier="gst_tag_list_is_equal"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Checks if the two given taglists are equal.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE if the taglists are equal, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList.</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="list2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList.</doc> + <type name="TagList" c:type="const GstTagList*"/> + </parameter> + </parameters> + </method> + <method name="merge" c:identifier="gst_tag_list_merge"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Merges the two given lists into a new list. If one of the lists is %NULL, a +copy of the other is returned. If both lists are %NULL, %NULL is returned. + +Free-function: gst_tag_list_unref</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the new list</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="list1" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">first list to merge</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="list2" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">second list to merge</doc> + <type name="TagList" c:type="const GstTagList*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + </parameters> + </method> + <method name="n_tags" c:identifier="gst_tag_list_n_tags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Get the number of tags in @list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">The number of tags in @list.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">A #GstTagList.</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + </parameters> + </method> + <method name="nth_tag_name" c:identifier="gst_tag_list_nth_tag_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Get the name of the tag in @list at @index.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">The name of the tag at @index.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">A #GstTagList.</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the index</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_string_index" c:identifier="gst_tag_list_peek_string_index"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Peeks at the value that is at the given index for the given tag in the given +list. + +The resulting string in @value will be in UTF-8 encoding and doesn't need +to be freed by the caller. The returned string is also guaranteed to +be non-%NULL and non-empty.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was set, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">number of entry to read out</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">location for the result</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_tag_list_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Add a reference to a #GstTagList mini object. + +From this point on, until the caller calls gst_tag_list_unref() or +gst_tag_list_make_writable(), it is guaranteed that the taglist object will +not change. To use a #GstTagList object, you must always have a refcount on +it -- either the one made implicitly by e.g. gst_tag_list_new(), or via +taking one explicitly with this function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the same #GstTagList mini object.</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="taglist" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the #GstTagList to reference</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_tag" c:identifier="gst_tag_list_remove_tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Removes the given tag from the taglist.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to remove tag from</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to remove</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_scope" c:identifier="gst_tag_list_set_scope"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Sets the scope of @list to @scope. By default the scope +of a taglist is stream scope.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + <parameter name="scope" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">new scope for @list</doc> + <type name="TagScope" c:type="GstTagScope"/> + </parameter> + </parameters> + </method> + <method name="to_string" c:identifier="gst_tag_list_to_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Serializes a tag list to a string.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a newly-allocated string. + The string must be freed with g_free() when no longer + needed.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList</doc> + <type name="TagList" c:type="const GstTagList*"/> + </instance-parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_tag_list_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Unref a #GstTagList, and and free all its memory when the refcount reaches 0.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="taglist" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a #GstTagList.</doc> + <type name="TagList" c:type="GstTagList*"/> + </instance-parameter> + </parameters> + </method> + <function name="copy_value" c:identifier="gst_tag_list_copy_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, +merging multiple values into one if multiple values are associated +with the tag. +You must g_value_unset() the value after use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">uninitialized #GValue to copy into</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="replace" c:identifier="gst_tag_list_replace" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Modifies a pointer to a #GstTagList to point to a different #GstTagList. The +modification is done atomically (so this is useful for ensuring thread +safety in some cases), and the reference counts are updated appropriately +(the old tag list is unreffed, the new is reffed). + +Either @new_taglist or the #GstTagList pointed to by @old_taglist may be +%NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE if @new_taglist was different from @old_taglist</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_taglist" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">pointer to a pointer to a + #GstTagList to be replaced.</doc> + <type name="TagList" c:type="GstTagList**"/> + </parameter> + <parameter name="new_taglist" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">pointer to a #GstTagList that + will replace the tag list pointed to by @old_taglist.</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + </parameters> + </function> + <function name="take" c:identifier="gst_tag_list_take" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Modifies a pointer to a #GstTagList to point to a different #GstTagList. +This function is similar to gst_tag_list_replace() except that it takes +ownership of @new_taglist.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE if @new_taglist was different from @old_taglist</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_taglist" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">pointer to a pointer to a #GstTagList + to be replaced.</doc> + <type name="TagList" c:type="GstTagList**"/> + </parameter> + <parameter name="new_taglist" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">pointer to a #GstTagList that + will replace the taglist pointed to by @old_taglist.</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + </parameters> + </function> + </record> + <callback name="TagMergeFunc" c:type="GstTagMergeFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">A function for merging multiple values of a tag used when registering +tags.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">the destination #GValue</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">the source #GValue</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </callback> + <enumeration name="TagMergeMode" glib:type-name="GstTagMergeMode" glib:get-type="gst_tag_merge_mode_get_type" c:type="GstTagMergeMode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">The different tag merging modes are basically replace, overwrite and append, +but they can be seen from two directions. Given two taglists: (A) the tags +already in the element and (B) the ones that are supplied to the element ( +e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a +%GST_EVENT_TAG), how are these tags merged? +In the table below this is shown for the cases that a tag exists in the list +(A) or does not exists (!A) and combinations thereof. + +| merge mode | A + B | A + !B | !A + B | !A + !B | +| ----------- | ----- | ------ | ------ | ------- | +| REPLACE_ALL | B | ø | B | ø | +| REPLACE | B | A | B | ø | +| APPEND | A, B | A | B | ø | +| PREPEND | B, A | A | B | ø | +| KEEP | A | A | B | ø | +| KEEP_ALL | A | A | ø | ø |</doc> + <member name="undefined" value="0" c:identifier="GST_TAG_MERGE_UNDEFINED" glib:nick="undefined"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">undefined merge mode</doc> + </member> + <member name="replace_all" value="1" c:identifier="GST_TAG_MERGE_REPLACE_ALL" glib:nick="replace-all"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">replace all tags (clear list and append)</doc> + </member> + <member name="replace" value="2" c:identifier="GST_TAG_MERGE_REPLACE" glib:nick="replace"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">replace tags</doc> + </member> + <member name="append" value="3" c:identifier="GST_TAG_MERGE_APPEND" glib:nick="append"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">append tags</doc> + </member> + <member name="prepend" value="4" c:identifier="GST_TAG_MERGE_PREPEND" glib:nick="prepend"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">prepend tags</doc> + </member> + <member name="keep" value="5" c:identifier="GST_TAG_MERGE_KEEP" glib:nick="keep"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">keep existing tags</doc> + </member> + <member name="keep_all" value="6" c:identifier="GST_TAG_MERGE_KEEP_ALL" glib:nick="keep-all"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">keep all existing tags</doc> + </member> + <member name="count" value="7" c:identifier="GST_TAG_MERGE_COUNT" glib:nick="count"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">the number of merge modes</doc> + </member> + </enumeration> + <enumeration name="TagScope" glib:type-name="GstTagScope" glib:get-type="gst_tag_scope_get_type" c:type="GstTagScope"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">GstTagScope specifies if a taglist applies to the complete +medium or only to one single stream.</doc> + <member name="stream" value="0" c:identifier="GST_TAG_SCOPE_STREAM" glib:nick="stream"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">tags specific to this single stream</doc> + </member> + <member name="global" value="1" c:identifier="GST_TAG_SCOPE_GLOBAL" glib:nick="global"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">global tags for the complete medium</doc> + </member> + </enumeration> + <interface name="TagSetter" c:symbol-prefix="tag_setter" c:type="GstTagSetter" glib:type-name="GstTagSetter" glib:get-type="gst_tag_setter_get_type" glib:type-struct="TagSetterInterface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Element interface that allows setting of media metadata. + +Elements that support changing a stream's metadata will implement this +interface. Examples of such elements are 'vorbisenc', 'theoraenc' and +'id3v2mux'. + +If you just want to retrieve metadata in your application then all you +need to do is watch for tag messages on your pipeline's bus. This +interface is only for setting metadata, not for extracting it. To set tags +from the application, find tagsetter elements and set tags using e.g. +gst_tag_setter_merge_tags() or gst_tag_setter_add_tags(). Also consider +setting the #GstTagMergeMode that is used for tag events that arrive at the +tagsetter element (default mode is to keep existing tags). +The application should do that before the element goes to %GST_STATE_PAUSED. + +Elements implementing the #GstTagSetter interface often have to merge +any tags received from upstream and the tags set by the application via +the interface. This can be done like this: + +|[<!-- language="C" --> +GstTagMergeMode merge_mode; +const GstTagList *application_tags; +const GstTagList *event_tags; +GstTagSetter *tagsetter; +GstTagList *result; + +tagsetter = GST_TAG_SETTER (element); + +merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter); +application_tags = gst_tag_setter_get_tag_list (tagsetter); +event_tags = (const GstTagList *) element->event_tags; + +GST_LOG_OBJECT (tagsetter, "merging tags, merge mode = %d", merge_mode); +GST_LOG_OBJECT (tagsetter, "event tags: %" GST_PTR_FORMAT, event_tags); +GST_LOG_OBJECT (tagsetter, "set tags: %" GST_PTR_FORMAT, application_tags); + +result = gst_tag_list_merge (application_tags, event_tags, merge_mode); + +GST_LOG_OBJECT (tagsetter, "final tags: %" GST_PTR_FORMAT, result); +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <prerequisite name="Element"/> + <method name="add_tag_valist" c:identifier="gst_tag_setter_add_tag_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Adds the given tag / value pairs on the setter using the given merge mode. +The list must be terminated with %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">tag to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">tag / value pairs to set</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="add_tag_valist_values" c:identifier="gst_tag_setter_add_tag_valist_values" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Adds the given tag / GValue pairs on the setter using the given merge mode. +The list must be terminated with %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">tag to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">tag / GValue pairs to set</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="add_tag_value" c:identifier="gst_tag_setter_add_tag_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Adds the given tag / GValue pair on the setter using the given merge mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">tag to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">GValue to set for the tag</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="add_tag_values" c:identifier="gst_tag_setter_add_tag_values" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Adds the given tag / GValue pairs on the setter using the given merge mode. +The list must be terminated with %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">tag to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">more tag / GValue pairs to set</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="add_tags" c:identifier="gst_tag_setter_add_tags" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Adds the given tag / value pairs on the setter using the given merge mode. +The list must be terminated with %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">the mode to use</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">tag to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">more tag / value pairs to set</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="get_tag_list" c:identifier="gst_tag_setter_get_tag_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Returns the current list of tags the setter uses. The list should not be +modified or freed. + +This function is not thread-safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a current snapshot of the + taglist used in the setter or %NULL if none is used.</doc> + <type name="TagList" c:type="const GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tag_merge_mode" c:identifier="gst_tag_setter_get_tag_merge_mode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Queries the mode by which tags inside the setter are overwritten by tags +from events</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">the merge mode used inside the element.</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + </parameters> + </method> + <method name="merge_tags" c:identifier="gst_tag_setter_merge_tags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Merges the given list into the setter's list using the given mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a tag list to merge from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">the mode to merge with</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + </parameters> + </method> + <method name="reset_tags" c:identifier="gst_tag_setter_reset_tags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Reset the internal taglist. Elements should call this from within the +state-change handler.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_tag_merge_mode" c:identifier="gst_tag_setter_set_tag_merge_mode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">Sets the given merge mode that is used for adding tags from events to tags +specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps +the tags set with this interface and discards tags from events.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">a #GstTagSetter</doc> + <type name="TagSetter" c:type="GstTagSetter*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.c">The mode with which tags are added</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + </parameters> + </method> + </interface> + <record name="TagSetterInterface" c:type="GstTagSetterInterface" glib:is-gtype-struct-for="TagSetter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.h">#GstTagSetterInterface interface.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttagsetter.h"/> + <field name="g_iface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttagsetter.h">parent interface type.</doc> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + </record> + <class name="Task" c:symbol-prefix="task" c:type="GstTask" parent="Object" glib:type-name="GstTask" glib:get-type="gst_task_get_type" glib:type-struct="TaskClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">#GstTask is used by #GstElement and #GstPad to provide the data passing +threads in a #GstPipeline. + +A #GstPad will typically start a #GstTask to push or pull data to/from the +peer pads. Most source elements start a #GstTask to push data. In some cases +a demuxer element can start a #GstTask to pull data from a peer element. This +is typically done when the demuxer can perform random access on the upstream +peer element for improved performance. + +Although convenience functions exist on #GstPad to start/pause/stop tasks, it +might sometimes be needed to create a #GstTask manually if it is not related to +a #GstPad. + +Before the #GstTask can be run, it needs a #GRecMutex that can be set with +gst_task_set_lock(). + +The task can be started, paused and stopped with gst_task_start(), gst_task_pause() +and gst_task_stop() respectively or with the gst_task_set_state() function. + +A #GstTask will repeatedly call the #GstTaskFunction with the user data +that was provided when creating the task with gst_task_new(). While calling +the function it will acquire the provided lock. The provided lock is released +when the task pauses or stops. + +Stopping a task with gst_task_stop() will not immediately make sure the task is +not running anymore. Use gst_task_join() to make sure the task is completely +stopped and the thread is stopped. + +After creating a #GstTask, use gst_object_unref() to free its resources. This can +only be done when the task is not running anymore. + +Task functions can send a #GstMessage to send out-of-band data to the +application. The application can receive messages from the #GstBus in its +mainloop. + +For debugging purposes, the task will configure its object name as the thread +name on Linux. Please note that the object name should be configured before the +task is started; changing the object name after the task has been started, has +no effect on the thread name.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <constructor name="new" c:identifier="gst_task_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Create a new Task that will repeatedly call the provided @func +with @user_data as a parameter. Typically the task will run in +a new thread. + +The function cannot be changed after the task has been created. You +must create a new #GstTask to change the function. + +This function will not yet create and start a thread. Use gst_task_start() or +gst_task_pause() to create and start the GThread. + +Before the task can be used, a #GRecMutex must be configured using the +gst_task_set_lock() function. This lock will always be acquired while +@func is called.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">A new #GstTask. + +MT safe.</doc> + <type name="Task" c:type="GstTask*"/> + </return-value> + <parameters> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTaskFunction to use</doc> + <type name="TaskFunction" c:type="GstTaskFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">User data to pass to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">the function to call when @user_data is no longer needed.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + <function name="cleanup_all" c:identifier="gst_task_cleanup_all"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Wait for all tasks to be stopped. This is mainly used internally +to ensure proper cleanup of internal data structures in test suites. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <method name="get_pool" c:identifier="gst_task_get_pool"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Get the #GstTaskPool that this task will use for its streaming +threads. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">the #GstTaskPool used by @task. gst_object_unref() +after usage.</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">a #GstTask</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_state" c:identifier="gst_task_get_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Get the current state of the task.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTaskState of the task + +MT safe.</doc> + <type name="TaskState" c:type="GstTaskState"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTask to query</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + </parameters> + </method> + <method name="join" c:identifier="gst_task_join"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Joins @task. After this call, it is safe to unref the task +and clean up the lock set with gst_task_set_lock(). + +The task will automatically be stopped with this call. + +This function cannot be called from within a task function as this +would cause a deadlock. The function will detect this and print a +g_warning.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">%TRUE if the task could be joined. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTask to join</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + </parameters> + </method> + <method name="pause" c:identifier="gst_task_pause"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Pauses @task. This method can also be called on a task in the +stopped state, in which case a thread will be started and will remain +in the paused state. This function does not wait for the task to complete +the paused state.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">%TRUE if the task could be paused. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTask to pause</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + </parameters> + </method> + <method name="resume" c:identifier="gst_task_resume" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Resume @task in case it was paused. If the task was stopped, it will +remain in that state and this function will return %FALSE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">%TRUE if the task could be resumed. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTask to resume</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_enter_callback" c:identifier="gst_task_set_enter_callback"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Call @enter_func when the task function of @task is entered. @user_data will +be passed to @enter_func and @notify will be called when @user_data is no +longer referenced.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTask to use</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + <parameter name="enter_func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">a #GstTaskThreadFunc</doc> + <type name="TaskThreadFunc" c:type="GstTaskThreadFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">user data passed to @enter_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">called when @user_data is no longer referenced</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_leave_callback" c:identifier="gst_task_set_leave_callback"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Call @leave_func when the task function of @task is left. @user_data will +be passed to @leave_func and @notify will be called when @user_data is no +longer referenced.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTask to use</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + <parameter name="leave_func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">a #GstTaskThreadFunc</doc> + <type name="TaskThreadFunc" c:type="GstTaskThreadFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">user data passed to @leave_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">called when @user_data is no longer referenced</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_lock" c:identifier="gst_task_set_lock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Set the mutex used by the task. The mutex will be acquired before +calling the #GstTaskFunction. + +This function has to be called before calling gst_task_pause() or +gst_task_start(). + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTask to use</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + <parameter name="mutex" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GRecMutex to use</doc> + <type name="GLib.RecMutex" c:type="GRecMutex*"/> + </parameter> + </parameters> + </method> + <method name="set_pool" c:identifier="gst_task_set_pool"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Set @pool as the new GstTaskPool for @task. Any new streaming threads that +will be created by @task will now use @pool. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">a #GstTask</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </parameter> + </parameters> + </method> + <method name="set_state" c:identifier="gst_task_set_state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Sets the state of @task to @state. + +The @task must have a lock associated with it using +gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or +this function will return %FALSE. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">%TRUE if the state could be changed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">a #GstTask</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">the new task state</doc> + <type name="TaskState" c:type="GstTaskState"/> + </parameter> + </parameters> + </method> + <method name="start" c:identifier="gst_task_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Starts @task. The @task must have a lock associated with it using +gst_task_set_lock() or this function will return %FALSE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">%TRUE if the task could be started. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTask to start</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + </parameters> + </method> + <method name="stop" c:identifier="gst_task_stop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">Stops @task. This method merely schedules the task to stop and +will not wait for the task to have completely stopped. Use +gst_task_join() to stop and wait for completion.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">%TRUE if the task could be stopped. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.c">The #GstTask to stop</doc> + <type name="Task" c:type="GstTask*"/> + </instance-parameter> + </parameters> + </method> + <field name="object"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">the state of the task</doc> + <type name="TaskState" c:type="GstTaskState"/> + </field> + <field name="cond"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">used to pause/resume the task</doc> + <type name="GLib.Cond" c:type="GCond"/> + </field> + <field name="lock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">The lock taken when iterating the task function</doc> + <type name="GLib.RecMutex" c:type="GRecMutex*"/> + </field> + <field name="func"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">the function executed by this task</doc> + <type name="TaskFunction" c:type="GstTaskFunction"/> + </field> + <field name="user_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">user_data passed to the task function</doc> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="notify"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">GDestroyNotify for @user_data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="running"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">a flag indicating that the task is running</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="thread" readable="0" private="1"> + <type name="GLib.Thread" c:type="GThread*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TaskPrivate" c:type="GstTaskPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TaskClass" c:type="GstTaskClass" glib:is-gtype-struct-for="Task"> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <field name="parent_class"> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="pool" readable="0" private="1"> + <type name="TaskPool" c:type="GstTaskPool*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="TaskFunction" c:type="GstTaskFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">A function that will repeatedly be called in the thread created by +a #GstTask.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">user data passed to the function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="TaskPool" c:symbol-prefix="task_pool" c:type="GstTaskPool" parent="Object" glib:type-name="GstTaskPool" glib:get-type="gst_task_pool_get_type" glib:type-struct="TaskPoolClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">This object provides an abstraction for creating threads. The default +implementation uses a regular GThreadPool to start tasks. + +Subclasses can be made to create custom threads.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <constructor name="new" c:identifier="gst_task_pool_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Create a new default task pool. The default task pool will use a regular +GThreadPool for threads.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a new #GstTaskPool. gst_object_unref() after usage.</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </return-value> + </constructor> + <virtual-method name="cleanup" invoker="cleanup"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Wait for all tasks to be stopped. This is mainly used internally +to ensure proper cleanup of internal data structures in test suites. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="dispose_handle" invoker="dispose_handle" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Dispose of the handle returned by gst_task_pool_push(). This does +not need to be called with the default implementation as the default +#GstTaskPoolClass::push implementation always returns %NULL. This does not need to be +called either when calling gst_task_pool_join(), but should be called +when joining is not necessary, but gst_task_pool_push() returned a +non-%NULL value. + +This method should only be called with the same @pool instance that provided +@id.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the id</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="join" invoker="join"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Join a task and/or return it to the pool. @id is the id obtained from +gst_task_pool_push(). The default implementation does nothing, as the +default #GstTaskPoolClass::push implementation always returns %NULL. + +This method should only be called with the same @pool instance that provided +@id.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the id</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="prepare" invoker="prepare" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Prepare the taskpool for accepting gst_task_pool_push() operations. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="push" invoker="push" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Start the execution of a new thread from @pool.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a pointer that should be used +for the gst_task_pool_join function. This pointer can be %NULL, you +must check @error to detect errors. If the pointer is not %NULL and +gst_task_pool_join() is not used, call gst_task_pool_dispose_handle() +instead.</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="async" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the function to call</doc> + <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">data to pass to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </virtual-method> + <method name="cleanup" c:identifier="gst_task_pool_cleanup"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Wait for all tasks to be stopped. This is mainly used internally +to ensure proper cleanup of internal data structures in test suites. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + </parameters> + </method> + <method name="dispose_handle" c:identifier="gst_task_pool_dispose_handle" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Dispose of the handle returned by gst_task_pool_push(). This does +not need to be called with the default implementation as the default +#GstTaskPoolClass::push implementation always returns %NULL. This does not need to be +called either when calling gst_task_pool_join(), but should be called +when joining is not necessary, but gst_task_pool_push() returned a +non-%NULL value. + +This method should only be called with the same @pool instance that provided +@id.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the id</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="join" c:identifier="gst_task_pool_join"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Join a task and/or return it to the pool. @id is the id obtained from +gst_task_pool_push(). The default implementation does nothing, as the +default #GstTaskPoolClass::push implementation always returns %NULL. + +This method should only be called with the same @pool instance that provided +@id.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the id</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="prepare" c:identifier="gst_task_pool_prepare" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Prepare the taskpool for accepting gst_task_pool_push() operations. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_task_pool_push" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">Start the execution of a new thread from @pool.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a pointer that should be used +for the gst_task_pool_join function. This pointer can be %NULL, you +must check @error to detect errors. If the pointer is not %NULL and +gst_task_pool_join() is not used, call gst_task_pool_dispose_handle() +instead.</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="async" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the function to call</doc> + <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">data to pass to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <field name="object"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="pool" readable="0" private="1"> + <type name="GLib.ThreadPool" c:type="GThreadPool*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TaskPoolClass" c:type="GstTaskPoolClass" glib:is-gtype-struct-for="TaskPool"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.h">The #GstTaskPoolClass object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.h">the parent class structure</doc> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="prepare"> + <callback name="prepare" throws="1"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="cleanup"> + <callback name="cleanup"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="push"> + <callback name="push" throws="1"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a pointer that should be used +for the gst_task_pool_join function. This pointer can be %NULL, you +must check @error to detect errors. If the pointer is not %NULL and +gst_task_pool_join() is not used, call gst_task_pool_dispose_handle() +instead.</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="async" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the function to call</doc> + <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">data to pass to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="join"> + <callback name="join"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </parameter> + <parameter name="id" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the id</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="dispose_handle"> + <callback name="dispose_handle"> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">a #GstTaskPool</doc> + <type name="TaskPool" c:type="GstTaskPool*"/> + </parameter> + <parameter name="id" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.c">the id</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="TaskPoolFunction" c:type="GstTaskPoolFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.h">Task function, see gst_task_pool_push().</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaskpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaskpool.h">user data for the task function</doc> + <type name="gpointer" c:type="void*"/> + </parameter> + </parameters> + </callback> + <record name="TaskPrivate" c:type="GstTaskPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + </record> + <enumeration name="TaskState" glib:type-name="GstTaskState" glib:get-type="gst_task_state_get_type" c:type="GstTaskState"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">The different states a task can be in</doc> + <member name="started" value="0" c:identifier="GST_TASK_STARTED" glib:nick="started"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">the task is started and running</doc> + </member> + <member name="stopped" value="1" c:identifier="GST_TASK_STOPPED" glib:nick="stopped"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">the task is stopped</doc> + </member> + <member name="paused" value="2" c:identifier="GST_TASK_PAUSED" glib:nick="paused"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">the task is paused</doc> + </member> + </enumeration> + <callback name="TaskThreadFunc" c:type="GstTaskThreadFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">Custom GstTask thread callback functions that can be installed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttask.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="task" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">The #GstTask</doc> + <type name="Task" c:type="GstTask*"/> + </parameter> + <parameter name="thread" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">The #GThread</doc> + <type name="GLib.Thread" c:type="GThread*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttask.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="TimedValue" c:type="GstTimedValue"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">Structure for storing a timestamp and a value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontrolsource.h"/> + <field name="timestamp" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">timestamp of the value change</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </field> + <field name="value" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontrolsource.h">the corresponding value</doc> + <type name="gdouble" c:type="gdouble"/> + </field> + </record> + <record name="Toc" c:type="GstToc" glib:type-name="GstToc" glib:get-type="gst_toc_get_type" c:symbol-prefix="toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">#GstToc functions are used to create/free #GstToc and #GstTocEntry structures. +Also they are used to convert #GstToc into #GstStructure and vice versa. + +#GstToc lets you to inform other elements in pipeline or application that playing +source has some kind of table of contents (TOC). These may be chapters, editions, +angles or other types. For example: DVD chapters, Matroska chapters or cue sheet +TOC. Such TOC will be useful for applications to display instead of just a +playlist. + +Using TOC is very easy. Firstly, create #GstToc structure which represents root +contents of the source. You can also attach TOC-specific tags to it. Then fill +it with #GstTocEntry entries by appending them to the #GstToc using +gst_toc_append_entry(), and appending subentries to a #GstTocEntry using +gst_toc_entry_append_sub_entry(). + +Note that root level of the TOC can contain only either editions or chapters. You +should not mix them together at the same level. Otherwise you will get serialization +/deserialization errors. Make sure that no one of the entries has negative start and + stop values. + +Use gst_event_new_toc() to create a new TOC #GstEvent, and gst_event_parse_toc() to +parse received TOC event. Use gst_event_new_toc_select() to create a new TOC select #GstEvent, +and gst_event_parse_toc_select() to parse received TOC select event. The same rule for +the #GstMessage: gst_message_new_toc() to create new TOC #GstMessage, and +gst_message_parse_toc() to parse received TOC message. + +TOCs can have global scope or current scope. Global scope TOCs contain +all entries that can possibly be selected using a toc select event, and +are what an application is usually interested in. TOCs with current scope +only contain the parts of the TOC relevant to the currently selected/playing +stream; the current scope TOC is used by downstream elements such as muxers +to write correct TOC entries when transcoding files, for example. When +playing a DVD, the global TOC would contain a hierarchy of all titles, +chapters and angles, for example, while the current TOC would only contain +the chapters for the currently playing title if playback of a specific +title was requested. + +Applications and plugins should not rely on TOCs having a certain kind of +structure, but should allow for different alternatives. For example, a +simple CUE sheet embedded in a file may be presented as a flat list of +track entries, or could have a top-level edition node (or some other +alternative type entry) with track entries underneath that node; or even +multiple top-level edition nodes (or some other alternative type entries) +each with track entries underneath, in case the source file has extracted +a track listing from different sources).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <constructor name="new" c:identifier="gst_toc_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Create a new #GstToc structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">newly allocated #GstToc structure, free it + with gst_toc_unref().</doc> + <type name="Toc" c:type="GstToc*"/> + </return-value> + <parameters> + <parameter name="scope" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">scope of this TOC</doc> + <type name="TocScope" c:type="GstTocScope"/> + </parameter> + </parameters> + </constructor> + <method name="append_entry" c:identifier="gst_toc_append_entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Appends the #GstTocEntry @entry to @toc.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="toc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstToc instance</doc> + <type name="Toc" c:type="GstToc*"/> + </instance-parameter> + <parameter name="entry" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </parameter> + </parameters> + </method> + <method name="dump" c:identifier="gst_toc_dump"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="toc" transfer-ownership="none"> + <type name="Toc" c:type="GstToc*"/> + </instance-parameter> + </parameters> + </method> + <method name="find_entry" c:identifier="gst_toc_find_entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Find #GstTocEntry with given @uid in the @toc.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">#GstTocEntry with specified +@uid from the @toc, or %NULL if not found.</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </return-value> + <parameters> + <instance-parameter name="toc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">#GstToc to search in.</doc> + <type name="Toc" c:type="const GstToc*"/> + </instance-parameter> + <parameter name="uid" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">UID to find #GstTocEntry with.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_entries" c:identifier="gst_toc_get_entries"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Gets the list of #GstTocEntry of @toc.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GList of #GstTocEntry for @entry</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TocEntry"/> + </type> + </return-value> + <parameters> + <instance-parameter name="toc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstToc instance</doc> + <type name="Toc" c:type="const GstToc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_scope" c:identifier="gst_toc_get_scope"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">scope of @toc</doc> + <type name="TocScope" c:type="GstTocScope"/> + </return-value> + <parameters> + <instance-parameter name="toc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">a #GstToc instance</doc> + <type name="Toc" c:type="const GstToc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_toc_get_tags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Gets the tags for @toc.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTagList for @entry</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="toc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstToc instance</doc> + <type name="Toc" c:type="const GstToc*"/> + </instance-parameter> + </parameters> + </method> + <method name="merge_tags" c:identifier="gst_toc_merge_tags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Merge @tags into the existing tags of @toc using @mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="toc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstToc instance</doc> + <type name="Toc" c:type="GstToc*"/> + </instance-parameter> + <parameter name="tags" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTagList or %NULL</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTagMergeMode</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + </parameters> + </method> + <method name="set_tags" c:identifier="gst_toc_set_tags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Set a #GstTagList with tags for the complete @toc.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="toc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstToc instance</doc> + <type name="Toc" c:type="GstToc*"/> + </instance-parameter> + <parameter name="tags" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTagList or %NULL</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + </parameters> + </method> + </record> + <record name="TocEntry" c:type="GstTocEntry" glib:type-name="GstTocEntry" glib:get-type="gst_toc_entry_get_type" c:symbol-prefix="toc_entry"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <constructor name="new" c:identifier="gst_toc_entry_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Create new #GstTocEntry structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">newly allocated #GstTocEntry structure, free it with gst_toc_entry_unref().</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">entry type.</doc> + <type name="TocEntryType" c:type="GstTocEntryType"/> + </parameter> + <parameter name="uid" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">unique ID (UID) in the whole TOC.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="append_sub_entry" c:identifier="gst_toc_entry_append_sub_entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Appends the #GstTocEntry @subentry to @entry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry instance</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </instance-parameter> + <parameter name="subentry" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </parameter> + </parameters> + </method> + <method name="get_entry_type" c:identifier="gst_toc_entry_get_entry_type"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">@entry's entry type</doc> + <type name="TocEntryType" c:type="GstTocEntryType"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">a #GstTocEntry</doc> + <type name="TocEntry" c:type="const GstTocEntry*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_loop" c:identifier="gst_toc_entry_get_loop" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Get @loop_type and @repeat_count values from the @entry and write them into +appropriate storages. Loops are e.g. used by sampled instruments. GStreamer +is not automatically applying the loop. The application can process this +meta data and use it e.g. to send a seek-event to loop a section.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">%TRUE if all non-%NULL storage pointers were filled with appropriate +values, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">#GstTocEntry to get values from.</doc> + <type name="TocEntry" c:type="const GstTocEntry*"/> + </instance-parameter> + <parameter name="loop_type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">the storage for the loop_type + value, leave %NULL if not need.</doc> + <type name="TocLoopType" c:type="GstTocLoopType*"/> + </parameter> + <parameter name="repeat_count" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">the storage for the repeat_count + value, leave %NULL if not need.</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_parent" c:identifier="gst_toc_entry_get_parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Gets the parent #GstTocEntry of @entry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">The parent #GstTocEntry of @entry</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry instance</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_start_stop_times" c:identifier="gst_toc_entry_get_start_stop_times"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Get @start and @stop values from the @entry and write them into appropriate +storages.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">%TRUE if all non-%NULL storage pointers were filled with appropriate +values, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">#GstTocEntry to get values from.</doc> + <type name="TocEntry" c:type="const GstTocEntry*"/> + </instance-parameter> + <parameter name="start" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">the storage for the start value, leave + %NULL if not need.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + <parameter name="stop" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">the storage for the stop value, leave + %NULL if not need.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_sub_entries" c:identifier="gst_toc_entry_get_sub_entries"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Gets the sub-entries of @entry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GList of #GstTocEntry of @entry</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TocEntry"/> + </type> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry instance</doc> + <type name="TocEntry" c:type="const GstTocEntry*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_toc_entry_get_tags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Gets the tags for @entry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTagList for @entry</doc> + <type name="TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry instance</doc> + <type name="TocEntry" c:type="const GstTocEntry*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_toc" c:identifier="gst_toc_entry_get_toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Gets the parent #GstToc of @entry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">The parent #GstToc of @entry</doc> + <type name="Toc" c:type="GstToc*"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry instance</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uid" c:identifier="gst_toc_entry_get_uid"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Gets the UID of @entry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">The UID of @entry</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry instance</doc> + <type name="TocEntry" c:type="const GstTocEntry*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_alternative" c:identifier="gst_toc_entry_is_alternative"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">%TRUE if @entry's type is an alternative type, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">a #GstTocEntry</doc> + <type name="TocEntry" c:type="const GstTocEntry*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_sequence" c:identifier="gst_toc_entry_is_sequence"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">%TRUE if @entry's type is a sequence type, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">a #GstTocEntry</doc> + <type name="TocEntry" c:type="const GstTocEntry*"/> + </instance-parameter> + </parameters> + </method> + <method name="merge_tags" c:identifier="gst_toc_entry_merge_tags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Merge @tags into the existing tags of @entry using @mode.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry instance</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </instance-parameter> + <parameter name="tags" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTagList or %NULL</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTagMergeMode</doc> + <type name="TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + </parameters> + </method> + <method name="set_loop" c:identifier="gst_toc_entry_set_loop" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Set @loop_type and @repeat_count values for the @entry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">#GstTocEntry to set values.</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </instance-parameter> + <parameter name="loop_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">loop_type value to set.</doc> + <type name="TocLoopType" c:type="GstTocLoopType"/> + </parameter> + <parameter name="repeat_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">repeat_count value to set.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_start_stop_times" c:identifier="gst_toc_entry_set_start_stop_times"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Set @start and @stop values for the @entry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">#GstTocEntry to set values.</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">start value to set.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">stop value to set.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_tags" c:identifier="gst_toc_entry_set_tags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Set a #GstTagList with tags for the complete @entry.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="entry" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTocEntry instance</doc> + <type name="TocEntry" c:type="GstTocEntry*"/> + </instance-parameter> + <parameter name="tags" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">A #GstTagList or %NULL</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + </parameters> + </method> + </record> + <enumeration name="TocEntryType" glib:type-name="GstTocEntryType" glib:get-type="gst_toc_entry_type_get_type" c:type="GstTocEntryType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">The different types of TOC entries (see #GstTocEntry). + +There are two types of TOC entries: alternatives or parts in a sequence.</doc> + <member name="angle" value="-3" c:identifier="GST_TOC_ENTRY_TYPE_ANGLE" glib:nick="angle"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">entry is an angle (i.e. an alternative)</doc> + </member> + <member name="version" value="-2" c:identifier="GST_TOC_ENTRY_TYPE_VERSION" glib:nick="version"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">entry is a version (i.e. alternative)</doc> + </member> + <member name="edition" value="-1" c:identifier="GST_TOC_ENTRY_TYPE_EDITION" glib:nick="edition"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">entry is an edition (i.e. alternative)</doc> + </member> + <member name="invalid" value="0" c:identifier="GST_TOC_ENTRY_TYPE_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">invalid entry type value</doc> + </member> + <member name="title" value="1" c:identifier="GST_TOC_ENTRY_TYPE_TITLE" glib:nick="title"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">entry is a title (i.e. a part of a sequence)</doc> + </member> + <member name="track" value="2" c:identifier="GST_TOC_ENTRY_TYPE_TRACK" glib:nick="track"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">entry is a track (i.e. a part of a sequence)</doc> + </member> + <member name="chapter" value="3" c:identifier="GST_TOC_ENTRY_TYPE_CHAPTER" glib:nick="chapter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">entry is a chapter (i.e. a part of a sequence)</doc> + </member> + <function name="get_nick" c:identifier="gst_toc_entry_type_get_nick"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Converts @type to a string representation.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Returns a human-readable string for @type. This string is + only for debugging purpose and should not be displayed in a user + interface.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">a #GstTocEntryType.</doc> + <type name="TocEntryType" c:type="GstTocEntryType"/> + </parameter> + </parameters> + </function> + </enumeration> + <enumeration name="TocLoopType" version="1.4" glib:type-name="GstTocLoopType" glib:get-type="gst_toc_loop_type_get_type" c:type="GstTocLoopType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">How a #GstTocEntry should be repeated. By default, entries are played a +single time.</doc> + <member name="none" value="0" c:identifier="GST_TOC_LOOP_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">single forward playback</doc> + </member> + <member name="forward" value="1" c:identifier="GST_TOC_LOOP_FORWARD" glib:nick="forward"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">repeat forward</doc> + </member> + <member name="reverse" value="2" c:identifier="GST_TOC_LOOP_REVERSE" glib:nick="reverse"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">repeat backward</doc> + </member> + <member name="ping_pong" value="3" c:identifier="GST_TOC_LOOP_PING_PONG" glib:nick="ping-pong"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">repeat forward and backward</doc> + </member> + </enumeration> + <enumeration name="TocScope" glib:type-name="GstTocScope" glib:get-type="gst_toc_scope_get_type" c:type="GstTocScope"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">The scope of a TOC.</doc> + <member name="global" value="1" c:identifier="GST_TOC_SCOPE_GLOBAL" glib:nick="global"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">global TOC representing all selectable options + (this is what applications are usually interested in)</doc> + </member> + <member name="current" value="2" c:identifier="GST_TOC_SCOPE_CURRENT" glib:nick="current"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.h">TOC for the currently active/selected stream + (this is a TOC representing the current stream from start to EOS, + and is what a TOC writer / muxer is usually interested in; it will + usually be a subset of the global TOC, e.g. just the chapters of + the current title, or the chapters selected for playback from the + current title)</doc> + </member> + </enumeration> + <interface name="TocSetter" c:symbol-prefix="toc_setter" c:type="GstTocSetter" glib:type-name="GstTocSetter" glib:get-type="gst_toc_setter_get_type" glib:type-struct="TocSetterInterface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.c">Element interface that allows setting of the TOC. + +Elements that support some kind of chapters or editions (or tracks like in +the FLAC cue sheet) will implement this interface. + +If you just want to retrieve the TOC in your application then all you +need to do is watch for TOC messages on your pipeline's bus (or you can +perform TOC query). This interface is only for setting TOC data, not for +extracting it. To set TOC from the application, find proper tocsetter element +and set TOC using gst_toc_setter_set_toc(). + +Elements implementing the #GstTocSetter interface can extend existing TOC +by getting extend UID for that (you can use gst_toc_find_entry() to retrieve it) +with any TOC entries received from downstream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttocsetter.h"/> + <prerequisite name="Element"/> + <method name="get_toc" c:identifier="gst_toc_setter_get_toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.c">Return current TOC the setter uses. The TOC should not be +modified without making it writable first.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttocsetter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.c">TOC set, or %NULL. Unref with + gst_toc_unref() when no longer needed</doc> + <type name="Toc" c:type="GstToc*"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.c">a #GstTocSetter.</doc> + <type name="TocSetter" c:type="GstTocSetter*"/> + </instance-parameter> + </parameters> + </method> + <method name="reset" c:identifier="gst_toc_setter_reset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.c">Reset the internal TOC. Elements should call this from within the +state-change handler.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttocsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.c">a #GstTocSetter.</doc> + <type name="TocSetter" c:type="GstTocSetter*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_toc" c:identifier="gst_toc_setter_set_toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.c">Set the given TOC on the setter. Previously set TOC will be +unreffed before setting a new one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttocsetter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="setter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.c">a #GstTocSetter.</doc> + <type name="TocSetter" c:type="GstTocSetter*"/> + </instance-parameter> + <parameter name="toc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.c">a #GstToc to set.</doc> + <type name="Toc" c:type="GstToc*"/> + </parameter> + </parameters> + </method> + </interface> + <record name="TocSetterInterface" c:type="GstTocSetterInterface" glib:is-gtype-struct-for="TocSetter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.h">#GstTocSetterInterface interface.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttocsetter.h"/> + <field name="g_iface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttocsetter.h">parent interface type.</doc> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + </record> + <class name="Tracer" c:symbol-prefix="tracer" c:type="GstTracer" version="1.8" parent="Object" abstract="1" glib:type-name="GstTracer" glib:get-type="gst_tracer_get_type" glib:type-struct="TracerClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracer.c">Tracing modules will subclass #GstTracer and register through +gst_tracer_register(). Modules can attach to various hook-types - see +gst_tracing_register_hook(). When invoked they receive hook specific +contextual data, which they must not modify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <function name="register" c:identifier="gst_tracer_register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracer.c">Create a new tracer-factory capable of instantiating objects of the +@type and add the factory to @plugin.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracer.c">%TRUE, if the registering succeeded, %FALSE on error</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracer.c">A #GstPlugin, or %NULL for a static typefind function</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracer.c">The name for registering</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracer.c">GType of tracer to register</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + <property name="params" writable="1" construct="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent"> + <type name="Object" c:type="GstObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TracerPrivate" c:type="GstTracerPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TracerClass" c:type="GstTracerClass" glib:is-gtype-struct-for="Tracer"> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <field name="parent_class"> + <type name="ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="TracerFactory" c:symbol-prefix="tracer_factory" c:type="GstTracerFactory" version="1.8" parent="PluginFeature" glib:type-name="GstTracerFactory" glib:get-type="gst_tracer_factory_get_type" glib:type-struct="TracerFactoryClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerfactory.c">Use gst_tracer_factory_get_list() to get a list of tracer factories known to +GStreamer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + <function name="get_list" c:identifier="gst_tracer_factory_get_list" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerfactory.c">Gets the list of all registered tracer factories. You must free the +list using gst_plugin_feature_list_free(). + +The returned factories are sorted by factory name. + +Free-function: gst_plugin_feature_list_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerfactory.c">the list of all + registered #GstTracerFactory.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TracerFactory"/> + </type> + </return-value> + </function> + <method name="get_tracer_type" c:identifier="gst_tracer_factory_get_tracer_type" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerfactory.c">Get the #GType for elements managed by this factory. The type can +only be retrieved if the element factory is loaded, which can be +assured with gst_plugin_feature_load().</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerfactory.c">the #GType for tracers managed by this factory or 0 if +the factory is not loaded.</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerfactory.c">factory to get managed #GType from</doc> + <type name="TracerFactory" c:type="GstTracerFactory*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="TracerFactoryClass" c:type="GstTracerFactoryClass" disguised="1" glib:is-gtype-struct-for="TracerFactory"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerfactory.h"/> + </record> + <record name="TracerPrivate" c:type="GstTracerPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + </record> + <class name="TracerRecord" c:symbol-prefix="tracer_record" c:type="GstTracerRecord" version="1.8" parent="Object" glib:type-name="GstTracerRecord" glib:get-type="gst_tracer_record_get_type" glib:type-struct="TracerRecordClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.c">Tracing modules will create instances of this class to announce the data they +will log and create a log formatter.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + <constructor name="new" c:identifier="gst_tracer_record_new" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.c">Create a new tracer record. The record instance can be used to efficiently +log entries using gst_tracer_record_log(). +%NULL terminator required after the last argument. + +The @name without the ".class" suffix will be used for the log records. +There must be fields for each value that gets logged where the field name is +the value name. The field must be a #GstStructure describing the value. The +sub structure must contain a field called 'type' of %G_TYPE_GTYPE that +contains the GType of the value. The resulting #GstTracerRecord will take +ownership of the field structures. + +The way to deal with optional values is to log an additional boolean before +the optional field, that if %TRUE signals that the optional field is valid +and %FALSE signals that the optional field should be ignored. One must still +log a placeholder value for the optional field though. Please also note, that +pointer type values must not be NULL - the underlying serialisation can not +handle that right now. + +> Please note that this is still under discussion and subject to change.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.c">a new #GstTracerRecord</doc> + <type name="TracerRecord" c:type="GstTracerRecord*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.c">name of new record, must end on ".class".</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="firstfield" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.c">name of first field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.c">additional arguments</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <method name="log" c:identifier="gst_tracer_record_log" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.c">Serialzes the trace event into the log. + +Right now this is using the gstreamer debug log with the level TRACE (7) and +the category "GST_TRACER". + +> Please note that this is still under discussion and subject to change.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.c">the tracer-record</doc> + <type name="TracerRecord" c:type="GstTracerRecord*"/> + </instance-parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.c">the args as described in the spec-</doc> + <varargs/> + </parameter> + </parameters> + </method> + </class> + <record name="TracerRecordClass" c:type="GstTracerRecordClass" disguised="1" glib:is-gtype-struct-for="TracerRecord"> + <source-position filename="../subprojects/gstreamer/gst/gsttracerrecord.h"/> + </record> + <bitfield name="TracerValueFlags" glib:type-name="GstTracerValueFlags" glib:get-type="gst_tracer_value_flags_get_type" c:type="GstTracerValueFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.h">Flag that describe the value. These flags help applications processing the +logs to understand the values.</doc> + <member name="none" value="0" c:identifier="GST_TRACER_VALUE_FLAGS_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.h">no flags</doc> + </member> + <member name="optional" value="1" c:identifier="GST_TRACER_VALUE_FLAGS_OPTIONAL" glib:nick="optional"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.h">the value is optional. When using this flag + one need to have an additional boolean arg before this value in the + var-args list passed to gst_tracer_record_log().</doc> + </member> + <member name="aggregated" value="2" c:identifier="GST_TRACER_VALUE_FLAGS_AGGREGATED" glib:nick="aggregated"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.h">the value is a combined figure, since the + start of tracing. Examples are averages or timestamps.</doc> + </member> + </bitfield> + <enumeration name="TracerValueScope" version="1.8" glib:type-name="GstTracerValueScope" glib:get-type="gst_tracer_value_scope_get_type" c:type="GstTracerValueScope"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.h">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 +events may contain values for different #GstPads.</doc> + <member name="process" value="0" c:identifier="GST_TRACER_VALUE_SCOPE_PROCESS" glib:nick="process"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.h">the value is related to the process</doc> + </member> + <member name="thread" value="1" c:identifier="GST_TRACER_VALUE_SCOPE_THREAD" glib:nick="thread"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.h">the value is related to a thread</doc> + </member> + <member name="element" value="2" c:identifier="GST_TRACER_VALUE_SCOPE_ELEMENT" glib:nick="element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.h">the value is related to an #GstElement</doc> + </member> + <member name="pad" value="3" c:identifier="GST_TRACER_VALUE_SCOPE_PAD" glib:nick="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerrecord.h">the value is related to a #GstPad</doc> + </member> + </enumeration> + <record name="TypeFind" c:type="GstTypeFind"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The following functions allow you to detect the media type of an unknown +stream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <field name="peek"> + <callback name="peek"> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <type name="guint8" c:type="const guint8*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="suggest"> + <callback name="suggest"> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="probability" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The data used by the caller of the typefinding function.</doc> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="get_length"> + <callback name="get_length"> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="get_length" c:identifier="gst_type_find_get_length"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Get the length of the data stream.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The length of the data stream, or 0 if it is not available.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="find" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The #GstTypeFind the function was called with</doc> + <type name="TypeFind" c:type="GstTypeFind*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek" c:identifier="gst_type_find_peek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Returns the @size bytes of the stream to identify beginning at offset. If +offset is a positive number, the offset is relative to the beginning of the +stream, if offset is a negative number the offset is relative to the end of +the stream. The returned memory is valid until the typefinding function +returns and must not be freed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">the + requested data, or %NULL if that data is not available.</doc> + <type name="guint8" c:type="const guint8*"/> + </return-value> + <parameters> + <instance-parameter name="find" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The #GstTypeFind object the function was called with</doc> + <type name="TypeFind" c:type="GstTypeFind*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The offset</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The number of bytes to return</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="suggest" c:identifier="gst_type_find_suggest"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">If a #GstTypeFindFunction calls this function it suggests the caps with the +given probability. A #GstTypeFindFunction may supply different suggestions +in one call. +It is up to the caller of the #GstTypeFindFunction to interpret these values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="find" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The #GstTypeFind object the function was called with</doc> + <type name="TypeFind" c:type="GstTypeFind*"/> + </instance-parameter> + <parameter name="probability" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The probability in percent that the suggestion is right</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The fixed #GstCaps to suggest</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="suggest_empty_simple" c:identifier="gst_type_find_suggest_empty_simple" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">If a #GstTypeFindFunction calls this function it suggests caps of the +given @media_type with the given @probability. + +This function is similar to gst_type_find_suggest_simple(), but uses +a #GstCaps with no fields.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="find" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The #GstTypeFind object the function was called with</doc> + <type name="TypeFind" c:type="GstTypeFind*"/> + </instance-parameter> + <parameter name="probability" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The probability in percent that the suggestion is right</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="media_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">the media type of the suggested caps</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + </parameters> + </method> + <method name="suggest_simple" c:identifier="gst_type_find_suggest_simple" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">If a #GstTypeFindFunction calls this function it suggests the caps with the +given probability. A #GstTypeFindFunction may supply different suggestions +in one call. It is up to the caller of the #GstTypeFindFunction to interpret +these values. + +This function is similar to gst_type_find_suggest(), only that instead of +passing a #GstCaps argument you can create the caps on the fly in the same +way as you can with gst_caps_new_simple(). + +Make sure you terminate the list of arguments with a %NULL argument and that +the values passed have the correct type (in terms of width in bytes when +passed to the vararg function - this applies particularly to gdouble and +guint64 arguments).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="find" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The #GstTypeFind object the function was called with</doc> + <type name="TypeFind" c:type="GstTypeFind*"/> + </instance-parameter> + <parameter name="probability" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The probability in percent that the suggestion is right</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="media_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">the media type of the suggested caps</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="fieldname" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">first field of the suggested caps, or %NULL</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">additional arguments to the suggested caps in the same format as the + arguments passed to gst_structure_new() (ie. triplets of field name, + field GType and field value). If @fieldname is %NULL, this list + must be exactly one %NULL.</doc> + <varargs/> + </parameter> + </parameters> + </method> + <function name="register" c:identifier="gst_type_find_register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Registers a new typefind function to be used for typefinding. After +registering this function will be available for typefinding. +This function is typically called during an element's plugin initialization.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">%TRUE on success, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">A #GstPlugin, or %NULL for a static typefind function</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The name for registering</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="rank" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The rank (or importance) of this typefind function</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="6" destroy="7"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The #GstTypeFindFunction to use</doc> + <type name="TypeFindFunction" c:type="GstTypeFindFunction"/> + </parameter> + <parameter name="extensions" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Optional comma-separated list of extensions + that could belong to this type</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="possible_caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Optionally the caps that could be returned when typefinding + succeeds</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Optional user data. This user data must be available until the plugin + is unloaded.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="data_notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">a #GDestroyNotify that will be called on @data when the plugin + is unloaded.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + </record> + <class name="TypeFindFactory" c:symbol-prefix="type_find_factory" c:type="GstTypeFindFactory" parent="PluginFeature" glib:type-name="GstTypeFindFactory" glib:get-type="gst_type_find_factory_get_type" glib:type-struct="TypeFindFactoryClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">These functions allow querying information about registered typefind +functions. How to create and register these functions is described in +the section <link linkend="gstreamer-Writing-typefind-functions"> +"Writing typefind functions"</link>. + +The following example shows how to write a very simple typefinder that +identifies the given data. You can get quite a bit more complicated than +that though. +|[<!-- language="C" --> + typedef struct { + guint8 *data; + guint size; + guint probability; + GstCaps *data; + } MyTypeFind; + static void + my_peek (gpointer data, gint64 offset, guint size) + { + MyTypeFind *find = (MyTypeFind *) data; + if (offset >= 0 && offset + size <= find->size) { + return find->data + offset; + } + return NULL; + } + static void + my_suggest (gpointer data, guint probability, GstCaps *caps) + { + MyTypeFind *find = (MyTypeFind *) data; + if (probability > find->probability) { + find->probability = probability; + gst_caps_replace (&find->caps, caps); + } + } + static GstCaps * + find_type (guint8 *data, guint size) + { + GList *walk, *type_list; + MyTypeFind find = {data, size, 0, NULL}; + GstTypeFind gst_find = {my_peek, my_suggest, &find, }; + walk = type_list = gst_type_find_factory_get_list (); + while (walk) { + GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY (walk->data); + walk = g_list_next (walk) + gst_type_find_factory_call_function (factory, &gst_find); + } + g_list_free (type_list); + return find.caps; + }; +]|</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <function name="get_list" c:identifier="gst_type_find_factory_get_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">Gets the list of all registered typefind factories. You must free the +list using gst_plugin_feature_list_free(). + +The returned factories are sorted by highest rank first, and then by +factory name. + +Free-function: gst_plugin_feature_list_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">the list of all + registered #GstTypeFindFactory.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TypeFindFactory"/> + </type> + </return-value> + </function> + <method name="call_function" c:identifier="gst_type_find_factory_call_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">Calls the #GstTypeFindFunction associated with this factory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">A #GstTypeFindFactory</doc> + <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/> + </instance-parameter> + <parameter name="find" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">a properly setup #GstTypeFind entry. The get_data + and suggest_type members must be set.</doc> + <type name="TypeFind" c:type="GstTypeFind*"/> + </parameter> + </parameters> + </method> + <method name="get_caps" c:identifier="gst_type_find_factory_get_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">Gets the #GstCaps associated with a typefind factory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">the #GstCaps associated with this factory</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">A #GstTypeFindFactory</doc> + <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_extensions" c:identifier="gst_type_find_factory_get_extensions"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">Gets the extensions associated with a #GstTypeFindFactory. The returned +array should not be changed. If you need to change stuff in it, you should +copy it using g_strdupv(). This function may return %NULL to indicate +a 0-length list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c"> + a %NULL-terminated array of extensions associated with this factory</doc> + <array c:type="const gchar* const*"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">A #GstTypeFindFactory</doc> + <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_function" c:identifier="gst_type_find_factory_has_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">Check whether the factory has a typefind function. Typefind factories +without typefind functions are a last-effort fallback mechanism to +e.g. assume a certain media type based on the file extension.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">%TRUE if the factory has a typefind functions set, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefindfactory.c">A #GstTypeFindFactory</doc> + <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="TypeFindFactoryClass" c:type="GstTypeFindFactoryClass" disguised="1" glib:is-gtype-struct-for="TypeFindFactory"> + <source-position filename="../subprojects/gstreamer/gst/gsttypefindfactory.h"/> + </record> + <callback name="TypeFindFunction" c:type="GstTypeFindFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">A function that will be called by typefinding.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="find" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">A #GstTypeFind structure</doc> + <type name="TypeFind" c:type="GstTypeFind*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">optional data to pass to the function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <enumeration name="TypeFindProbability" glib:type-name="GstTypeFindProbability" glib:get-type="gst_type_find_probability_get_type" c:type="GstTypeFindProbability"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">The probability of the typefind function. Higher values have more certainty +in doing a reliable typefind.</doc> + <member name="none" value="0" c:identifier="GST_TYPE_FIND_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">type undetected.</doc> + </member> + <member name="minimum" value="1" c:identifier="GST_TYPE_FIND_MINIMUM" glib:nick="minimum"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">unlikely typefind.</doc> + </member> + <member name="possible" value="50" c:identifier="GST_TYPE_FIND_POSSIBLE" glib:nick="possible"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">possible type detected.</doc> + </member> + <member name="likely" value="80" c:identifier="GST_TYPE_FIND_LIKELY" glib:nick="likely"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">likely a type was detected.</doc> + </member> + <member name="nearly_certain" value="99" c:identifier="GST_TYPE_FIND_NEARLY_CERTAIN" glib:nick="nearly-certain"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">nearly certain that a type was detected.</doc> + </member> + <member name="maximum" value="100" c:identifier="GST_TYPE_FIND_MAXIMUM" glib:nick="maximum"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.h">very certain a type was detected.</doc> + </member> + </enumeration> + <function-macro name="URI" c:identifier="GST_URI" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <enumeration name="URIError" glib:type-name="GstURIError" glib:get-type="gst_uri_error_get_type" c:type="GstURIError" glib:error-domain="gst-uri-error-quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">Different URI-related errors that can occur.</doc> + <member name="unsupported_protocol" value="0" c:identifier="GST_URI_ERROR_UNSUPPORTED_PROTOCOL" glib:nick="unsupported-protocol"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">The protocol is not supported</doc> + </member> + <member name="bad_uri" value="1" c:identifier="GST_URI_ERROR_BAD_URI" glib:nick="bad-uri"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">There was a problem with the URI</doc> + </member> + <member name="bad_state" value="2" c:identifier="GST_URI_ERROR_BAD_STATE" glib:nick="bad-state"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">Could not set or change the URI because the + URI handler was in a state where that is not possible or not permitted</doc> + </member> + <member name="bad_reference" value="3" c:identifier="GST_URI_ERROR_BAD_REFERENCE" glib:nick="bad-reference"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">There was a problem with the entity that + the URI references</doc> + </member> + <function name="quark" c:identifier="gst_uri_error_quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <interface name="URIHandler" c:symbol-prefix="uri_handler" c:type="GstURIHandler" glib:type-name="GstURIHandler" glib:get-type="gst_uri_handler_get_type" glib:type-struct="URIHandlerInterface"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstURIHandler is an interface that is implemented by Source and Sink +#GstElement to unify handling of URI. + +An application can use the following functions to quickly get an element +that handles the given URI for reading or writing +(gst_element_make_from_uri()). + +Source and Sink plugins should implement this interface when possible.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <virtual-method name="get_uri" invoker="get_uri"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Gets the currently handled URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">the URI currently handled by + the @handler. Returns %NULL if there are no URI currently + handled. The returned string must be freed with g_free() when no + longer needed.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="handler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstURIHandler</doc> + <type name="URIHandler" c:type="GstURIHandler*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="set_uri" invoker="set_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Tries to set the URI of the given handler.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the URI was set successfully, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="handler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstURIHandler</doc> + <type name="URIHandler" c:type="GstURIHandler*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">URI to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_protocols" c:identifier="gst_uri_handler_get_protocols"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Gets the list of protocols supported by @handler. This list may not be +modified.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">the + supported protocols. Returns %NULL if the @handler isn't + implemented properly, or the @handler doesn't support any + protocols.</doc> + <array c:type="const gchar* const*"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="handler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstURIHandler.</doc> + <type name="URIHandler" c:type="GstURIHandler*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri" c:identifier="gst_uri_handler_get_uri"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Gets the currently handled URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">the URI currently handled by + the @handler. Returns %NULL if there are no URI currently + handled. The returned string must be freed with g_free() when no + longer needed.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="handler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstURIHandler</doc> + <type name="URIHandler" c:type="GstURIHandler*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri_type" c:identifier="gst_uri_handler_get_uri_type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Gets the type of the given URI handler</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">the #GstURIType of the URI handler. +Returns #GST_URI_UNKNOWN if the @handler isn't implemented correctly.</doc> + <type name="URIType" c:type="GstURIType"/> + </return-value> + <parameters> + <instance-parameter name="handler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstURIHandler.</doc> + <type name="URIHandler" c:type="GstURIHandler*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_uri" c:identifier="gst_uri_handler_set_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Tries to set the URI of the given handler.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the URI was set successfully, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="handler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstURIHandler</doc> + <type name="URIHandler" c:type="GstURIHandler*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">URI to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </interface> + <record name="URIHandlerInterface" c:type="GstURIHandlerInterface" glib:is-gtype-struct-for="URIHandler"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">Any #GstElement using this interface should implement these methods.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">The parent interface type</doc> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="get_type"> + <callback name="get_type"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <type name="URIType" c:type="GstURIType"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_protocols"> + <callback name="get_protocols"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <array c:type="const gchar* const*"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_uri"> + <callback name="get_uri"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">the URI currently handled by + the @handler. Returns %NULL if there are no URI currently + handled. The returned string must be freed with g_free() when no + longer needed.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="handler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstURIHandler</doc> + <type name="URIHandler" c:type="GstURIHandler*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_uri"> + <callback name="set_uri" throws="1"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the URI was set successfully, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="handler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstURIHandler</doc> + <type name="URIHandler" c:type="GstURIHandler*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">URI to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + </record> + <enumeration name="URIType" glib:type-name="GstURIType" glib:get-type="gst_uri_type_get_type" c:type="GstURIType"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">The different types of URI direction.</doc> + <member name="unknown" value="0" c:identifier="GST_URI_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">The URI direction is unknown</doc> + </member> + <member name="sink" value="1" c:identifier="GST_URI_SINK" glib:nick="sink"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">The URI is a consumer.</doc> + </member> + <member name="src" value="2" c:identifier="GST_URI_SRC" glib:nick="src"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">The URI is a producer.</doc> + </member> + </enumeration> + <function-macro name="URI_CAST" c:identifier="GST_URI_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="URI_CONST_CAST" c:identifier="GST_URI_CONST_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="URI_HANDLER" c:identifier="GST_URI_HANDLER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="URI_HANDLER_GET_INTERFACE" c:identifier="GST_URI_HANDLER_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="URI_NO_PORT" value="0" c:type="GST_URI_NO_PORT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">Value for #GstUri<!-- -->.port to indicate no port number.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="URI_TYPE_IS_VALID" c:identifier="GST_URI_TYPE_IS_VALID" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">Tests if the type direction is valid.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <parameters> + <parameter name="type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.h">A #GstURIType</doc> + </parameter> + </parameters> + </function-macro> + <constant name="USECOND" value="1000" c:type="GST_USECOND"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstclock.h">Constant that defines one GStreamer microsecond.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstclock.h"/> + <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/> + </constant> + <record name="Uri" c:type="GstUri" glib:type-name="GstUri" glib:get-type="gst_uri_get_type" c:symbol-prefix="uri"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstUri object can be used to parse and split a URI string into its +constituent parts. Two #GstUri objects can be joined to make a new #GstUri +using the algorithm described in RFC3986.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <constructor name="new" c:identifier="gst_uri_new" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Creates a new #GstUri object with the given URI parts. The path and query +strings will be broken down into their elements. All strings should not be +escaped except where indicated.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A new #GstUri object.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <parameter name="scheme" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The scheme for the new URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="userinfo" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The user-info for the new URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="host" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The host name for the new URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The port number for the new URI or %GST_URI_NO_PORT.</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The path for the new URI with '/' separating path + elements.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="query" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The query string for the new URI with '&' separating + query elements. Elements containing '&' characters + should encode them as "&percnt;26".</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="fragment" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The fragment name for the new URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="append_path" c:identifier="gst_uri_append_path" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Append a path onto the end of the path in the URI. The path is not +normalized, call #gst_uri_normalize() to normalize the path.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the path was appended successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="relative_path" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Relative path to append to the end of the current path.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="append_path_segment" c:identifier="gst_uri_append_path_segment" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Append a single path segment onto the end of the URI path.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the path was appended successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="path_segment" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The path segment string to append to the URI path.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_uri_copy" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Create a new #GstUri object with the same data as this #GstUri object. +If @uri is %NULL then returns %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A new #GstUri object which is a copy of this + #GstUri or %NULL.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri object.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="equal" c:identifier="gst_uri_equal" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Compares two #GstUri objects to see if they represent the same normalized +URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the normalized versions of the two URI's would be equal.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="first" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">First #GstUri to compare.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + <parameter name="second" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Second #GstUri to compare.</doc> + <type name="Uri" c:type="const GstUri*"/> + </parameter> + </parameters> + </method> + <method name="from_string_with_base" c:identifier="gst_uri_from_string_with_base" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Like gst_uri_from_string() but also joins with a base URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A new #GstUri object.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <instance-parameter name="base" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The base URI to join the new URI with.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The URI string to parse.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_fragment" c:identifier="gst_uri_get_fragment" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get the fragment name from the URI or %NULL if it doesn't exist. +If @uri is %NULL then returns %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The host name from the #GstUri object or %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri object.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_host" c:identifier="gst_uri_get_host" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get the host name from the URI or %NULL if it doesn't exist. +If @uri is %NULL then returns %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The host name from the #GstUri object or %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri object.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_media_fragment_table" c:identifier="gst_uri_get_media_fragment_table" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">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 "&" sub-delims, then "key" +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 +with #g_hash_table_unref() when it is no longer required. +Modifying this hash table does not affect the fragment in the URI. + +See more about Media Fragments URI 1.0 (W3C) at https://www.w3.org/TR/media-frags/</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The + fragment hash table from the URI.</doc> + <type name="GLib.HashTable" c:type="GHashTable*"> + <type name="utf8"/> + <type name="utf8"/> + </type> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to get the fragment table from.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_path" c:identifier="gst_uri_get_path" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Extract the path string from the URI object.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The path from the URI. Once finished + with the string should be g_free()'d.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to get the path from.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_path_segments" c:identifier="gst_uri_get_path_segments" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get a list of path segments from the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GList of path segment + strings or %NULL if no path segments are available. Free the list + when no longer needed with g_list_free_full(list, g_free).</doc> + <type name="GLib.List" c:type="GList*"> + <type name="utf8"/> + </type> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to get the path from.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_path_string" c:identifier="gst_uri_get_path_string" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Extract the path string from the URI object as a percent encoded URI path.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The path from the URI. Once finished + with the string should be g_free()'d.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to get the path from.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_port" c:identifier="gst_uri_get_port" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get the port number from the URI or %GST_URI_NO_PORT if it doesn't exist. +If @uri is %NULL then returns %GST_URI_NO_PORT.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The port number from the #GstUri object or %GST_URI_NO_PORT.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri object.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_query_keys" c:identifier="gst_uri_get_query_keys" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get a list of the query keys from the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A list of keys from + the URI query. Free the list with g_list_free().</doc> + <type name="GLib.List" c:type="GList*"> + <type name="utf8"/> + </type> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to examine.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_query_string" c:identifier="gst_uri_get_query_string" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get a percent encoded URI query string from the @uri.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A percent encoded query string. Use + g_free() when no longer needed.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to get the query string from.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_query_string_ordered" c:identifier="gst_uri_get_query_string_ordered" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get a percent encoded URI query string from the @uri, with query parameters +in the order provided by the @keys list. Only parameter keys in the list will +be added to the resulting URI string. This method can be used by retrieving +the keys with gst_uri_get_query_keys() and then sorting the list, for +example.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A percent encoded query string. Use +g_free() when no longer needed.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to get the query string from.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + <parameter name="keys" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A GList containing the + query argument key strings.</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="utf8"/> + </type> + </parameter> + </parameters> + </method> + <method name="get_query_table" c:identifier="gst_uri_get_query_table" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get the query table from the URI. Keys and values in the table are freed +with g_free when they are deleted. A value may be %NULL to indicate that +the key should appear in the query string in the URI, but does not have a +value. Free the returned #GHashTable with #g_hash_table_unref() when it is +no longer required. Modifying this hash table will modify the query in the +URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The query + hash table from the URI.</doc> + <type name="GLib.HashTable" c:type="GHashTable*"> + <type name="utf8"/> + <type name="utf8"/> + </type> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to get the query table from.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_query_value" c:identifier="gst_uri_get_query_value" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get the value associated with the @query_key key. Will return %NULL if the +key has no value or if the key does not exist in the URI query table. Because +%NULL is returned for both missing keys and keys with no value, you should +use gst_uri_query_has_key() to determine if a key is present in the URI +query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The value for the given key, or %NULL if not found.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to examine.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + <parameter name="query_key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The key to lookup.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_scheme" c:identifier="gst_uri_get_scheme"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get the scheme name from the URI or %NULL if it doesn't exist. +If @uri is %NULL then returns %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The scheme from the #GstUri object or %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri object.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_userinfo" c:identifier="gst_uri_get_userinfo" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Get the userinfo (usually in the form "username:password") from the URI +or %NULL if it doesn't exist. If @uri is %NULL then returns %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The userinfo from the #GstUri object or %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri object.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_normalized" c:identifier="gst_uri_is_normalized" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Tests the @uri to see if it is normalized. A %NULL @uri is considered to be +normalized.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">TRUE if the URI is normalized or is %NULL.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to test to see if it is normalized.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_writable" c:identifier="gst_uri_is_writable" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Check if it is safe to write to this #GstUri. + +Check if the refcount of @uri is exactly 1, meaning that no other +reference exists to the #GstUri and that the #GstUri is therefore writable. + +Modification of a #GstUri should only be done after verifying that it is +writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if it is safe to write to the object.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri object to test.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="join" c:identifier="gst_uri_join" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Join a reference URI onto a base URI using the method from RFC 3986. +If either URI is %NULL then the other URI will be returned with the ref count +increased.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A #GstUri which represents the base + with the reference URI joined on.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <instance-parameter name="base_uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The base URI to join another to.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="ref_uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The reference URI to join onto the + base URI.</doc> + <type name="Uri" c:type="GstUri*"/> + </parameter> + </parameters> + </method> + <method name="make_writable" c:identifier="gst_uri_make_writable" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Make the #GstUri writable. + +Checks if @uri is writable, and if so the original object is returned. If +not, then a writable copy is made and returned. This gives away the +reference to @uri and returns a reference to the new #GstUri. +If @uri is %NULL then %NULL is returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A writable version of @uri.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri object to make writable.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="new_with_base" c:identifier="gst_uri_new_with_base" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Like gst_uri_new(), but joins the new URI onto a base URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new URI joined onto @base.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <instance-parameter name="base" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The base URI to join the new URI to.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="scheme" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The scheme for the new URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="userinfo" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The user-info for the new URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="host" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The host name for the new URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The port number for the new URI or %GST_URI_NO_PORT.</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The path for the new URI with '/' separating path + elements.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="query" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The query string for the new URI with '&' separating + query elements. Elements containing '&' characters + should encode them as "&percnt;26".</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="fragment" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The fragment name for the new URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="normalize" c:identifier="gst_uri_normalize" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Normalization will remove extra path segments ("." and "..") from the URI. It +will also convert the scheme and host name to lower case and any +percent-encoded values to uppercase. + +The #GstUri object must be writable. Check with gst_uri_is_writable() or use +gst_uri_make_writable() first.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">TRUE if the URI was modified.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to normalize.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="query_has_key" c:identifier="gst_uri_query_has_key" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Check if there is a query table entry for the @query_key key.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if @query_key exists in the URI query table.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to examine.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + <parameter name="query_key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The key to lookup.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_uri_ref" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Add a reference to this #GstUri object. See gst_mini_object_ref() for further +info.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This object with the reference count incremented.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri object.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_query_key" c:identifier="gst_uri_remove_query_key" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Remove an entry from the query table by key.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the key existed in the table and was removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="query_key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The key to remove.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_fragment" c:identifier="gst_uri_set_fragment" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Sets the fragment string in the URI. Use a value of %NULL in @fragment to +unset the fragment string.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the fragment was set/unset successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="fragment" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The fragment string to set.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_host" c:identifier="gst_uri_set_host" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Set or unset the host for the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the host was set/unset successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="host" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new host string to set or %NULL to unset.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_path" c:identifier="gst_uri_set_path" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Sets or unsets the path in the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the path was set successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new path to set with path segments separated by '/', or use %NULL + to unset the path.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_path_segments" c:identifier="gst_uri_set_path_segments" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Replace the path segments list in the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the path segments were set successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="path_segments" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new + path list to set.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="utf8"/> + </type> + </parameter> + </parameters> + </method> + <method name="set_path_string" c:identifier="gst_uri_set_path_string" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Sets or unsets the path in the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the path was set successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="path" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new percent encoded path to set with path segments separated by +'/', or use %NULL to unset the path.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_port" c:identifier="gst_uri_set_port" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Set or unset the port number for the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the port number was set/unset successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new port number to set or %GST_URI_NO_PORT to unset.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_query_string" c:identifier="gst_uri_set_query_string" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Sets or unsets the query table in the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the query table was set successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new percent encoded query string to use to populate the query + table, or use %NULL to unset the query table.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_query_table" c:identifier="gst_uri_set_query_table" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Set the query table to use in the URI. The old table is unreferenced and a +reference to the new one is used instead. A value if %NULL for @query_table +will remove the query string from the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the new table was successfully used for the query table.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="query_table" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new + query table to use.</doc> + <type name="GLib.HashTable" c:type="GHashTable*"> + <type name="utf8"/> + <type name="utf8"/> + </type> + </parameter> + </parameters> + </method> + <method name="set_query_value" c:identifier="gst_uri_set_query_value" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This inserts or replaces a key in the query table. A @query_value of %NULL +indicates that the key has no associated value, but will still be present in +the query string.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the query table was successfully updated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="query_key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The key for the query entry.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="query_value" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The value for the key.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_scheme" c:identifier="gst_uri_set_scheme" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Set or unset the scheme for the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the scheme was set/unset successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="scheme" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new scheme to set or %NULL to unset the scheme.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_userinfo" c:identifier="gst_uri_set_userinfo" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Set or unset the user information for the URI.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the user information was set/unset successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The #GstUri to modify.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + <parameter name="userinfo" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The new user-information string to set or %NULL to unset.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="to_string" c:identifier="gst_uri_to_string" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Convert the URI to a string. + +Returns the URI as held in this object as a #gchar* nul-terminated string. +The caller should g_free() the string once they are finished with it. +The string is put together as described in RFC 3986.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The string version of the URI.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri to convert to a string.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + </parameters> + </method> + <method name="to_string_with_keys" c:identifier="gst_uri_to_string_with_keys" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Convert the URI to a string, with the query arguments in a specific order. +Only the keys in the @keys list will be added to the resulting string. + +Returns the URI as held in this object as a #gchar* nul-terminated string. +The caller should g_free() the string once they are finished with it. +The string is put together as described in RFC 3986.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The string version of the URI.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri to convert to a string.</doc> + <type name="Uri" c:type="const GstUri*"/> + </instance-parameter> + <parameter name="keys" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A GList containing + the query argument key strings.</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="utf8"/> + </type> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_uri_unref" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Decrement the reference count to this #GstUri object. + +If the reference count drops to 0 then finalize this object. + +See gst_mini_object_unref() for further info.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="uri" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This #GstUri object.</doc> + <type name="Uri" c:type="GstUri*"/> + </instance-parameter> + </parameters> + </method> + <function name="construct" c:identifier="gst_uri_construct" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Constructs a URI for a given valid protocol and location. + +Free-function: g_free</doc> + <doc-deprecated xml:space="preserve">Use GstURI instead.</doc-deprecated> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">a new string for this URI.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Protocol for URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="location" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Location for URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="from_string" c:identifier="gst_uri_from_string" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Parses a URI string into a new #GstUri object. Will return NULL if the URI +cannot be parsed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A new #GstUri object, or NULL.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The URI string to parse.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="from_string_escaped" c:identifier="gst_uri_from_string_escaped" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Parses a URI string into a new #GstUri object. Will return NULL if the URI +cannot be parsed. This is identical to gst_uri_from_string() except that +the userinfo and fragment components of the URI will not be unescaped while +parsing. + +Use this when you need to extract a username and password from the userinfo +such as https://user:password@example.com since either may contain +a URI-escaped ':' character. gst_uri_from_string() will unescape the entire +userinfo component, which will make it impossible to know which ':' +delineates the username and password. + +The same applies to the fragment component of the URI, such as +https://example.com/path#fragment which may contain a URI-escaped '#'.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A new #GstUri object, or NULL.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The URI string to parse.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_location" c:identifier="gst_uri_get_location"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Extracts the location out of a given valid URI, ie. the protocol and "://" +are stripped from the URI, which means that the location returned includes +the hostname if one is specified. The returned string must be freed using +g_free(). + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">the location for this URI. Returns + %NULL if the URI isn't valid. If the URI does not contain a location, an + empty string is returned.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A URI string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_protocol" c:identifier="gst_uri_get_protocol"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Extracts the protocol out of a given valid URI. The returned string must be +freed using g_free().</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The protocol for this URI.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A URI string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="has_protocol" c:identifier="gst_uri_has_protocol"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Checks if the protocol of a given valid URI matches @protocol.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the protocol matches.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">a URI string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">a protocol string (e.g. "http")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="is_valid" c:identifier="gst_uri_is_valid"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Tests if the given string is a valid URI identifier. URIs start with a valid +scheme followed by ":" and maybe a string identifying the location.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the string is a valid URI</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A URI string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="join_strings" c:identifier="gst_uri_join_strings" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This is a convenience function to join two URI strings and return the result. +The returned string should be g_free()'d after use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A string representing the percent-encoded join of + the two URIs.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="base_uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The percent-encoded base URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="ref_uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The percent-encoded reference URI to join to the @base_uri.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="protocol_is_supported" c:identifier="gst_uri_protocol_is_supported"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Checks if an element exists that supports the given URI protocol. Note +that a positive return value does not imply that a subsequent call to +gst_element_make_from_uri() is guaranteed to work.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Whether to check for a source or a sink</doc> + <type name="URIType" c:type="const GstURIType"/> + </parameter> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Protocol that should be checked for (e.g. "http" or "smb")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="protocol_is_valid" c:identifier="gst_uri_protocol_is_valid"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Tests if the given string is a valid protocol identifier. Protocols +must consist of alphanumeric characters, '+', '-' and '.' and must +start with a alphabetic character. See RFC 3986 Section 3.1.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the string is a valid protocol identifier, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + </record> + <constant name="VALUE_EQUAL" value="0" c:type="GST_VALUE_EQUAL"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Indicates that the first value provided to a comparison function +(gst_value_compare()) is equal to the second one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VALUE_GREATER_THAN" value="1" c:type="GST_VALUE_GREATER_THAN"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Indicates that the first value provided to a comparison function +(gst_value_compare()) is greater than the second one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="VALUE_HOLDS_ARRAY" c:identifier="GST_VALUE_HOLDS_ARRAY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstValueArray value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_BITMASK" c:identifier="GST_VALUE_HOLDS_BITMASK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstBitmask value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_BUFFER" c:identifier="GST_VALUE_HOLDS_BUFFER" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstBuffer value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_CAPS" c:identifier="GST_VALUE_HOLDS_CAPS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstCaps value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_CAPS_FEATURES" c:identifier="GST_VALUE_HOLDS_CAPS_FEATURES" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstCapsFeatures value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_DATE_TIME" c:identifier="GST_VALUE_HOLDS_DATE_TIME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstDateTime value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_DOUBLE_RANGE" c:identifier="GST_VALUE_HOLDS_DOUBLE_RANGE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstDoubleRange value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_FLAG_SET" c:identifier="GST_VALUE_HOLDS_FLAG_SET" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstFlagSet value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_FRACTION" c:identifier="GST_VALUE_HOLDS_FRACTION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstFraction value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_FRACTION_RANGE" c:identifier="GST_VALUE_HOLDS_FRACTION_RANGE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstFractionRange value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_INT64_RANGE" c:identifier="GST_VALUE_HOLDS_INT64_RANGE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstInt64Range value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_INT_RANGE" c:identifier="GST_VALUE_HOLDS_INT_RANGE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstIntRange value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_LIST" c:identifier="GST_VALUE_HOLDS_LIST" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstValueList value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_SAMPLE" c:identifier="GST_VALUE_HOLDS_SAMPLE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstSample value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="VALUE_HOLDS_STRUCTURE" c:identifier="GST_VALUE_HOLDS_STRUCTURE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Checks if the given #GValue contains a #GstStructure value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <parameters> + <parameter name="x"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the #GValue to check</doc> + </parameter> + </parameters> + </function-macro> + <constant name="VALUE_LESS_THAN" value="-1" c:type="GST_VALUE_LESS_THAN"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Indicates that the first value provided to a comparison function +(gst_value_compare()) is lesser than the second one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VALUE_UNORDERED" value="2" c:type="GST_VALUE_UNORDERED"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Indicates that the comparison function (gst_value_compare()) can not +determine a order for the two provided values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_MAJOR" value="1" c:type="GST_VERSION_MAJOR"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">The major version of GStreamer at compile time:</doc> + <source-position filename="../subprojects/gstreamer/gst/gstversion.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_MICRO" value="0" c:type="GST_VERSION_MICRO"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">The micro version of GStreamer at compile time:</doc> + <source-position filename="../subprojects/gstreamer/gst/gstversion.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_MINOR" value="23" c:type="GST_VERSION_MINOR"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">The minor version of GStreamer at compile time:</doc> + <source-position filename="../subprojects/gstreamer/gst/gstversion.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_NANO" value="1" c:type="GST_VERSION_NANO"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">The nano version of GStreamer at compile time: +Actual releases have 0, GIT versions have 1, prerelease versions have 2-...</doc> + <source-position filename="../subprojects/gstreamer/gst/gstversion.h"/> + <type name="gint" c:type="gint"/> + </constant> + <class name="ValueArray" c:symbol-prefix="value_array" c:type="GstValueArray" glib:type-name="GstValueArray" glib:get-type="gst_value_array_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A fundamental type that describes an ordered list of #GValue</doc> + <function name="append_and_take_value" c:identifier="gst_value_array_append_and_take_value" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Appends @append_value to the GstValueArray in @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_ARRAY</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="append_value" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to append</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </function> + <function name="append_value" c:identifier="gst_value_array_append_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Appends @append_value to the GstValueArray in @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_ARRAY</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="append_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to append</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="get_size" c:identifier="gst_value_array_get_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the number of values contained in @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_ARRAY</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="get_value" c:identifier="gst_value_array_get_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the value that is a member of the array contained in @value and +has the index @index.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value at the given index</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_ARRAY</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">index of value to get from the array</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="init" c:identifier="gst_value_array_init" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Initializes and pre-allocates a #GValue of type #GST_TYPE_ARRAY.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">The #GValue structure that has been passed in</doc> + <type name="GObject.Value" c:type="GValue*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">A zero-filled (uninitialized) #GValue structure</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="prealloc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">The number of entries to pre-allocate in the array</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="prepend_value" c:identifier="gst_value_array_prepend_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Prepends @prepend_value to the GstValueArray in @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_ARRAY</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="prepend_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to prepend</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + </class> + <callback name="ValueCompareFunc" c:type="GstValueCompareFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Used together with gst_value_compare() to compare #GValue items.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">one of GST_VALUE_LESS_THAN, GST_VALUE_EQUAL, GST_VALUE_GREATER_THAN +or GST_VALUE_UNORDERED</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">first value for comparison</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">second value for comparison</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </callback> + <callback name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Used by gst_value_deserialize() to parse a non-binary form into the #GValue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">%TRUE for success</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #GValue</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + <callback name="ValueDeserializeWithPSpecFunc" c:type="GstValueDeserializeWithPSpecFunc" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Used by gst_value_deserialize_with_pspec() to parse a non-binary form into the #GValue.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">%TRUE for success</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #GValue</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #GParamSpec describing the expected value</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </callback> + <class name="ValueList" c:symbol-prefix="value_list" glib:type-name="GstValueList" glib:get-type="gst_value_list_get_type" glib:fundamental="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">A fundamental type that describes an unordered list of #GValue</doc> + <function name="append_and_take_value" c:identifier="gst_value_list_append_and_take_value" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Appends @append_value to the GstValueList in @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_LIST</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="append_value" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to append</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </function> + <function name="append_value" c:identifier="gst_value_list_append_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Appends @append_value to the GstValueList in @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_LIST</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="append_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to append</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="concat" c:identifier="gst_value_list_concat"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Concatenates copies of @value1 and @value2 into a list. Values that are not +of type #GST_TYPE_LIST are treated as if they were lists of length 1. +@dest will be initialized to the type #GST_TYPE_LIST.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">an uninitialized #GValue to take the result</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="get_size" c:identifier="gst_value_list_get_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the number of values contained in @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the number of values</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_LIST</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="get_value" c:identifier="gst_value_list_get_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the value that is a member of the list contained in @value and +has the index @index.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value at the given index</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_LIST</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">index of value to get from the list</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="init" c:identifier="gst_value_list_init" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Initializes and pre-allocates a #GValue of type #GST_TYPE_LIST.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">The #GValue structure that has been passed in</doc> + <type name="GObject.Value" c:type="GValue*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">A zero-filled (uninitialized) #GValue structure</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="prealloc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">The number of entries to pre-allocate in the list</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="merge" c:identifier="gst_value_list_merge"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Merges copies of @value1 and @value2. Values that are not +of type #GST_TYPE_LIST are treated as if they were lists of length 1. + +The result will be put into @dest and will either be a list that will not +contain any duplicates, or a non-list type (if @value1 and @value2 +were equal).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">an uninitialized #GValue to take the result</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="prepend_value" c:identifier="gst_value_list_prepend_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Prepends @prepend_value to the GstValueList in @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue of type #GST_TYPE_LIST</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="prepend_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to prepend</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + </class> + <callback name="ValueSerializeFunc" c:type="GstValueSerializeFunc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">Used by gst_value_serialize() to obtain a non-binary form of the #GValue. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">the string representation of the value</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #GValue</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </callback> + <record name="ValueTable" c:type="GstValueTable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">VTable for the #GValue @type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #GType</doc> + <type name="GType" c:type="GType"/> + </field> + <field name="compare" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #GstValueCompareFunc</doc> + <type name="ValueCompareFunc" c:type="GstValueCompareFunc"/> + </field> + <field name="serialize" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #GstValueSerializeFunc</doc> + <type name="ValueSerializeFunc" c:type="GstValueSerializeFunc"/> + </field> + <field name="deserialize" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #GstValueDeserializeFunc</doc> + <type name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc"/> + </field> + <field name="deserialize_with_pspec" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.h">a #GstValueDeserializeWithPSpecFunc</doc> + <type name="ValueDeserializeWithPSpecFunc" c:type="GstValueDeserializeWithPSpecFunc"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <function-macro name="WRITE_UINT16_BE" c:identifier="GST_WRITE_UINT16_BE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Store a 16 bit unsigned integer value in big endian format into the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + <parameter name="val"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">value to store</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="WRITE_UINT16_LE" c:identifier="GST_WRITE_UINT16_LE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Store a 16 bit unsigned integer value in little endian format into the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + <parameter name="val"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">value to store</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="WRITE_UINT24_BE" c:identifier="GST_WRITE_UINT24_BE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Store a 24 bit unsigned integer value in big endian format into the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">value to store</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="WRITE_UINT24_LE" c:identifier="GST_WRITE_UINT24_LE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Store a 24 bit unsigned integer value in little endian format into the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">value to store</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="WRITE_UINT32_BE" c:identifier="GST_WRITE_UINT32_BE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Store a 32 bit unsigned integer value in big endian format into the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + <parameter name="val"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">value to store</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="WRITE_UINT32_LE" c:identifier="GST_WRITE_UINT32_LE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Store a 32 bit unsigned integer value in little endian format into the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + <parameter name="val"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">value to store</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="WRITE_UINT64_BE" c:identifier="GST_WRITE_UINT64_BE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Store a 64 bit unsigned integer value in big endian format into the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + <parameter name="val"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">value to store</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="WRITE_UINT64_LE" c:identifier="GST_WRITE_UINT64_LE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Store a 64 bit unsigned integer value in little endian format into the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + <parameter name="val"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">value to store</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="WRITE_UINT8" c:identifier="GST_WRITE_UINT8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Store an 8 bit unsigned integer value into the memory buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">memory location</doc> + </parameter> + <parameter name="num"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">value to store</doc> + </parameter> + </parameters> + </function-macro> + <function name="buffer_get_max_memory" c:identifier="gst_buffer_get_max_memory" moved-to="Buffer.get_max_memory" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the maximum amount of memory blocks that a buffer can hold. This is a +compile time constant that can be queried with the function. + +When more memory blocks are added, existing memory blocks will be merged +together to make room for the new block.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">the maximum amount of memory blocks that a buffer can hold.</doc> + <type name="guint" c:type="guint"/> + </return-value> + </function> + <function-macro name="buffer_get_parent_buffer_meta" c:identifier="gst_buffer_get_parent_buffer_meta" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Finds and returns a #GstParentBufferMeta if one exists on the +buffer</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="b"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="buffer_get_protection_meta" c:identifier="gst_buffer_get_protection_meta" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="buffer_is_writable" c:identifier="gst_buffer_is_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Tests if you can safely write to a buffer's metadata or its memory array. +It is only safe to change buffer metadata when the current reference is +writable, i.e. nobody can see the modifications you will make.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="buffer_list_add" c:identifier="gst_buffer_list_add" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Append @b at the end of @l.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <parameters> + <parameter name="l"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBufferList</doc> + </parameter> + <parameter name="b"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="buffer_list_is_writable" c:identifier="gst_buffer_list_is_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.h">Tests if you can safely add buffers and groups into a buffer list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <parameters> + <parameter name="list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.h">a #GstBufferList</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="buffer_list_make_writable" c:identifier="gst_buffer_list_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.h">Makes a writable buffer list from the given buffer list. If the source buffer +list is already writable, this will simply return the same buffer list. A +copy will otherwise be made using gst_buffer_list_copy().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <parameters> + <parameter name="list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.h">a #GstBufferList</doc> + </parameter> + </parameters> + </function-macro> + <function name="buffer_list_replace" c:identifier="gst_buffer_list_replace" moved-to="BufferList.replace" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Modifies a pointer to a #GstBufferList to point to a different +#GstBufferList. The modification is done atomically (so this is useful for +ensuring thread safety in some cases), and the reference counts are updated +appropriately (the old buffer list is unreffed, the new is reffed). + +Either @new_list or the #GstBufferList pointed to by @old_list may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">%TRUE if @new_list was different from @old_list</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_list" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">pointer to a pointer to a + #GstBufferList to be replaced.</doc> + <type name="BufferList" c:type="GstBufferList**"/> + </parameter> + <parameter name="new_list" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">pointer to a #GstBufferList that + will replace the buffer list pointed to by @old_list.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_take" c:identifier="gst_buffer_list_take" moved-to="BufferList.take" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Modifies a pointer to a #GstBufferList to point to a different +#GstBufferList. This function is similar to gst_buffer_list_replace() except +that it takes ownership of @new_list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">%TRUE if @new_list was different from @old_list</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_list" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">pointer to a pointer to a #GstBufferList + to be replaced.</doc> + <type name="BufferList" c:type="GstBufferList**"/> + </parameter> + <parameter name="new_list" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">pointer to a #GstBufferList + that will replace the bufferlist pointed to by @old_list.</doc> + <type name="BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function-macro name="buffer_make_writable" c:identifier="gst_buffer_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Returns a writable copy of @buf. If the source buffer is +already writable, this will simply return the same buffer. + +Use this function to ensure that a buffer can be safely modified before +making changes to it, including changing the metadata such as PTS/DTS. + +If the reference count of the source buffer @buf is exactly one, the caller +is the sole owner and this function will return the buffer object unchanged. + +If there is more than one reference on the object, a copy will be made using +gst_buffer_copy(). The passed-in @buf will be unreffed in that case, and the +caller will now own a reference to the new returned buffer object. Note +that this just copies the buffer structure itself, the underlying memory is +not copied if it can be shared amongst multiple buffers. + +In short, this function unrefs the buf in the argument and refs the buffer +that it returns. Don't access the argument after calling this function unless +you have an additional reference to it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="buf"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="buffer_new_and_alloc" c:identifier="gst_buffer_new_and_alloc" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="s"> + </parameter> + </parameters> + </function-macro> + <function name="buffer_replace" c:identifier="gst_buffer_replace" moved-to="Buffer.replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Modifies a pointer to a #GstBuffer to point to a different #GstBuffer. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +buffer is unreffed, the new is reffed). + +Either @nbuf or the #GstBuffer pointed to by @obuf may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">%TRUE when @obuf was different from @nbuf.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="obuf" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">pointer to a pointer to + a #GstBuffer to be replaced.</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="nbuf" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">pointer to a #GstBuffer that will + replace the buffer pointed to by @obuf.</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="calculate_linear_regression" c:identifier="gst_calculate_linear_regression" version="1.12" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Calculates the linear regression of the values @xy and places the +result in @m_num, @m_denom, @b and @xbase, representing the function + y(x) = m_num/m_denom * (x - xbase) + b +that has the least-square distance from all points @x and @y. + +@r_squared will contain the remaining error. + +If @temp is not %NULL, it will be used as temporary space for the function, +in which case the function works without any allocation at all. If @temp is +%NULL, an allocation will take place. @temp should have at least the same +amount of memory allocated as @xy, i.e. 2*n*sizeof(GstClockTime). + +> This function assumes (x,y) values with reasonable large differences +> between them. It will not calculate the exact results if the differences +> between neighbouring values are too small due to not being able to +> represent sub-integer values during the calculations.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if the linear regression was successfully calculated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="xy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Pairs of (x,y) values</doc> + <type name="ClockTime" c:type="const GstClockTime*"/> + </parameter> + <parameter name="temp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Temporary scratch space used by the function</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">number of (x,y) pairs</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="m_num" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">numerator of calculated slope</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="m_denom" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">denominator of calculated slope</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="b" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Offset at Y-axis</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="xbase" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Offset at X-axis</doc> + <type name="ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="r_squared" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">R-squared</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </function> + <function name="caps_features_from_string" c:identifier="gst_caps_features_from_string" moved-to="CapsFeatures.from_string" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Creates a #GstCapsFeatures from a string representation.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a new #GstCapsFeatures or + %NULL when the string could not be parsed.</doc> + <type name="CapsFeatures" c:type="GstCapsFeatures*"/> + </return-value> + <parameters> + <parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">a string representation of a #GstCapsFeatures.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="caps_from_string" c:identifier="gst_caps_from_string" moved-to="Caps.from_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Converts @caps from a string representation. + +The implementation of serialization up to 1.20 would lead to unexpected results +when there were nested #GstCaps / #GstStructure deeper than one level.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a newly allocated #GstCaps</doc> + <type name="Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a string to convert to #GstCaps</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function-macro name="caps_is_writable" c:identifier="gst_caps_is_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Tests if you can safely modify @caps. It is only safe to modify caps when +there is only one owner of the caps - ie, the object is writable.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">a #GstCaps</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="caps_make_writable" c:identifier="gst_caps_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">Returns a writable copy of @caps. + +If there is only one reference count on @caps, the caller must be the owner, +and so this function will return the caps object unchanged. If on the other +hand there is more than one reference on the object, a new caps object will +be returned. The caller's reference on @caps will be removed, and instead the +caller will own a reference to the returned object. + +In short, this function unrefs the caps in the argument and refs the caps +that it returns. Don't access the argument after calling this function. See +also: gst_caps_ref().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <parameters> + <parameter name="caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.h">a #GstCaps</doc> + </parameter> + </parameters> + </function-macro> + <function name="caps_replace" c:identifier="gst_caps_replace" moved-to="Caps.replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Modifies a pointer to a #GstCaps to point to a different #GstCaps. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +caps is unreffed, the new is reffed). + +Either @new_caps or the #GstCaps pointed to by @old_caps may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @new_caps was different from @old_caps</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_caps" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">pointer to a pointer + to a #GstCaps to be replaced.</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + <parameter name="new_caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">pointer to a #GstCaps that will + replace the caps pointed to by @old_caps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="caps_take" c:identifier="gst_caps_take" moved-to="Caps.take" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Modifies a pointer to a #GstCaps to point to a different #GstCaps. This +function is similar to gst_caps_replace() except that it takes ownership +of @new_caps.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">%TRUE if @new_caps was different from @old_caps</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_caps" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">pointer to a pointer to a #GstCaps to be + replaced.</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + <parameter name="new_caps" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">pointer to a #GstCaps that will + replace the caps pointed to by @old_caps.</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="clear_buffer" c:identifier="gst_clear_buffer" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Clears a reference to a #GstBuffer. + +@buf_ptr must not be %NULL. + +If the reference is %NULL then this function does nothing. Otherwise, the +reference count of the buffer is decreased and the pointer is set to %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buf_ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">a pointer to a #GstBuffer reference</doc> + <type name="Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </function> + <function name="clear_buffer_list" c:identifier="gst_clear_buffer_list" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">Clears a reference to a #GstBufferList. + +@list_ptr must not be %NULL. + +If the reference is %NULL then this function does nothing. Otherwise, the +reference count of the list is decreased and the pointer is set to %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbufferlist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list_ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbufferlist.c">a pointer to a #GstBufferList reference</doc> + <type name="BufferList" c:type="GstBufferList**"/> + </parameter> + </parameters> + </function> + <function name="clear_caps" c:identifier="gst_clear_caps" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">Clears a reference to a #GstCaps. + +@caps_ptr must not be %NULL. + +If the reference is %NULL then this function does nothing. Otherwise, the +reference count of the caps is decreased and the pointer is set to %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="caps_ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcaps.c">a pointer to a #GstCaps reference</doc> + <type name="Caps" c:type="GstCaps**"/> + </parameter> + </parameters> + </function> + <function name="clear_event" c:identifier="gst_clear_event" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Clears a reference to a #GstEvent. + +@event_ptr must not be %NULL. + +If the reference is %NULL then this function does nothing. Otherwise, the +reference count of the event is decreased and the pointer is set to %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="event_ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a pointer to a #GstEvent reference</doc> + <type name="Event" c:type="GstEvent**"/> + </parameter> + </parameters> + </function> + <function name="clear_message" c:identifier="gst_clear_message" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Clears a reference to a #GstMessage. + +@msg_ptr must not be %NULL. + +If the reference is %NULL then this function does nothing. Otherwise, the +reference count of the message is decreased and the pointer is set to %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg_ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a pointer to a #GstMessage reference</doc> + <type name="Message" c:type="GstMessage**"/> + </parameter> + </parameters> + </function> + <function name="clear_mini_object" c:identifier="gst_clear_mini_object" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">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> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstminiobject.c">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" filename="../subprojects/gstreamer/gst/gstobject.c">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> + <source-position filename="../subprojects/gstreamer/gst/gstobject.h"/> + <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" filename="../subprojects/gstreamer/gst/gstobject.c">a pointer to a #GstObject reference</doc> + <type name="Object" c:type="GstObject**"/> + </parameter> + </parameters> + </function> + <function name="clear_query" c:identifier="gst_clear_query" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Clears a reference to a #GstQuery. + +@query_ptr must not be %NULL. + +If the reference is %NULL then this function does nothing. Otherwise, the +reference count of the query is decreased and the pointer is set to %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="query_ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a pointer to a #GstQuery reference</doc> + <type name="Query" c:type="GstQuery**"/> + </parameter> + </parameters> + </function> + <function name="clear_structure" c:identifier="gst_clear_structure" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">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> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <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" filename="../subprojects/gstreamer/gst/gststructure.c">a pointer to a #GstStructure reference</doc> + <type name="Structure" c:type="GstStructure**"/> + </parameter> + </parameters> + </function> + <function name="clear_tag_list" c:identifier="gst_clear_tag_list" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Clears a reference to a #GstTagList. + +@taglist_ptr must not be %NULL. + +If the reference is %NULL then this function does nothing. Otherwise, the +reference count of the taglist is decreased and the pointer is set to %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="taglist_ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a pointer to a #GstTagList reference</doc> + <type name="TagList" c:type="GstTagList**"/> + </parameter> + </parameters> + </function> + <function name="clear_uri" c:identifier="gst_clear_uri" version="1.18" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Clears a reference to a #GstUri. + +@uri_ptr must not be %NULL. + +If the reference is %NULL then this function does nothing. Otherwise, the +reference count of the uri is decreased and the pointer is set to %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="uri_ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">a pointer to a #GstUri reference</doc> + <type name="Uri" c:type="GstUri**"/> + </parameter> + </parameters> + </function> + <function-macro name="context_is_writable" c:identifier="gst_context_is_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.h">Tests if you can safely write into a context's structure or validly +modify the seqnum and timestamp fields.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <parameters> + <parameter name="context"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.h">a #GstContext</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="context_make_writable" c:identifier="gst_context_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.h">Checks if a context is writable. If not, a writable copy is made and +returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <parameters> + <parameter name="context"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.h">the context to make writable</doc> + </parameter> + </parameters> + </function-macro> + <function name="context_replace" c:identifier="gst_context_replace" moved-to="Context.replace" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">Modifies a pointer to a #GstContext to point to a different #GstContext. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +context is unreffed, the new one is reffed). + +Either @new_context or the #GstContext pointed to by @old_context may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">%TRUE if @new_context was different from @old_context</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_context" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">pointer to a pointer to a #GstContext + to be replaced.</doc> + <type name="Context" c:type="GstContext**"/> + </parameter> + <parameter name="new_context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcontext.c">pointer to a #GstContext that will + replace the context pointed to by @old_context.</doc> + <type name="Context" c:type="GstContext*"/> + </parameter> + </parameters> + </function> + <function name="core_error_quark" c:identifier="gst_core_error_quark" moved-to="CoreError.quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="debug_add_log_function" c:identifier="gst_debug_add_log_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Adds the logging function to the list of logging functions. +Be sure to use #G_GNUC_NO_INSTRUMENT on that function, it is needed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the function to use</doc> + <type name="LogFunction" c:type="GstLogFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">called when @user_data is not used anymore</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + <function name="debug_add_ring_buffer_logger" c:identifier="gst_debug_add_ring_buffer_logger" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Adds a memory ringbuffer based debug logger that stores up to +@max_size_per_thread bytes of logs per thread and times out threads after +@thread_timeout seconds of inactivity. + +Logs can be fetched with gst_debug_ring_buffer_logger_get_logs() and the +logger can be removed again with gst_debug_remove_ring_buffer_logger(). +Only one logger at a time is possible.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="max_size_per_thread" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Maximum size of log per thread in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="thread_timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Timeout for threads in seconds</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="debug_bin_to_dot_data" c:identifier="gst_debug_bin_to_dot_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">To aid debugging applications one can use this method to obtain the whole +network of gstreamer elements that form the pipeline into a dot file. +This data can be processed with graphviz to get an image.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdebugutils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">a string containing the pipeline in graphviz +dot format.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">the top-level pipeline that should be analyzed</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="details" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">type of #GstDebugGraphDetails to use</doc> + <type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/> + </parameter> + </parameters> + </function> + <function name="debug_bin_to_dot_file" c:identifier="gst_debug_bin_to_dot_file"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">To aid debugging applications one can use this method to write out the whole +network of gstreamer elements that form the pipeline into a dot file. +This file can be processed with graphviz to get an image. + +``` shell + dot -Tpng -oimage.png graph_lowlevel.dot +```</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdebugutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">the top-level pipeline that should be analyzed</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="details" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">type of #GstDebugGraphDetails to use</doc> + <type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/> + </parameter> + <parameter name="file_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">output base filename (e.g. "myplayer")</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="debug_bin_to_dot_file_with_ts" c:identifier="gst_debug_bin_to_dot_file_with_ts"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">This works like gst_debug_bin_to_dot_file(), but adds the current timestamp +to the filename, so that it can be used to take multiple snapshots.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdebugutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">the top-level pipeline that should be analyzed</doc> + <type name="Bin" c:type="GstBin*"/> + </parameter> + <parameter name="details" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">type of #GstDebugGraphDetails to use</doc> + <type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/> + </parameter> + <parameter name="file_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdebugutils.c">output base filename (e.g. "myplayer")</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="debug_construct_term_color" c:identifier="gst_debug_construct_term_color"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Constructs a string that can be used for getting the desired color in color +terminals. +You need to free the string after use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a string containing the color + definition</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="colorinfo" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the color info</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="debug_construct_win_color" c:identifier="gst_debug_construct_win_color"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Constructs an integer that can be used for getting the desired color in +windows' terminals (cmd.exe). As there is no mean to underline, we simply +ignore this attribute. + +This function returns 0 on non-windows machines.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">an integer containing the color definition</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="colorinfo" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the color info</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="debug_get_all_categories" c:identifier="gst_debug_get_all_categories"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Returns a snapshot of a all categories that are currently in use . This list +may change anytime. +The caller has to free the list after use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the list of + debug categories</doc> + <type name="GLib.SList" c:type="GSList*"> + <type name="DebugCategory"/> + </type> + </return-value> + </function> + <function name="debug_get_color_mode" c:identifier="gst_debug_get_color_mode" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Changes the coloring mode for debug output.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">see @GstDebugColorMode for possible values.</doc> + <type name="DebugColorMode" c:type="GstDebugColorMode"/> + </return-value> + </function> + <function name="debug_get_default_threshold" c:identifier="gst_debug_get_default_threshold"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Returns the default threshold that is used for new categories.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the default threshold level</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </return-value> + </function> + <function name="debug_get_stack_trace" c:identifier="gst_debug_get_stack_trace" version="1.12"> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a stack trace, if libunwind or glibc backtrace are +present, else %NULL.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">A set of #GstStackTraceFlags to determine how the stack trace should +look like. Pass #GST_STACK_TRACE_SHOW_NONE to retrieve a minimal backtrace.</doc> + <type name="StackTraceFlags" c:type="GstStackTraceFlags"/> + </parameter> + </parameters> + </function> + <function name="debug_is_active" c:identifier="gst_debug_is_active"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Checks if debugging output is activated.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">%TRUE, if debugging is activated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="debug_is_colored" c:identifier="gst_debug_is_colored"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Checks if the debugging output should be colored.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">%TRUE, if the debug output should be colored.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="debug_level_get_name" c:identifier="gst_debug_level_get_name" moved-to="DebugLevel.get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Get the string representation of a debugging level</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the name</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the level to get the name for</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + </parameters> + </function> + <function name="debug_log" c:identifier="gst_debug_log" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Logs the given message using the currently registered debugging handlers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">category to log</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level of the message is in</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the file that emitted the message, usually the __FILE__ identifier</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the function that emitted the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the line from that the message was emitted, usually __LINE__</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the object this message relates to, + or %NULL if none</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">optional arguments for the format</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="debug_log_default" c:identifier="gst_debug_log_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">The default logging handler used by GStreamer. Logging functions get called +whenever a macro like GST_DEBUG or similar is used. By default this function +is setup to output the message and additional info to stderr (or the log file +specified via the GST_DEBUG_FILE environment variable) as received via +@user_data. + +You can add other handlers by using gst_debug_add_log_function(). +And you can remove this handler by calling +gst_debug_remove_log_function(gst_debug_log_default);</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">category to log</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level of the message</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the file that emitted the message, usually the __FILE__ identifier</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the function that emitted the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the line from that the message was emitted, usually __LINE__</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the object this message relates to, + or %NULL if none</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the actual message</doc> + <type name="DebugMessage" c:type="GstDebugMessage*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the FILE* to log to</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="debug_log_get_line" c:identifier="gst_debug_log_get_line" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Returns the string representation for the specified debug log message +formatted in the same way as gst_debug_log_default() (the default handler), +without color. The purpose is to make it easy for custom log output +handlers to get a log output that is identical to what the default handler +would write out.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">category to log</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level of the message</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the file that emitted the message, usually the __FILE__ identifier</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the function that emitted the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the line from that the message was emitted, usually __LINE__</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the object this message relates to, + or %NULL if none</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the actual message</doc> + <type name="DebugMessage" c:type="GstDebugMessage*"/> + </parameter> + </parameters> + </function> + <function name="debug_log_id" c:identifier="gst_debug_log_id" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Logs the given message using the currently registered debugging handlers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">category to log</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level of the message is in</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the file that emitted the message, usually the __FILE__ identifier</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the function that emitted the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the line from that the message was emitted, usually __LINE__</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the identifier of the object this message + relates to, or %NULL if none.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">optional arguments for the format</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="debug_log_id_literal" c:identifier="gst_debug_log_id_literal" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Logs the given message using the currently registered debugging handlers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">category to log</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level of the message is in</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the file that emitted the message, usually the __FILE__ identifier</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the function that emitted the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the line from that the message was emitted, usually __LINE__</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the identifier of the object this message relates to + or %NULL if none</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="message_string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a message string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="debug_log_id_valist" c:identifier="gst_debug_log_id_valist" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Logs the given message using the currently registered debugging handlers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">category to log</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level of the message is in</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the file that emitted the message, usually the __FILE__ identifier</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the function that emitted the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the line from that the message was emitted, usually __LINE__</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the identifier of the object this message + relates to or %NULL if none.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">optional arguments for the format</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </function> + <function name="debug_log_literal" c:identifier="gst_debug_log_literal" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Logs the given message using the currently registered debugging handlers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">category to log</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level of the message is in</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the file that emitted the message, usually the __FILE__ identifier</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the function that emitted the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the line from that the message was emitted, usually __LINE__</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the object this message relates to, + or %NULL if none</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="message_string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a message string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="debug_log_valist" c:identifier="gst_debug_log_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Logs the given message using the currently registered debugging handlers.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">category to log</doc> + <type name="DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level of the message is in</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the file that emitted the message, usually the __FILE__ identifier</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the function that emitted the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the line from that the message was emitted, usually __LINE__</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the object this message relates to, + or %NULL if none</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">optional arguments for the format</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </function> + <function name="debug_print_stack_trace" c:identifier="gst_debug_print_stack_trace"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">If libunwind, glibc backtrace or DbgHelp are present +a stack trace is printed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="debug_remove_log_function" c:identifier="gst_debug_remove_log_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Removes all registered instances of the given logging functions.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">How many instances of the function were removed</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="call"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the log function to remove, or %NULL to + remove the default log function</doc> + <type name="LogFunction" c:type="GstLogFunction"/> + </parameter> + </parameters> + </function> + <function name="debug_remove_log_function_by_data" c:identifier="gst_debug_remove_log_function_by_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Removes all registered instances of log functions with the given user data.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">How many instances of the function were removed</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">user data of the log function to remove</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="debug_remove_ring_buffer_logger" c:identifier="gst_debug_remove_ring_buffer_logger" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Removes any previously added ring buffer logger with +gst_debug_add_ring_buffer_logger().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="debug_ring_buffer_logger_get_logs" c:identifier="gst_debug_ring_buffer_logger_get_logs" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Fetches the current logs per thread from the ring buffer logger. See +gst_debug_add_ring_buffer_logger() for details.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">NULL-terminated array of +strings with the debug output per thread</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + </function> + <function name="debug_set_active" c:identifier="gst_debug_set_active"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">If activated, debugging messages are sent to the debugging +handlers. +It makes sense to deactivate it for speed issues. +> This function is not threadsafe. It makes sense to only call it +during initialization.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Whether to use debugging output or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="debug_set_color_mode" c:identifier="gst_debug_set_color_mode" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Changes the coloring mode for debug output. + +This function may be called before gst_init().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">The coloring mode for debug output. See @GstDebugColorMode.</doc> + <type name="DebugColorMode" c:type="GstDebugColorMode"/> + </parameter> + </parameters> + </function> + <function name="debug_set_color_mode_from_string" c:identifier="gst_debug_set_color_mode_from_string" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Changes the coloring mode for debug output. + +This function may be called before gst_init().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">The coloring mode for debug output. One of the following: +"on", "auto", "off", "disable", "unix".</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="debug_set_colored" c:identifier="gst_debug_set_colored"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Sets or unsets the use of coloured debugging output. +Same as gst_debug_set_color_mode () with the argument being +being GST_DEBUG_COLOR_MODE_ON or GST_DEBUG_COLOR_MODE_OFF. + +This function may be called before gst_init().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="colored" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Whether to use colored output or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="debug_set_default_threshold" c:identifier="gst_debug_set_default_threshold"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Sets the default threshold to the given level and updates all categories to +use this threshold. + +This function may be called before gst_init().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level to set</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + </parameters> + </function> + <function name="debug_set_threshold_for_name" c:identifier="gst_debug_set_threshold_for_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Sets all categories which match the given glob style pattern to the given +level.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">name of the categories to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">level to set them to</doc> + <type name="DebugLevel" c:type="GstDebugLevel"/> + </parameter> + </parameters> + </function> + <function name="debug_set_threshold_from_string" c:identifier="gst_debug_set_threshold_from_string" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Sets the debug logging wanted in the same form as with the GST_DEBUG +environment variable. You can use wildcards such as '*', but note that +the order matters when you use wild cards, e.g. "foosrc:6,*src:3,*:2" sets +everything to log level 2.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">comma-separated list of "category:level" pairs to be used + as debug logging levels</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="reset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">%TRUE to clear all previously-set debug levels before setting + new thresholds +%FALSE if adding the threshold described by @list to the one already set.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="debug_unset_threshold_for_name" c:identifier="gst_debug_unset_threshold_for_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Resets all categories with the given name back to the default level.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">name of the categories to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="deinit" c:identifier="gst_deinit"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">Clean up any resources created by GStreamer in gst_init(). + +It is normally not needed to call this function in a normal application +as the resources will automatically be freed when the program terminates. +This function is therefore mostly used by testsuites and other memory +profiling tools. + +After this call GStreamer (including this method) should not be used anymore.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="dynamic_type_register" c:identifier="gst_dynamic_type_register" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.c">Registers a new #GstDynamicTypeFactory in the registry</doc> + <source-position filename="../subprojects/gstreamer/gst/gstdynamictypefactory.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.c">The #GstPlugin to register @dyn_type for</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstdynamictypefactory.c">The #GType to register dynamically</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + <function-macro name="element_factory_get_author" c:identifier="gst_element_factory_get_author" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="element_factory_get_description" c:identifier="gst_element_factory_get_description" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="element_factory_get_documentation_uri" c:identifier="gst_element_factory_get_documentation_uri" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="element_factory_get_icon_name" c:identifier="gst_element_factory_get_icon_name" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="element_factory_get_klass" c:identifier="gst_element_factory_get_klass" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="element_factory_get_longname" c:identifier="gst_element_factory_get_longname" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="element_get_name" c:identifier="gst_element_get_name" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Returns a copy of the name of @elem. +Caller should g_free() the return value after usage. +For a nameless element, this returns %NULL, which you can safely g_free() +as well.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to get the name of @elem.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="element_get_parent" c:identifier="gst_element_get_parent" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Get the parent of an element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to get the parent of.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="element_set_name" c:identifier="gst_element_set_name" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Sets the name of the element, getting rid of the old name if there was one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to set the name of.</doc> + </parameter> + <parameter name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the new name</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="element_set_parent" c:identifier="gst_element_set_parent" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">Sets the parent of an element.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <parameters> + <parameter name="elem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">a #GstElement to set the parent of.</doc> + </parameter> + <parameter name="parent"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.h">the new parent #GstObject of the element.</doc> + </parameter> + </parameters> + </function-macro> + <function name="error_get_message" c:identifier="gst_error_get_message"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.c">Get a string describing the error message in the current locale.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsterror.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.c">a newly allocated string describing + the error message (in UTF-8 encoding)</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="domain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.c">the GStreamer error domain this error belongs to.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsterror.c">the error code belonging to the domain.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function-macro name="event_is_writable" c:identifier="gst_event_is_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Tests if you can safely write data into a event's structure or validly +modify the seqnum and timestamp field.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="ev"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">a #GstEvent</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="event_make_writable" c:identifier="gst_event_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">Makes a writable event from the given event. If the source event is +already writable, this will simply return the same event. A copy will +otherwise be made using gst_event_copy().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <parameters> + <parameter name="ev"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.h">a #GstEvent</doc> + </parameter> + </parameters> + </function-macro> + <function name="event_replace" c:identifier="gst_event_replace" moved-to="Event.replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Modifies a pointer to a #GstEvent to point to a different #GstEvent. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +event is unreffed, the new one is reffed). + +Either @new_event or the #GstEvent pointed to by @old_event may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">%TRUE if @new_event was different from @old_event</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_event" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a + pointer to a #GstEvent to be replaced.</doc> + <type name="Event" c:type="GstEvent**"/> + </parameter> + <parameter name="new_event" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a #GstEvent that will + replace the event pointed to by @old_event.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </function> + <function name="event_steal" c:identifier="gst_event_steal" moved-to="Event.steal" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Atomically replace the #GstEvent pointed to by @old_event with %NULL and +return the original event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the #GstEvent that was in @old_event</doc> + <type name="Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="old_event" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a + pointer to a #GstEvent to be stolen.</doc> + <type name="Event" c:type="GstEvent**"/> + </parameter> + </parameters> + </function> + <function name="event_take" c:identifier="gst_event_take" moved-to="Event.take" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Modifies a pointer to a #GstEvent to point to a different #GstEvent. This +function is similar to gst_event_replace() except that it takes ownership of +@new_event. + +Either @new_event or the #GstEvent pointed to by @old_event may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">%TRUE if @new_event was different from @old_event</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_event" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a + pointer to a #GstEvent to be stolen.</doc> + <type name="Event" c:type="GstEvent**"/> + </parameter> + <parameter name="new_event" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">pointer to a #GstEvent that will + replace the event pointed to by @old_event.</doc> + <type name="Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </function> + <function name="event_type_get_flags" c:identifier="gst_event_type_get_flags" moved-to="EventType.get_flags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Gets the #GstEventTypeFlags associated with @type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEventTypeFlags.</doc> + <type name="EventTypeFlags" c:type="GstEventTypeFlags"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEventType</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + </parameters> + </function> + <function name="event_type_get_name" c:identifier="gst_event_type_get_name" moved-to="EventType.get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Get a printable name for the given event type. Do not modify or free.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a reference to the static name of the event.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the event type</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + </parameters> + </function> + <function name="event_type_to_quark" c:identifier="gst_event_type_to_quark" moved-to="EventType.to_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Get the unique quark for the given event type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the quark associated with the event type</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">the event type</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + </parameters> + </function> + <function name="event_type_to_sticky_ordering" c:identifier="gst_event_type_to_sticky_ordering" moved-to="EventType.to_sticky_ordering" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">Converts the #GstEventType to an unsigned integer that +represents the ordering of sticky events when re-sending them. +A lower value represents a higher-priority event.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstevent.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">an unsigned integer</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstevent.c">a #GstEventType</doc> + <type name="EventType" c:type="GstEventType"/> + </parameter> + </parameters> + </function> + <function name="filename_to_uri" c:identifier="gst_filename_to_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Similar to g_filename_to_uri(), but attempts to handle relative file paths +as well. Before converting @filename into an URI, it will be prefixed by +the current working directory if it is a relative path, and then the path +will be canonicalised so that it doesn't contain any './' or '../' segments. + +On Windows @filename should be in UTF-8 encoding.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">newly-allocated URI string, or NULL on error. The caller must + free the URI string with g_free() when no longer needed.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="filename" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">absolute or relative file name path</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="flow_get_name" c:identifier="gst_flow_get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Gets a string representing the given flow return.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a static string with the name of the flow return.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstFlowReturn to get the name of.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </parameter> + </parameters> + </function> + <function name="flow_to_quark" c:identifier="gst_flow_to_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Get the unique quark for the given GstFlowReturn.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the quark associated with the flow return or 0 if an +invalid return was specified.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstFlowReturn to get the quark of.</doc> + <type name="FlowReturn" c:type="GstFlowReturn"/> + </parameter> + </parameters> + </function> + <function name="format_get_by_nick" c:identifier="gst_format_get_by_nick" moved-to="Format.get_by_nick"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Return the format registered with the given nick.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The format with @nick or GST_FORMAT_UNDEFINED +if the format was not registered.</doc> + <type name="Format" c:type="GstFormat"/> + </return-value> + <parameters> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The nick of the format</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="format_get_details" c:identifier="gst_format_get_details" moved-to="Format.get_details"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Get details about the given format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The #GstFormatDefinition for @format or %NULL +on failure. + +MT safe.</doc> + <type name="FormatDefinition" c:type="const GstFormatDefinition*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The format to get details of</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </function> + <function name="format_get_name" c:identifier="gst_format_get_name" moved-to="Format.get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Get a printable name for the given format. Do not modify or free.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">a reference to the static name of the format +or %NULL if the format is unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">a #GstFormat</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </function> + <function name="format_iterate_definitions" c:identifier="gst_format_iterate_definitions" moved-to="Format.iterate_definitions"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Iterate all the registered formats. The format definition is read +only.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">a GstIterator of #GstFormatDefinition.</doc> + <type name="Iterator" c:type="GstIterator*"/> + </return-value> + </function> + <function name="format_register" c:identifier="gst_format_register" moved-to="Format.register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Create a new GstFormat based on the nick or return an +already registered format with that nick.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">A new GstFormat or an already registered format +with the same nick. + +MT safe.</doc> + <type name="Format" c:type="GstFormat"/> + </return-value> + <parameters> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The nick of the new format</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The description of the new format</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="format_to_quark" c:identifier="gst_format_to_quark" moved-to="Format.to_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">Get the unique quark for the given format.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">the quark associated with the format or 0 if the format +is unknown.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">a #GstFormat</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </function> + <function name="formats_contains" c:identifier="gst_formats_contains"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">See if the given format is inside the format array.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">%TRUE if the format is found inside the array</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="formats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">The format array to search</doc> + <array c:type="const GstFormat*"> + <type name="Format" c:type="GstFormat"/> + </array> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstformat.c">the format to find</doc> + <type name="Format" c:type="GstFormat"/> + </parameter> + </parameters> + </function> + <function-macro name="gdouble_to_guint64" c:identifier="gst_gdouble_to_guint64" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Convert @value to a guint64.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">the #gdouble value to convert</doc> + </parameter> + </parameters> + </function-macro> + <function name="get_main_executable_path" c:identifier="gst_get_main_executable_path" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">This helper is mostly helpful for plugins that need to +inspect the folder of the main executable to determine +their set of features. + +When a plugin is initialized from the gst-plugin-scanner +external process, the returned path will be the same as from the +parent process.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">The path of the executable that + initialized GStreamer, or %NULL if it could not be determined.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + </function> + <function-macro name="guint64_to_gdouble" c:identifier="gst_guint64_to_gdouble" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">Convert @value to a gdouble.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <parameters> + <parameter name="value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.h">the #guint64 value to convert</doc> + </parameter> + </parameters> + </function-macro> + <function name="info_strdup_printf" c:identifier="gst_info_strdup_printf" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Allocates, fills and returns a 0-terminated string from the printf style +@format string and corresponding arguments. + +See gst_info_vasprintf() for when this function is required. + +Free with g_free().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a newly allocated null terminated string or %NULL on any error</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the printf arguments for @format</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="info_strdup_vprintf" c:identifier="gst_info_strdup_vprintf" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Allocates, fills and returns a null terminated string from the printf style +@format string and @args. + +See gst_info_vasprintf() for when this function is required. + +Free with g_free().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a newly allocated null terminated string or %NULL on any error</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the va_list of printf arguments for @format</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </function> + <function name="info_vasprintf" c:identifier="gst_info_vasprintf" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Allocates and fills a string large enough (including the terminating null +byte) to hold the specified printf style @format and @args. + +This function deals with the GStreamer specific printf specifiers +#GST_PTR_FORMAT and #GST_SEGMENT_FORMAT. If you do not have these specifiers +in your @format string, you do not need to use this function and can use +alternatives such as g_vasprintf(). + +Free @result with g_free().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the length of the string allocated into @result or -1 on any error</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="result" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the resulting string</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the va_list of printf arguments for @format</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </function> + <function name="init" c:identifier="gst_init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">Initializes the GStreamer library, setting up internal path lists, +registering built-in elements, and loading standard plugins. + +Unless the plugin registry is disabled at compile time, the registry will be +loaded. By default this will also check if the registry cache needs to be +updated and rescan all plugins if needed. See gst_update_registry() for +details and section +<link linkend="gst-running">Running GStreamer Applications</link> +for how to disable automatic registry updates. + +WARNING: This function will terminate your program if it was unable to +initialize GStreamer for some reason. If you want your program to fall back, +use gst_init_check() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="argc" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">pointer to application's argc</doc> + <type name="gint" c:type="int*"/> + </parameter> + <parameter name="argv" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">pointer to application's argv</doc> + <array length="0" zero-terminated="0" c:type="char***"> + <type name="utf8" c:type="char**"/> + </array> + </parameter> + </parameters> + </function> + <function name="init_check" c:identifier="gst_init_check" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">Initializes the GStreamer library, setting up internal path lists, +registering built-in elements, and loading standard plugins. + +This function will return %FALSE if GStreamer could not be initialized +for some reason. If you want your program to fail fatally, +use gst_init() instead.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">%TRUE if GStreamer could be initialized.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="argc" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">pointer to application's argc</doc> + <type name="gint" c:type="int*"/> + </parameter> + <parameter name="argv" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">pointer to application's argv</doc> + <array length="0" zero-terminated="0" c:type="char***"> + <type name="utf8" c:type="char**"/> + </array> + </parameter> + </parameters> + </function> + <function name="init_get_option_group" c:identifier="gst_init_get_option_group" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">Returns a #GOptionGroup with GStreamer's argument specifications. The +group is set up to use standard GOption callbacks, so when using this +group in combination with GOption parsing methods, all argument parsing +and initialization is automated. + +This function is useful if you want to integrate GStreamer with other +libraries that use GOption (see g_option_context_add_group() ). + +If you use this function, you should make sure you initialise the GLib +threading system as one of the very first things in your program +(see the example at the beginning of this section).</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">a pointer to GStreamer's option group.</doc> + <type name="GLib.OptionGroup" c:type="GOptionGroup*"/> + </return-value> + </function> + <function name="is_caps_features" c:identifier="gst_is_caps_features"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">Checks if @obj is a #GstCapsFeatures</doc> + <source-position filename="../subprojects/gstreamer/gst/gstcapsfeatures.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstcapsfeatures.c">%TRUE if @obj is a #GstCapsFeatures %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + </parameters> + </function> + <function name="is_initialized" c:identifier="gst_is_initialized"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">Use this function to check if GStreamer has been initialized with gst_init() +or gst_init_check().</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">%TRUE if initialization has been done, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="library_error_quark" c:identifier="gst_library_error_quark" moved-to="LibraryError.quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="make_element_message_details" c:identifier="gst_make_element_message_details" version="1.10" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Create a #GstStructure to be used with #gst_element_message_full_with_details. +%NULL terminator required.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstelement.h"/> + <return-value transfer-ownership="full"> + <type name="Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">Name of the first field to set</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstelement.c">variable arguments in the same form as #GstStructure</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function-macro name="memory_is_writable" c:identifier="gst_memory_is_writable" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="m"> + </parameter> + </parameters> + </function-macro> + <function-macro name="memory_lock" c:identifier="gst_memory_lock" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="m"> + </parameter> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="memory_make_writable" c:identifier="gst_memory_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">Returns a writable copy of @m. If the source memory is +already writable, this will simply return the same memory.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="m"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmemory.h">a #GstMemory</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="memory_unlock" c:identifier="gst_memory_unlock" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstmemory.h"/> + <parameters> + <parameter name="m"> + </parameter> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="message_is_writable" c:identifier="gst_message_is_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Tests if you can safely write into a message's structure or validly +modify the seqnum and timestamp fields.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="msg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">a #GstMessage</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="message_make_writable" c:identifier="gst_message_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">Checks if a message is writable. If not, a writable copy is made and +returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <parameters> + <parameter name="msg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.h">the message to make writable</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="message_new_duration" c:identifier="gst_message_new_duration" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="src"> + </parameter> + <parameter name="fmt"> + </parameter> + <parameter name="dur"> + </parameter> + </parameters> + </function-macro> + <function-macro name="message_parse_duration" c:identifier="gst_message_parse_duration" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="msg"> + </parameter> + <parameter name="fmt"> + </parameter> + <parameter name="dur"> + </parameter> + </parameters> + </function-macro> + <function name="message_replace" c:identifier="gst_message_replace" moved-to="Message.replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Modifies a pointer to a #GstMessage to point to a different #GstMessage. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +message is unreffed, the new one is reffed). + +Either @new_message or the #GstMessage pointed to by @old_message may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">%TRUE if @new_message was different from @old_message</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_message" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">pointer to a + pointer to a #GstMessage to be replaced.</doc> + <type name="Message" c:type="GstMessage**"/> + </parameter> + <parameter name="new_message" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">pointer to a #GstMessage that will + replace the message pointed to by @old_message.</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="message_take" c:identifier="gst_message_take" moved-to="Message.take" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Modifies a pointer to a #GstMessage to point to a different #GstMessage. This +function is similar to gst_message_replace() except that it takes ownership +of @new_message.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">%TRUE if @new_message was different from @old_message</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_message" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">pointer to a pointer to a #GstMessage + to be replaced.</doc> + <type name="Message" c:type="GstMessage**"/> + </parameter> + <parameter name="new_message" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">pointer to a #GstMessage that + will replace the message pointed to by @old_message.</doc> + <type name="Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="message_type_get_name" c:identifier="gst_message_type_get_name" moved-to="MessageType.get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Get a printable name for the given message type. Do not modify or free.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">a reference to the static name of the message.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the message type</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + </parameters> + </function> + <function name="message_type_to_quark" c:identifier="gst_message_type_to_quark" moved-to="MessageType.to_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">Get the unique quark for the given message type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the quark associated with the message type</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmessage.c">the message type</doc> + <type name="MessageType" c:type="GstMessageType"/> + </parameter> + </parameters> + </function> + <function name="meta_api_type_get_tags" c:identifier="gst_meta_api_type_get_tags" moved-to="Meta.api_type_get_tags" version="1.2"> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">an array of tags as strings.</doc> + <array c:type="const gchar* const*"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">an API</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + <function name="meta_api_type_has_tag" c:identifier="gst_meta_api_type_has_tag" moved-to="Meta.api_type_has_tag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Check if @api was registered with @tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">%TRUE if @api was registered with @tag.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">an API</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the tag to check</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + </parameters> + </function> + <function name="meta_api_type_register" c:identifier="gst_meta_api_type_register" moved-to="Meta.api_type_register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Register and return a GType for the @api and associate it with +@tags.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a unique GType for @api.</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">an API to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">tags for @api</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </function> + <function name="meta_get_info" c:identifier="gst_meta_get_info" moved-to="Meta.get_info"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Lookup a previously registered meta info structure by its implementation name +@impl.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaInfo with @impl, or +%NULL when no such metainfo exists.</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + <parameters> + <parameter name="impl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="meta_register" c:identifier="gst_meta_register" moved-to="Meta.register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Register a new #GstMeta implementation. + +The same @info can be retrieved later with gst_meta_get_info() by using +@impl as the key.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaInfo that can be used to +access metadata.</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the type of the #GstMeta API</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="impl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the name of the #GstMeta implementation</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the size of the #GstMeta structure</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="init_func" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaInitFunction</doc> + <type name="MetaInitFunction" c:type="GstMetaInitFunction"/> + </parameter> + <parameter name="free_func" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaFreeFunction</doc> + <type name="MetaFreeFunction" c:type="GstMetaFreeFunction"/> + </parameter> + <parameter name="transform_func" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaTransformFunction</doc> + <type name="MetaTransformFunction" c:type="GstMetaTransformFunction"/> + </parameter> + </parameters> + </function> + <function name="meta_register_custom" c:identifier="gst_meta_register_custom" moved-to="Meta.register_custom" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">Register a new custom #GstMeta implementation, backed by an opaque +structure holding a #GstStructure. + +The registered info can be retrieved later with gst_meta_get_info() by using +@name as the key. + +The backing #GstStructure can be retrieved with +gst_custom_meta_get_structure(), its mutability is conditioned by the +writability of the buffer the meta is attached to. + +When @transform_func is %NULL, the meta and its backing #GstStructure +will always be copied when the transform operation is copy, other operations +are discarded, copy regions are ignored.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaInfo that can be used to +access metadata.</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">the name of the #GstMeta implementation</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="tags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">tags for @api</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="transform_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="3" destroy="4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">a #GstMetaTransformFunction</doc> + <type name="CustomMetaTransformFunction" c:type="GstCustomMetaTransformFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">user data passed to @transform_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_data" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstmeta.c">#GDestroyNotify for user_data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + <function name="mini_object_replace" c:identifier="gst_mini_object_replace" moved-to="MiniObject.replace"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Atomically modifies a pointer to point to a new mini-object. +The reference count of @olddata is decreased and the reference count of +@newdata is increased. + +Either @newdata and the value pointed to by @olddata may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">%TRUE if @newdata was different from @olddata</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="olddata" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to a pointer to a + mini-object to be replaced</doc> + <type name="MiniObject" c:type="GstMiniObject**"/> + </parameter> + <parameter name="newdata" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to new mini-object</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </function> + <function name="mini_object_steal" c:identifier="gst_mini_object_steal" moved-to="MiniObject.steal" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Replace the current #GstMiniObject pointer to by @olddata with %NULL and +return the old value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">the #GstMiniObject at @oldata</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <parameter name="olddata" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to a pointer to a mini-object to + be stolen</doc> + <type name="MiniObject" c:type="GstMiniObject**"/> + </parameter> + </parameters> + </function> + <function name="mini_object_take" c:identifier="gst_mini_object_take" moved-to="MiniObject.take"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">Modifies a pointer to point to a new mini-object. The modification +is done atomically. This version is similar to gst_mini_object_replace() +except that it does not increase the refcount of @newdata and thus +takes ownership of @newdata. + +Either @newdata and the value pointed to by @olddata may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstminiobject.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">%TRUE if @newdata was different from @olddata</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="olddata" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to a pointer to a mini-object to + be replaced</doc> + <type name="MiniObject" c:type="GstMiniObject**"/> + </parameter> + <parameter name="newdata" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstminiobject.c">pointer to new mini-object</doc> + <type name="MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </function> + <function-macro name="pad_get_caps_reffed" c:identifier="gst_pad_get_caps_reffed" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="p"> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_get_name" c:identifier="gst_pad_get_name" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get a copy of the name of the pad. g_free() after usage. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the pad to get the name from</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_get_parent" c:identifier="gst_pad_get_parent" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">Get the parent of @pad. This function increases the refcount +of the parent object so you should gst_object_unref() it after usage. +Can return %NULL if the pad did not have a parent. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.h">the pad to get the parent of</doc> + </parameter> + </parameters> + </function-macro> + <function name="pad_mode_get_name" c:identifier="gst_pad_mode_get_name" moved-to="PadMode.get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Return the name of a pad mode, for use in debug messages mostly.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">short mnemonic for pad mode @mode</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the pad mode</doc> + <type name="PadMode" c:type="GstPadMode"/> + </parameter> + </parameters> + </function> + <function-macro name="pad_peer_get_caps_reffed" c:identifier="gst_pad_peer_get_caps_reffed" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="p"> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_activate_function" c:identifier="gst_pad_set_activate_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_activate_function_full() with %NULL for the user_data and +notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadActivateFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_activatemode_function" c:identifier="gst_pad_set_activatemode_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_activatemode_function_full() with %NULL for the user_data and +notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadActivateModeFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_chain_function" c:identifier="gst_pad_set_chain_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_chain_function_full() with %NULL for the user_data and +notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a sink #GstPad.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadChainFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_chain_list_function" c:identifier="gst_pad_set_chain_list_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_chain_list_function_full() with %NULL for the user_data and +notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a sink #GstPad.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadChainListFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_event_full_function" c:identifier="gst_pad_set_event_full_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_event_full_function_full() with %NULL for the user_data and +notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad of either direction.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadEventFullFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_event_function" c:identifier="gst_pad_set_event_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_event_function_full() with %NULL for the user_data and +notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad of either direction.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadEventFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_getrange_function" c:identifier="gst_pad_set_getrange_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_getrange_function_full() with %NULL for the user_data and +notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a source #GstPad.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadGetRangeFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_iterate_internal_links_function" c:identifier="gst_pad_set_iterate_internal_links_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_iterate_internal_links_function_full() with %NULL +for the user_data and notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad of either direction.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadIterIntLinkFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_link_function" c:identifier="gst_pad_set_link_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_link_function_full() with %NULL +for the user_data and notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadLinkFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_query_function" c:identifier="gst_pad_set_query_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_query_function_full() with %NULL for the user_data and +notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad of either direction.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadQueryFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="pad_set_unlink_function" c:identifier="gst_pad_set_unlink_function" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">Calls gst_pad_set_unlink_function_full() with %NULL +for the user_data and notify.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpad.h"/> + <parameters> + <parameter name="p"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">a #GstPad.</doc> + </parameter> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpad.c">the #GstPadUnlinkFunction to set.</doc> + </parameter> + </parameters> + </function-macro> + <function name="param_spec_array" c:identifier="gst_param_spec_array" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">This function creates a GstArray GParamSpec for use by objects/elements +that want to expose properties of GstArray type. This function is +typically * used in connection with g_object_class_install_property() in a +GObjects's instance_init function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">a newly created parameter specification</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">canonical name of the property specified</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">nick name for the property specified</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="blurb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">description of the property specified</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element_spec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">GParamSpec of the array</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">flags for the property specified</doc> + <type name="GObject.ParamFlags" c:type="GParamFlags"/> + </parameter> + </parameters> + </function> + <function name="param_spec_fraction" c:identifier="gst_param_spec_fraction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">This function creates a fraction GParamSpec for use by objects/elements +that want to expose properties of fraction type. This function is typically +used in connection with g_object_class_install_property() in a GObjects's +instance_init function.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparamspecs.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">a newly created parameter specification</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">canonical name of the property specified</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">nick name for the property specified</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="blurb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">description of the property specified</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="min_num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">minimum value (fraction numerator)</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="min_denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">minimum value (fraction denominator)</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="max_num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">maximum value (fraction numerator)</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="max_denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">maximum value (fraction denominator)</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="default_num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">default value (fraction numerator)</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="default_denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">default value (fraction denominator)</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparamspecs.c">flags for the property specified</doc> + <type name="GObject.ParamFlags" c:type="GParamFlags"/> + </parameter> + </parameters> + </function> + <function name="parent_buffer_meta_api_get_type" c:identifier="gst_parent_buffer_meta_api_get_type"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="parent_buffer_meta_get_info" c:identifier="gst_parent_buffer_meta_get_info" moved-to="ParentBufferMeta.get_info" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the global #GstMetaInfo describing the #GstParentBufferMeta meta.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The #GstMetaInfo</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="parse_bin_from_description" c:identifier="gst_parse_bin_from_description" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">This is a convenience wrapper around gst_parse_launch() to create a +#GstBin from a gst-launch-style pipeline description. See +gst_parse_launch() and the gst-launch man page for details about the +syntax. Ghost pads on the bin for unlinked source or sink pads +within the bin can automatically be created (but only a maximum of +one ghost pad for each direction will be created; if you expect +multiple unlinked source pads or multiple unlinked sink pads +and want them all ghosted, you will have to create the ghost pads +yourself).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a + newly-created bin, or %NULL if an error occurred.</doc> + <type name="Bin" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="bin_description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">command line describing the bin</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="ghost_unlinked_pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">whether to automatically create ghost pads + for unlinked source or sink pads within the bin</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="parse_bin_from_description_full" c:identifier="gst_parse_bin_from_description_full" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">This is a convenience wrapper around gst_parse_launch() to create a +#GstBin from a gst-launch-style pipeline description. See +gst_parse_launch() and the gst-launch man page for details about the +syntax. Ghost pads on the bin for unlinked source or sink pads +within the bin can automatically be created (but only a maximum of +one ghost pad for each direction will be created; if you expect +multiple unlinked source pads or multiple unlinked sink pads +and want them all ghosted, you will have to create the ghost pads +yourself).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a newly-created + element, which is guaranteed to be a bin unless + #GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS was passed, or %NULL if an error + occurred.</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="bin_description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">command line describing the bin</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="ghost_unlinked_pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">whether to automatically create ghost pads + for unlinked source or sink pads within the bin</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a parse context allocated with + gst_parse_context_new(), or %NULL</doc> + <type name="ParseContext" c:type="GstParseContext*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">parsing options, or #GST_PARSE_FLAG_NONE</doc> + <type name="ParseFlags" c:type="GstParseFlags"/> + </parameter> + </parameters> + </function> + <function name="parse_error_quark" c:identifier="gst_parse_error_quark" moved-to="ParseError.quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Get the error quark used by the parsing subsystem.</doc> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">the quark of the parse errors.</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="parse_launch" c:identifier="gst_parse_launch" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Create a new pipeline based on command line syntax. +Please note that you might get a return value that is not %NULL even though +the @error is set. In this case there was a recoverable parsing error and you +can try to play the pipeline. + +To create a sub-pipeline (bin) for embedding into an existing pipeline +use gst_parse_bin_from_description().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparse.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a new element on success, %NULL on + failure. If more than one toplevel element is specified by the + @pipeline_description, all elements are put into a #GstPipeline, which + than is returned.</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="pipeline_description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">the command line describing the pipeline</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="parse_launch_full" c:identifier="gst_parse_launch_full" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Create a new pipeline based on command line syntax. +Please note that you might get a return value that is not %NULL even though +the @error is set. In this case there was a recoverable parsing error and you +can try to play the pipeline. + +To create a sub-pipeline (bin) for embedding into an existing pipeline +use gst_parse_bin_from_description_full().</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparse.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a new element on success, %NULL on + failure. If more than one toplevel element is specified by the + @pipeline_description, all elements are put into a #GstPipeline, which + then is returned (unless the GST_PARSE_FLAG_PLACE_IN_BIN flag is set, in + which case they are put in a #GstBin instead).</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="pipeline_description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">the command line describing the pipeline</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a parse context allocated with + gst_parse_context_new(), or %NULL</doc> + <type name="ParseContext" c:type="GstParseContext*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">parsing options, or #GST_PARSE_FLAG_NONE</doc> + <type name="ParseFlags" c:type="GstParseFlags"/> + </parameter> + </parameters> + </function> + <function name="parse_launchv" c:identifier="gst_parse_launchv" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Create a new element based on command line syntax. +@error will contain an error message if an erroneous pipeline is specified. +An error does not mean that the pipeline could not be constructed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparse.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a new element on success and %NULL +on failure.</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="argv" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">null-terminated array of arguments</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </function> + <function name="parse_launchv_full" c:identifier="gst_parse_launchv_full" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">Create a new element based on command line syntax. +@error will contain an error message if an erroneous pipeline is specified. +An error does not mean that the pipeline could not be constructed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstparse.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a new element on success; on + failure, either %NULL or a partially-constructed bin or element will be + returned and @error will be set (unless you passed + #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then %NULL will always be returned + on failure)</doc> + <type name="Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="argv" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">null-terminated array of arguments</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">a parse context allocated with + gst_parse_context_new(), or %NULL</doc> + <type name="ParseContext" c:type="GstParseContext*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstparse.c">parsing options, or #GST_PARSE_FLAG_NONE</doc> + <type name="ParseFlags" c:type="GstParseFlags"/> + </parameter> + </parameters> + </function> + <function name="plugin_error_quark" c:identifier="gst_plugin_error_quark" moved-to="PluginError.quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">Get the error quark.</doc> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstplugin.h">The error quark used in GError messages</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function-macro name="plugin_feature_get_name" c:identifier="gst_plugin_feature_get_name" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">Returns the name of @feature. +For a nameless plugin feature, this returns %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <parameters> + <parameter name="feature"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">a #GstPluginFeature to get the name of @feature.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="plugin_feature_set_name" c:identifier="gst_plugin_feature_set_name" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">Sets the name of the plugin feature, getting rid of the old name if there was one.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/> + <parameters> + <parameter name="feature"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">a #GstPluginFeature to set the name of.</doc> + </parameter> + <parameter name="name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.h">the new name</doc> + </parameter> + </parameters> + </function-macro> + <function name="poll_new" c:identifier="gst_poll_new" moved-to="Poll.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Create a new file descriptor set. If @controllable, it +is possible to restart or flush a call to gst_poll_wait() with +gst_poll_restart() and gst_poll_set_flushing() respectively. + +Free-function: gst_poll_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a new #GstPoll, or %NULL in + case of an error. Free with gst_poll_free().</doc> + <type name="Poll" c:type="GstPoll*"/> + </return-value> + <parameters> + <parameter name="controllable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">whether it should be possible to control a wait.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="poll_new_timer" c:identifier="gst_poll_new_timer" moved-to="Poll.new_timer" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">Create a new poll object that can be used for scheduling cancellable +timeouts. + +A timeout is performed with gst_poll_wait(). Multiple timeouts can be +performed from different threads. + +Free-function: gst_poll_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpoll.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpoll.c">a new #GstPoll, or %NULL in + case of an error. Free with gst_poll_free().</doc> + <type name="Poll" c:type="GstPoll*"/> + </return-value> + </function> + <function name="preset_get_app_dir" c:identifier="gst_preset_get_app_dir" moved-to="Preset.get_app_dir"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Gets the directory for application specific presets if set by the +application.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">the directory or %NULL, don't free or modify +the string</doc> + <type name="filename" c:type="const gchar*"/> + </return-value> + </function> + <function name="preset_set_app_dir" c:identifier="gst_preset_set_app_dir" moved-to="Preset.set_app_dir"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">Sets an extra directory as an absolute path that should be considered when +looking for presets. Any presets in the application dir will shadow the +system presets.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstpreset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">%TRUE for success, %FALSE if the dir already has been set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="app_dir" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpreset.c">the application specific preset dir</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="print" c:identifier="gst_print" version="1.12" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Outputs a formatted message via the GLib print handler. The default print +handler simply outputs the message to stdout. + +This function will not append a new-line character at the end, unlike +gst_println() which will. + +All strings must be in ASCII or UTF-8 encoding. + +This function differs from g_print() in that it supports all the additional +printf specifiers that are supported by GStreamer's debug logging system, +such as #GST_PTR_FORMAT and #GST_SEGMENT_FORMAT. + +This function is primarily for printing debug output.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the printf arguments for @format</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="printerr" c:identifier="gst_printerr" version="1.12" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Outputs a formatted message via the GLib error message handler. The default +handler simply outputs the message to stderr. + +This function will not append a new-line character at the end, unlike +gst_printerrln() which will. + +All strings must be in ASCII or UTF-8 encoding. + +This function differs from g_printerr() in that it supports the additional +printf specifiers that are supported by GStreamer's debug logging system, +such as #GST_PTR_FORMAT and #GST_SEGMENT_FORMAT. + +This function is primarily for printing debug output.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the printf arguments for @format</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="printerrln" c:identifier="gst_printerrln" version="1.12" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Outputs a formatted message via the GLib error message handler. The default +handler simply outputs the message to stderr. + +This function will append a new-line character at the end, unlike +gst_printerr() which will not. + +All strings must be in ASCII or UTF-8 encoding. + +This function differs from g_printerr() in that it supports the additional +printf specifiers that are supported by GStreamer's debug logging system, +such as #GST_PTR_FORMAT and #GST_SEGMENT_FORMAT. + +This function is primarily for printing debug output.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the printf arguments for @format</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="println" c:identifier="gst_println" version="1.12" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">Outputs a formatted message via the GLib print handler. The default print +handler simply outputs the message to stdout. + +This function will append a new-line character at the end, unlike +gst_print() which will not. + +All strings must be in ASCII or UTF-8 encoding. + +This function differs from g_print() in that it supports all the additional +printf specifiers that are supported by GStreamer's debug logging system, +such as #GST_PTR_FORMAT and #GST_SEGMENT_FORMAT. + +This function is primarily for printing debug output.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstinfo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstinfo.c">the printf arguments for @format</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="protection_filter_systems_by_available_decryptors" c:identifier="gst_protection_filter_systems_by_available_decryptors" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c">Iterates the supplied list of UUIDs and checks the GstRegistry for +all the decryptors supporting one of the supplied UUIDs.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c"> +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**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <parameter name="system_identifiers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c"> +A null terminated array of strings that contains the UUID values of each +protection system that is to be checked.</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </function> + <function name="protection_meta_api_get_type" c:identifier="gst_protection_meta_api_get_type"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="protection_meta_get_info" c:identifier="gst_protection_meta_get_info" moved-to="ProtectionMeta.get_info"> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <return-value transfer-ownership="none"> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="protection_select_system" c:identifier="gst_protection_select_system" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c">Iterates the supplied list of UUIDs and checks the GstRegistry for +an element that supports one of the supplied UUIDs. If more than one +element matches, the system ID of the highest ranked element is selected.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstprotection.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c">One of the strings from +@system_identifiers that indicates the highest ranked element that +implements the protection system indicated by that system ID, or %NULL if no +element has been found.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="system_identifiers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstprotection.c">A null terminated array of strings +that contains the UUID values of each protection system that is to be +checked.</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </function> + <function-macro name="query_is_writable" c:identifier="gst_query_is_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Tests if you can safely write data into a query's structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="q"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">a #GstQuery</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="query_make_writable" c:identifier="gst_query_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">Makes a writable query from the given query.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <parameters> + <parameter name="q"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.h">a #GstQuery to make writable</doc> + </parameter> + </parameters> + </function-macro> + <function name="query_replace" c:identifier="gst_query_replace" moved-to="Query.replace" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Modifies a pointer to a #GstQuery to point to a different #GstQuery. The +modification is done atomically (so this is useful for ensuring thread safety +in some cases), and the reference counts are updated appropriately (the old +query is unreffed, the new one is reffed). + +Either @new_query or the #GstQuery pointed to by @old_query may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">%TRUE if @new_query was different from @old_query</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_query" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">pointer to a pointer to a + #GstQuery to be replaced.</doc> + <type name="Query" c:type="GstQuery**"/> + </parameter> + <parameter name="new_query" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">pointer to a #GstQuery that will + replace the query pointed to by @old_query.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </function> + <function name="query_take" c:identifier="gst_query_take" moved-to="Query.take" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Modifies a pointer to a #GstQuery to point to a different #GstQuery. This +function is similar to gst_query_replace() except that it takes ownership of +@new_query. + +Either @new_query or the #GstQuery pointed to by @old_query may be %NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">%TRUE if @new_query was different from @old_query</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_query" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">pointer to a + pointer to a #GstQuery to be stolen.</doc> + <type name="Query" c:type="GstQuery**"/> + </parameter> + <parameter name="new_query" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">pointer to a #GstQuery that will + replace the query pointed to by @old_query.</doc> + <type name="Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </function> + <function name="query_type_get_flags" c:identifier="gst_query_type_get_flags" moved-to="QueryType.get_flags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Gets the #GstQueryTypeFlags associated with @type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQueryTypeFlags.</doc> + <type name="QueryTypeFlags" c:type="GstQueryTypeFlags"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a #GstQueryType</doc> + <type name="QueryType" c:type="GstQueryType"/> + </parameter> + </parameters> + </function> + <function name="query_type_get_name" c:identifier="gst_query_type_get_name" moved-to="QueryType.get_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get a printable name for the given query type. Do not modify or free.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">a reference to the static name of the query.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the query type</doc> + <type name="QueryType" c:type="GstQueryType"/> + </parameter> + </parameters> + </function> + <function name="query_type_to_quark" c:identifier="gst_query_type_to_quark" moved-to="QueryType.to_quark"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">Get the unique quark for the given query type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the quark associated with the query type</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstquery.c">the query type</doc> + <type name="QueryType" c:type="GstQueryType"/> + </parameter> + </parameters> + </function> + <function name="reference_timestamp_meta_api_get_type" c:identifier="gst_reference_timestamp_meta_api_get_type"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="reference_timestamp_meta_get_info" c:identifier="gst_reference_timestamp_meta_get_info" moved-to="ReferenceTimestampMeta.get_info" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">Gets the global #GstMetaInfo describing the #GstReferenceTimestampMeta meta.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.c">The #GstMetaInfo</doc> + <type name="MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="resource_error_quark" c:identifier="gst_resource_error_quark" moved-to="ResourceError.quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function-macro name="sample_is_writable" c:identifier="gst_sample_is_writable" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">Tests if you can safely set the buffer and / or buffer list of @sample.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <parameters> + <parameter name="sample"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">A #GstSample</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="sample_make_writable" c:identifier="gst_sample_make_writable" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">Returns a writable copy of @sample. If the source sample is +already writable, this will simply return the same sample. + +Use this function to ensure that a sample can be safely modified before +making changes to it, for example before calling gst_sample_set_buffer() + +If the reference count of the source sample @sample is exactly one, the caller +is the sole owner and this function will return the sample object unchanged. + +If there is more than one reference on the object, a copy will be made using +gst_sample_copy(). The passed-in @sample will be unreffed in that case, and the +caller will now own a reference to the new returned sample object. + +In short, this function unrefs the sample in the argument and refs the sample +that it returns. Don't access the argument after calling this function unless +you have an additional reference to it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <parameters> + <parameter name="sample"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">A #GstSample</doc> + </parameter> + </parameters> + </function-macro> + <function name="segtrap_is_enabled" c:identifier="gst_segtrap_is_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">Some functions in the GStreamer core might install a custom SIGSEGV handler +to better catch and report errors to the application. Currently this feature +is enabled by default when loading plugins. + +Applications might want to disable this behaviour with the +gst_segtrap_set_enabled() function. This is typically done if the application +wants to install its own handler without GStreamer interfering.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">%TRUE if GStreamer is allowed to install a custom SIGSEGV handler.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="segtrap_set_enabled" c:identifier="gst_segtrap_set_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">Applications might want to disable/enable the SIGSEGV handling of +the GStreamer core. See gst_segtrap_is_enabled() for more information.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">whether a custom SIGSEGV handler should be installed.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="state_change_get_name" c:identifier="gst_state_change_get_name" moved-to="StateChange.get_name" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Gets a string representing the given state transition.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a string with the name of the state + result.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="transition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstStateChange to get the name of.</doc> + <type name="StateChange" c:type="GstStateChange"/> + </parameter> + </parameters> + </function> + <function name="static_caps_get_type" c:identifier="gst_static_caps_get_type"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gstreamer/gst/gstcaps.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="static_pad_template_get_type" c:identifier="gst_static_pad_template_get_type"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gstreamer/gst/gstpadtemplate.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="stream_error_quark" c:identifier="gst_stream_error_quark" moved-to="StreamError.quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="stream_type_get_name" c:identifier="gst_stream_type_get_name" moved-to="StreamType.get_name" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">Get a descriptive string for a given #GstStreamType</doc> + <source-position filename="../subprojects/gstreamer/gst/gststreams.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">A string describing the stream type</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="stype" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststreams.c">a #GstStreamType</doc> + <type name="StreamType" c:type="GstStreamType"/> + </parameter> + </parameters> + </function> + <function name="structure_take" c:identifier="gst_structure_take" moved-to="Structure.take" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">Atomically modifies a pointer to point to a new structure. +The #GstStructure @oldstr_ptr is pointing to is freed and +@newstr is taken ownership over. + +Either @newstr and the value pointed to by @oldstr_ptr may be %NULL. + +It is a programming error if both @newstr and the value pointed to by +@oldstr_ptr refer to the same, non-%NULL structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gststructure.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">%TRUE if @newstr was different from @oldstr_ptr</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="oldstr_ptr" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">pointer to a place of + a #GstStructure to take</doc> + <type name="Structure" c:type="GstStructure**"/> + </parameter> + <parameter name="newstr" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gststructure.c">a new #GstStructure</doc> + <type name="Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="tag_exists" c:identifier="gst_tag_exists"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Checks if the given type is already registered.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE if the type is already registered</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">name of the tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="tag_get_description" c:identifier="gst_tag_get_description"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Returns the human-readable description of this tag, You must not change or +free this string.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the human-readable description of this tag</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="tag_get_flag" c:identifier="gst_tag_get_flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the flag of @tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the flag of this tag.</doc> + <type name="TagFlag" c:type="GstTagFlag"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="tag_get_nick" c:identifier="gst_tag_get_nick"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Returns the human-readable name of this tag, You must not change or free +this string.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the human-readable name of this tag</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="tag_get_type" c:identifier="gst_tag_get_type"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Gets the #GType used for this tag.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the #GType of this tag</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="tag_is_fixed" c:identifier="gst_tag_is_fixed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Checks if the given tag is fixed. A fixed tag can only contain one value. +Unfixed tags can contain lists of values.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if the given tag is fixed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to check</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="tag_list_copy_value" c:identifier="gst_tag_list_copy_value" moved-to="TagList.copy_value"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Copies the contents for the given tag into the value, +merging multiple values into one if multiple values are associated +with the tag. +You must g_value_unset() the value after use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the + given list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">uninitialized #GValue to copy into</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">list to get the tag from</doc> + <type name="TagList" c:type="const GstTagList*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">tag to read out</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function-macro name="tag_list_free" c:identifier="gst_tag_list_free" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gstcompat.h"/> + <parameters> + <parameter name="taglist"> + </parameter> + </parameters> + </function-macro> + <function-macro name="tag_list_is_writable" c:identifier="gst_tag_list_is_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Tests if you can safely modify @taglist. It is only safe to modify taglist +when there is only one owner of the taglist - ie, the refcount is 1.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <parameters> + <parameter name="taglist"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">a #GstTagList</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="tag_list_make_writable" c:identifier="gst_tag_list_make_writable" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">Returns a writable copy of @taglist. + +If there is only one reference count on @taglist, the caller must be the +owner, and so this function will return the taglist object unchanged. If on +the other hand there is more than one reference on the object, a new taglist +object will be returned (which will be a copy of @taglist). The caller's +reference on @taglist will be removed, and instead the caller will own a +reference to the returned object. + +In short, this function unrefs the taglist in the argument and refs the +taglist that it returns. Don't access the argument after calling this +function. See also: gst_tag_list_ref().</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <parameters> + <parameter name="taglist"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.h">a #GstTagList</doc> + </parameter> + </parameters> + </function-macro> + <function name="tag_list_replace" c:identifier="gst_tag_list_replace" moved-to="TagList.replace" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Modifies a pointer to a #GstTagList to point to a different #GstTagList. The +modification is done atomically (so this is useful for ensuring thread +safety in some cases), and the reference counts are updated appropriately +(the old tag list is unreffed, the new is reffed). + +Either @new_taglist or the #GstTagList pointed to by @old_taglist may be +%NULL.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE if @new_taglist was different from @old_taglist</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_taglist" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">pointer to a pointer to a + #GstTagList to be replaced.</doc> + <type name="TagList" c:type="GstTagList**"/> + </parameter> + <parameter name="new_taglist" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">pointer to a #GstTagList that + will replace the tag list pointed to by @old_taglist.</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + </parameters> + </function> + <function name="tag_list_take" c:identifier="gst_tag_list_take" moved-to="TagList.take" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Modifies a pointer to a #GstTagList to point to a different #GstTagList. +This function is similar to gst_tag_list_replace() except that it takes +ownership of @new_taglist.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">%TRUE if @new_taglist was different from @old_taglist</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="old_taglist" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">pointer to a pointer to a #GstTagList + to be replaced.</doc> + <type name="TagList" c:type="GstTagList**"/> + </parameter> + <parameter name="new_taglist" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">pointer to a #GstTagList that + will replace the taglist pointed to by @old_taglist.</doc> + <type name="TagList" c:type="GstTagList*"/> + </parameter> + </parameters> + </function> + <function name="tag_merge_strings_with_comma" c:identifier="gst_tag_merge_strings_with_comma"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">This is a convenience function for the func argument of gst_tag_register(). +It concatenates all given strings using a comma. The tag must be registered +as a G_TYPE_STRING or this function will fail.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">uninitialized GValue to store result in</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">GValue to copy from</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="tag_merge_use_first" c:identifier="gst_tag_merge_use_first"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">This is a convenience function for the func argument of gst_tag_register(). +It creates a copy of the first value from the list.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">uninitialized GValue to store result in</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">GValue to copy from</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="tag_register" c:identifier="gst_tag_register" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Registers a new tag type for the use with GStreamer's type system. If a type +with that name is already registered, that one is used. +The old registration may have used a different type however. So don't rely +on your supplied values. + +Important: if you do not supply a merge function the implication will be +that there can only be one single value for this tag in a tag list and +any additional values will silently be discarded when being added (unless +#GST_TAG_MERGE_REPLACE, #GST_TAG_MERGE_REPLACE_ALL, or +#GST_TAG_MERGE_PREPEND is used as merge mode, in which case the new +value will replace the old one in the list). + +The merge function will be called from gst_tag_list_copy_value() when +it is required that one or more values for a tag be condensed into +one single value. This may happen from gst_tag_list_get_string(), +gst_tag_list_get_int(), gst_tag_list_get_double() etc. What will happen +exactly in that case depends on how the tag was registered and if a +merge function was supplied and if so which one. + +Two default merge functions are provided: gst_tag_merge_use_first() and +gst_tag_merge_strings_with_comma().</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the name or identifier string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="flag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a flag describing the type of tag info</doc> + <type name="TagFlag" c:type="GstTagFlag"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the type this data is in</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">human-readable name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="blurb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a human-readable description about this tag</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">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" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">Registers a new tag type for the use with GStreamer's type system. + +Same as gst_tag_register(), but @name, @nick, and @blurb must be +static strings or inlined strings, as they will not be copied. (GStreamer +plugins will be made resident once loaded, so this function can be used +even from dynamically loaded plugins.)</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttaglist.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the name or identifier string (string constant)</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="flag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a flag describing the type of tag info</doc> + <type name="TagFlag" c:type="GstTagFlag"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">the type this data is in</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">human-readable name or short description (string constant)</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="blurb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">a human-readable description for this tag (string constant)</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttaglist.c">function for merging multiple values of this tag, or %NULL</doc> + <type name="TagMergeFunc" c:type="GstTagMergeFunc"/> + </parameter> + </parameters> + </function> + <function-macro name="toc_copy" c:identifier="gst_toc_copy" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Copy #GstToc with all subentries (deep copy).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="toc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">#GstToc to copy.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="toc_entry_copy" c:identifier="gst_toc_entry_copy" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Copy #GstTocEntry with all subentries (deep copy).</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">#GstTocEntry to copy.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="toc_entry_make_writable" c:identifier="gst_toc_entry_make_writable" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="entry"> + </parameter> + </parameters> + </function-macro> + <function-macro name="toc_entry_ref" c:identifier="gst_toc_entry_ref" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="entry"> + </parameter> + </parameters> + </function-macro> + <function name="toc_entry_type_get_nick" c:identifier="gst_toc_entry_type_get_nick" moved-to="TocEntryType.get_nick"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Converts @type to a string representation.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">Returns a human-readable string for @type. This string is + only for debugging purpose and should not be displayed in a user + interface.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttoc.c">a #GstTocEntryType.</doc> + <type name="TocEntryType" c:type="GstTocEntryType"/> + </parameter> + </parameters> + </function> + <function-macro name="toc_entry_unref" c:identifier="gst_toc_entry_unref" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="entry"> + </parameter> + </parameters> + </function-macro> + <function-macro name="toc_make_writable" c:identifier="gst_toc_make_writable" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="toc"> + </parameter> + </parameters> + </function-macro> + <function-macro name="toc_ref" c:identifier="gst_toc_ref" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="toc"> + </parameter> + </parameters> + </function-macro> + <function-macro name="toc_unref" c:identifier="gst_toc_unref" introspectable="0"> + <source-position filename="../subprojects/gstreamer/gst/gsttoc.h"/> + <parameters> + <parameter name="toc"> + </parameter> + </parameters> + </function-macro> + <function name="tracing_get_active_tracers" c:identifier="gst_tracing_get_active_tracers" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerutils.c">Get a list of all active tracer objects owned by the tracing framework for +the entirety of the run-time of the process or till gst_deinit() is called.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerutils.c">A #GList of +#GstTracer objects</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Tracer"/> + </type> + </return-value> + </function> + <function name="tracing_register_hook" c:identifier="gst_tracing_register_hook" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerutils.c">Register @func to be called when the trace hook @detail is getting invoked. +Use %NULL for @detail to register to all hooks.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttracer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tracer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerutils.c">the tracer</doc> + <type name="Tracer" c:type="GstTracer*"/> + </parameter> + <parameter name="detail" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerutils.c">the detailed hook</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttracerutils.c">the callback</doc> + <type name="GObject.Callback" c:type="GCallback"/> + </parameter> + </parameters> + </function> + <function name="type_find_get_type" c:identifier="gst_type_find_get_type"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="type_find_register" c:identifier="gst_type_find_register" moved-to="TypeFind.register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Registers a new typefind function to be used for typefinding. After +registering this function will be available for typefinding. +This function is typically called during an element's plugin initialization.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsttypefind.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">%TRUE on success, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="plugin" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">A #GstPlugin, or %NULL for a static typefind function</doc> + <type name="Plugin" c:type="GstPlugin*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The name for registering</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="rank" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The rank (or importance) of this typefind function</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="6" destroy="7"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">The #GstTypeFindFunction to use</doc> + <type name="TypeFindFunction" c:type="GstTypeFindFunction"/> + </parameter> + <parameter name="extensions" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Optional comma-separated list of extensions + that could belong to this type</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="possible_caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Optionally the caps that could be returned when typefinding + succeeds</doc> + <type name="Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">Optional user data. This user data must be available until the plugin + is unloaded.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="data_notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsttypefind.c">a #GDestroyNotify that will be called on @data when the plugin + is unloaded.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + <function name="type_is_plugin_api" c:identifier="gst_type_is_plugin_api" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Checks if @type is plugin API. See gst_type_mark_as_plugin_api() for +details.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%TRUE if @type is plugin API or %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a GType</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">What #GstPluginAPIFlags the plugin was marked with</doc> + <type name="PluginAPIFlags" c:type="GstPluginAPIFlags*"/> + </parameter> + </parameters> + </function> + <function name="type_mark_as_plugin_api" c:identifier="gst_type_mark_as_plugin_api" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Marks @type as plugin API. This should be called in `class_init` of +elements that expose new types (i.e. enums, flags or internal GObjects) via +properties, signals or pad templates. + +Types exposed by plugins are not automatically added to the documentation +as they might originate from another library and should in that case be +documented via that library instead. + +By marking a type as plugin API it will be included in the documentation of +the plugin that defines it.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a GType</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a set of #GstPluginAPIFlags to further inform cache generation.</doc> + <type name="PluginAPIFlags" c:type="GstPluginAPIFlags"/> + </parameter> + </parameters> + </function> + <function name="update_registry" c:identifier="gst_update_registry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">Forces GStreamer to re-scan its plugin paths and update the default +plugin registry. + +Applications will almost never need to call this function, it is only +useful if the application knows new plugins have been installed (or old +ones removed) since the start of the application (or, to be precise, the +first call to gst_init()) and the application wants to make use of any +newly-installed plugins without restarting the application. + +Applications should assume that the registry update is neither atomic nor +thread-safe and should therefore not have any dynamic pipelines running +(including the playbin and decodebin elements) and should also not create +any elements or access the GStreamer registry while the update is in +progress. + +Note that this function may block for a significant amount of time.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstregistry.c">%TRUE if the registry has been updated successfully (does not + imply that there were changes), otherwise %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="uri_construct" c:identifier="gst_uri_construct" moved-to="Uri.construct" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Constructs a URI for a given valid protocol and location. + +Free-function: g_free</doc> + <doc-deprecated xml:space="preserve">Use GstURI instead.</doc-deprecated> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">a new string for this URI.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Protocol for URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="location" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Location for URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="uri_error_quark" c:identifier="gst_uri_error_quark" moved-to="URIError.quark"> + <attribute name="doc.skip" value="true"/> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="uri_from_string" c:identifier="gst_uri_from_string" moved-to="Uri.from_string" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Parses a URI string into a new #GstUri object. Will return NULL if the URI +cannot be parsed.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A new #GstUri object, or NULL.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The URI string to parse.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="uri_from_string_escaped" c:identifier="gst_uri_from_string_escaped" moved-to="Uri.from_string_escaped" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Parses a URI string into a new #GstUri object. Will return NULL if the URI +cannot be parsed. This is identical to gst_uri_from_string() except that +the userinfo and fragment components of the URI will not be unescaped while +parsing. + +Use this when you need to extract a username and password from the userinfo +such as https://user:password@example.com since either may contain +a URI-escaped ':' character. gst_uri_from_string() will unescape the entire +userinfo component, which will make it impossible to know which ':' +delineates the username and password. + +The same applies to the fragment component of the URI, such as +https://example.com/path#fragment which may contain a URI-escaped '#'.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A new #GstUri object, or NULL.</doc> + <type name="Uri" c:type="GstUri*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The URI string to parse.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="uri_get_location" c:identifier="gst_uri_get_location" moved-to="Uri.get_location"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Extracts the location out of a given valid URI, ie. the protocol and "://" +are stripped from the URI, which means that the location returned includes +the hostname if one is specified. The returned string must be freed using +g_free(). + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">the location for this URI. Returns + %NULL if the URI isn't valid. If the URI does not contain a location, an + empty string is returned.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A URI string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="uri_get_protocol" c:identifier="gst_uri_get_protocol" moved-to="Uri.get_protocol"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Extracts the protocol out of a given valid URI. The returned string must be +freed using g_free().</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The protocol for this URI.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A URI string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="uri_has_protocol" c:identifier="gst_uri_has_protocol" moved-to="Uri.has_protocol"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Checks if the protocol of a given valid URI matches @protocol.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the protocol matches.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">a URI string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">a protocol string (e.g. "http")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="uri_is_valid" c:identifier="gst_uri_is_valid" moved-to="Uri.is_valid"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Tests if the given string is a valid URI identifier. URIs start with a valid +scheme followed by ":" and maybe a string identifying the location.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the string is a valid URI</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A URI string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="uri_join_strings" c:identifier="gst_uri_join_strings" moved-to="Uri.join_strings" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">This is a convenience function to join two URI strings and return the result. +The returned string should be g_free()'d after use.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A string representing the percent-encoded join of + the two URIs.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="base_uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The percent-encoded base URI.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="ref_uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">The percent-encoded reference URI to join to the @base_uri.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="uri_protocol_is_supported" c:identifier="gst_uri_protocol_is_supported" moved-to="Uri.protocol_is_supported"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Checks if an element exists that supports the given URI protocol. Note +that a positive return value does not imply that a subsequent call to +gst_element_make_from_uri() is guaranteed to work.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Whether to check for a source or a sink</doc> + <type name="URIType" c:type="const GstURIType"/> + </parameter> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Protocol that should be checked for (e.g. "http" or "smb")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="uri_protocol_is_valid" c:identifier="gst_uri_protocol_is_valid" moved-to="Uri.protocol_is_valid"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">Tests if the given string is a valid protocol identifier. Protocols +must consist of alphanumeric characters, '+', '-' and '.' and must +start with a alphabetic character. See RFC 3986 Section 3.1.</doc> + <source-position filename="../subprojects/gstreamer/gst/gsturi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">%TRUE if the string is a valid protocol identifier, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gsturi.c">A string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="util_array_binary_search" c:identifier="gst_util_array_binary_search"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Searches inside @array for @search_data by using the comparison function +@search_func. @array must be sorted ascending. + +As @search_data is always passed as second argument to @search_func it's +not required that @search_data has the same type as the array elements. + +The complexity of this search function is O(log (num_elements)).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The address of the found +element or %NULL if nothing was found</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="array" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the sorted input array</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="num_elements" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">number of elements in the array</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="element_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">size of every element in bytes</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="search_func" transfer-ownership="none" scope="call" closure="6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">function to compare two elements, @search_data will always be passed as second argument</doc> + <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">search mode that should be used</doc> + <type name="SearchMode" c:type="GstSearchMode"/> + </parameter> + <parameter name="search_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">element that should be found</doc> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">data to pass to @search_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="util_double_to_fraction" c:identifier="gst_util_double_to_fraction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Transforms a #gdouble to a fraction and simplifies +the result.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">#gdouble to transform</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="dest_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">pointer to a #gint to hold the result numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="dest_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">pointer to a #gint to hold the result denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </function> + <function name="util_dump_buffer" c:identifier="gst_util_dump_buffer" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Dumps the buffer memory into a hex representation. Useful for debugging.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GstBuffer whose memory to dump</doc> + <type name="Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="util_dump_mem" c:identifier="gst_util_dump_mem"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Dumps the memory block into a hex representation. Useful for debugging.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a pointer to the memory to dump</doc> + <array length="1" zero-terminated="0" c:type="const guchar*"> + <type name="guint8" c:type="guchar"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the size of the memory block to dump</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="util_fraction_add" c:identifier="gst_util_fraction_add"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Adds the fractions @a_n/@a_d and @b_n/@b_d and stores +the result in @res_n and @res_d.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%FALSE on overflow, %TRUE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="a_n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Numerator of first value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="a_d" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Denominator of first value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="b_n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Numerator of second value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="b_d" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Denominator of second value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="res_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Pointer to #gint to hold the result numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="res_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Pointer to #gint to hold the result denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </function> + <function name="util_fraction_compare" c:identifier="gst_util_fraction_compare"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Compares the fractions @a_n/@a_d and @b_n/@b_d and returns +-1 if a < b, 0 if a = b and 1 if a > b.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">-1 if a < b; 0 if a = b; 1 if a > b.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="a_n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Numerator of first value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="a_d" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Denominator of first value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="b_n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Numerator of second value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="b_d" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Denominator of second value</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="util_fraction_multiply" c:identifier="gst_util_fraction_multiply"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Multiplies the fractions @a_n/@a_d and @b_n/@b_d and stores +the result in @res_n and @res_d.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">%FALSE on overflow, %TRUE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="a_n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Numerator of first value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="a_d" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Denominator of first value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="b_n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Numerator of second value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="b_d" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Denominator of second value</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="res_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Pointer to #gint to hold the result numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="res_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Pointer to #gint to hold the result denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </function> + <function name="util_fraction_to_double" c:identifier="gst_util_fraction_to_double"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Transforms a fraction to a #gdouble.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src_n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Fraction numerator as #gint</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="src_d" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Fraction denominator #gint</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">pointer to a #gdouble for the result</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </function> + <function name="util_gdouble_to_guint64" c:identifier="gst_util_gdouble_to_guint64"> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">@value casted to #guint64</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The #gdouble value to convert guint64 double</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </function> + <function name="util_get_object_array" c:identifier="gst_util_get_object_array" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Get a property of type %GST_TYPE_ARRAY and transform it into a +#GValueArray. This allow language bindings to get GST_TYPE_ARRAY +properties which are otherwise not an accessible type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the object to set the array to</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="array" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a return #GValueArray</doc> + <type name="GObject.ValueArray" c:type="GValueArray**"/> + </parameter> + </parameters> + </function> + <function name="util_get_timestamp" c:identifier="gst_util_get_timestamp"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Get a timestamp as GstClockTime to be used for interval measurements. +The timestamp should not be interpreted in any other way.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the timestamp</doc> + <type name="ClockTime" c:type="GstClockTime"/> + </return-value> + </function> + <function name="util_greatest_common_divisor" c:identifier="gst_util_greatest_common_divisor"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Calculates the greatest common divisor of @a +and @b.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Greatest common divisor of @a and @b</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="a" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">First value as #gint</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="b" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Second value as #gint</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="util_greatest_common_divisor_int64" c:identifier="gst_util_greatest_common_divisor_int64"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Calculates the greatest common divisor of @a +and @b.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Greatest common divisor of @a and @b</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <parameter name="a" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">First value as #gint64</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="b" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Second value as #gint64</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </function> + <function name="util_group_id_next" c:identifier="gst_util_group_id_next"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Return a constantly incrementing group id. + +This function is used to generate a new group-id for the +stream-start event. + +This function never returns %GST_GROUP_ID_INVALID (which is 0)</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A constantly incrementing unsigned integer, which might +overflow back to 0 at some point.</doc> + <type name="guint" c:type="guint"/> + </return-value> + </function> + <function name="util_guint64_to_gdouble" c:identifier="gst_util_guint64_to_gdouble"> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">@value casted to #gdouble</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">The #guint64 value to convert to double</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="util_seqnum_compare" c:identifier="gst_util_seqnum_compare"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Compare two sequence numbers, handling wraparound. + +The current implementation just returns (gint32)(@s1 - @s2).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A negative number if @s1 is before @s2, 0 if they are equal, or a +positive number if @s1 is after @s2.</doc> + <type name="gint32" c:type="gint32"/> + </return-value> + <parameters> + <parameter name="s1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A sequence number.</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="s2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Another sequence number.</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="util_seqnum_next" c:identifier="gst_util_seqnum_next"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Return a constantly incrementing sequence number. + +This function is used internally to GStreamer to be able to determine which +events and messages are "the same". For example, elements may set the seqnum +on a segment-done message to be the same as that of the last seek event, to +indicate that event and the message correspond to the same segment. + +This function never returns %GST_SEQNUM_INVALID (which is 0).</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">A constantly incrementing 32-bit unsigned integer, which might +overflow at some point. Use gst_util_seqnum_compare() to make sure +you handle wraparound correctly.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + </function> + <function name="util_set_object_arg" c:identifier="gst_util_set_object_arg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Converts the string value to the type of the objects argument and +sets the argument with it. + +Note that this function silently returns if @object has no property named +@name or when @value cannot be converted to the type of the property.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the object to set the argument of</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the argument to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the string value to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="util_set_object_array" c:identifier="gst_util_set_object_array" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Transfer a #GValueArray to %GST_TYPE_ARRAY and set this value on the +specified property name. This allow language bindings to set GST_TYPE_ARRAY +properties which are otherwise not an accessible type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the object to set the array to</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the name of the property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a #GValueArray containing the values</doc> + <type name="GObject.ValueArray" c:type="const GValueArray*"/> + </parameter> + </parameters> + </function> + <function name="util_set_value_from_string" c:identifier="gst_util_set_value_from_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Converts the string to the type of the value and +sets the value with it. + +Note that this function is dangerous as it does not return any indication +if the conversion worked or not.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the value to set</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="value_str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the string to get the value from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="util_uint64_scale" c:identifier="gst_util_uint64_scale"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Scale @val by the rational number @num / @denom, avoiding overflows and +underflows and without loss of precision. + +This function can potentially be very slow if val and num are both +greater than G_MAXUINT32.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">@val * @num / @denom. In the case of an overflow, this +function returns G_MAXUINT64. If the result is not exactly +representable as an integer it is truncated. See also +gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil(), +gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(), +gst_util_uint64_scale_int_ceil().</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the number to scale</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the numerator of the scale ratio</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the denominator of the scale ratio</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="util_uint64_scale_ceil" c:identifier="gst_util_uint64_scale_ceil"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Scale @val by the rational number @num / @denom, avoiding overflows and +underflows and without loss of precision. + +This function can potentially be very slow if val and num are both +greater than G_MAXUINT32.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">@val * @num / @denom. In the case of an overflow, this +function returns G_MAXUINT64. If the result is not exactly +representable as an integer, it is rounded up. See also +gst_util_uint64_scale(), gst_util_uint64_scale_round(), +gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(), +gst_util_uint64_scale_int_ceil().</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the number to scale</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the numerator of the scale ratio</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the denominator of the scale ratio</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="util_uint64_scale_int" c:identifier="gst_util_uint64_scale_int"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Scale @val by the rational number @num / @denom, avoiding overflows and +underflows and without loss of precision. @num must be non-negative and +@denom must be positive.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">@val * @num / @denom. In the case of an overflow, this +function returns G_MAXUINT64. If the result is not exactly +representable as an integer, it is truncated. See also +gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil(), +gst_util_uint64_scale(), gst_util_uint64_scale_round(), +gst_util_uint64_scale_ceil().</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">guint64 (such as a #GstClockTime) to scale.</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">numerator of the scale factor.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">denominator of the scale factor.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="util_uint64_scale_int_ceil" c:identifier="gst_util_uint64_scale_int_ceil"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Scale @val by the rational number @num / @denom, avoiding overflows and +underflows and without loss of precision. @num must be non-negative and +@denom must be positive.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">@val * @num / @denom. In the case of an overflow, this +function returns G_MAXUINT64. If the result is not exactly +representable as an integer, it is rounded up. See also +gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(), +gst_util_uint64_scale(), gst_util_uint64_scale_round(), +gst_util_uint64_scale_ceil().</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">guint64 (such as a #GstClockTime) to scale.</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">numerator of the scale factor.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">denominator of the scale factor.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="util_uint64_scale_int_round" c:identifier="gst_util_uint64_scale_int_round"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Scale @val by the rational number @num / @denom, avoiding overflows and +underflows and without loss of precision. @num must be non-negative and +@denom must be positive.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">@val * @num / @denom. In the case of an overflow, this +function returns G_MAXUINT64. If the result is not exactly +representable as an integer, it is rounded to the nearest integer +(half-way cases are rounded up). See also gst_util_uint64_scale_int(), +gst_util_uint64_scale_int_ceil(), gst_util_uint64_scale(), +gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil().</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">guint64 (such as a #GstClockTime) to scale.</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">numerator of the scale factor.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">denominator of the scale factor.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="util_uint64_scale_round" c:identifier="gst_util_uint64_scale_round"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Scale @val by the rational number @num / @denom, avoiding overflows and +underflows and without loss of precision. + +This function can potentially be very slow if val and num are both +greater than G_MAXUINT32.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">@val * @num / @denom. In the case of an overflow, this +function returns G_MAXUINT64. If the result is not exactly +representable as an integer, it is rounded to the nearest integer +(half-way cases are rounded up). See also gst_util_uint64_scale(), +gst_util_uint64_scale_ceil(), gst_util_uint64_scale_int(), +gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil().</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the number to scale</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the numerator of the scale ratio</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="denom" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">the denominator of the scale ratio</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="value_can_compare" c:identifier="gst_value_can_compare"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Determines if @value1 and @value2 can be compared.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE if the values can be compared</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a value to compare</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">another value to compare</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_can_intersect" c:identifier="gst_value_can_intersect"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Determines if intersecting two values will produce a valid result. +Two values will produce a valid intersection if they have the same +type.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE if the values can intersect</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a value to intersect</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">another value to intersect</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_can_subtract" c:identifier="gst_value_can_subtract"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Checks if it's possible to subtract @subtrahend from @minuend.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE if a subtraction is possible</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="minuend" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to subtract from</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="subtrahend" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to subtract</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_can_union" c:identifier="gst_value_can_union"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Determines if @value1 and @value2 can be non-trivially unioned. +Any two values can be trivially unioned by adding both of them +to a GstValueList. However, certain types have the possibility +to be unioned in a simpler way. For example, an integer range +and an integer can be unioned if the integer is a subset of the +integer range. If there is the possibility that two values can +be unioned, this function returns %TRUE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE if there is a function allowing the two values to +be unioned.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a value to union</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">another value to union</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_compare" c:identifier="gst_value_compare"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Compares @value1 and @value2. If @value1 and @value2 cannot be +compared, the function returns GST_VALUE_UNORDERED. Otherwise, +if @value1 is greater than @value2, GST_VALUE_GREATER_THAN is returned. +If @value1 is less than @value2, GST_VALUE_LESS_THAN is returned. +If the values are equal, GST_VALUE_EQUAL is returned.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">comparison result</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a value to compare</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">another value to compare</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_deserialize" c:identifier="gst_value_deserialize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Tries to deserialize a string into the type specified by the given GValue. +If the operation succeeds, %TRUE is returned, %FALSE otherwise.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE on success</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">#GValue to fill with contents of + deserialization</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">string to deserialize</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="value_deserialize_with_pspec" c:identifier="gst_value_deserialize_with_pspec" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Tries to deserialize a string into the type specified by the given GValue. +@pspec may be used to guide the deserializing of nested members. +If the operation succeeds, %TRUE is returned, %FALSE otherwise.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE on success</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">#GValue to fill with contents of + deserialization</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">string to deserialize</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the #GParamSpec describing the expected value</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </function> + <function name="value_fixate" c:identifier="gst_value_fixate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Fixate @src into a new value @dest. +For ranges, the first element is taken. For lists and arrays, the +first item is fixated and returned. +If @src is already fixed, this function returns %FALSE.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE if @dest contains a fixated version of @src.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the #GValue destination</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the #GValue to fixate</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_fraction_multiply" c:identifier="gst_value_fraction_multiply"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Multiplies the two #GValue items containing a #GST_TYPE_FRACTION and sets +@product to the product of the two fractions.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%FALSE in case of an error (like integer overflow), %TRUE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="product" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FRACTION</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="factor1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FRACTION</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="factor2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FRACTION</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_fraction_subtract" c:identifier="gst_value_fraction_subtract"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Subtracts the @subtrahend from the @minuend and sets @dest to the result.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%FALSE in case of an error (like integer overflow), %TRUE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FRACTION</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="minuend" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FRACTION</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="subtrahend" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FRACTION</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_bitmask" c:identifier="gst_value_get_bitmask"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the bitmask specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the bitmask.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_BITMASK</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function-macro name="value_get_buffer" c:identifier="gst_value_get_buffer" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Receives a #GstBuffer as the value of @v. Does not return a reference to +the buffer, so the pointer is only valid for as long as the caller owns +a reference to @v.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="v"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GValue to query</doc> + </parameter> + </parameters> + </function-macro> + <function name="value_get_caps" c:identifier="gst_value_get_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the contents of @value. The reference count of the returned +#GstCaps will not be modified, therefore the caller must take one +before getting rid of the @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the contents of @value</doc> + <type name="Caps" c:type="const GstCaps*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_CAPS</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_caps_features" c:identifier="gst_value_get_caps_features"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the contents of @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the contents of @value</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_CAPS_FEATURES</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_double_range_max" c:identifier="gst_value_get_double_range_max"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the maximum of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the maximum of the range</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_double_range_min" c:identifier="gst_value_get_double_range_min"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the minimum of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the minimum of the range</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_flagset_flags" c:identifier="gst_value_get_flagset_flags" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Retrieve the flags field of a GstFlagSet @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the flags field of the flagset instance.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FLAG_SET</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_flagset_mask" c:identifier="gst_value_get_flagset_mask" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Retrieve the mask field of a GstFlagSet @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the mask field of the flagset instance.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FLAG_SET</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_fraction_denominator" c:identifier="gst_value_get_fraction_denominator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the denominator of the fraction specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the denominator of the fraction.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FRACTION</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_fraction_numerator" c:identifier="gst_value_get_fraction_numerator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the numerator of the fraction specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the numerator of the fraction.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FRACTION</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_fraction_range_max" c:identifier="gst_value_get_fraction_range_max"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the maximum of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the maximum of the range</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_fraction_range_min" c:identifier="gst_value_get_fraction_range_min"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the minimum of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the minimum of the range</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_int64_range_max" c:identifier="gst_value_get_int64_range_max"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the maximum of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the maximum of the range</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT64_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_int64_range_min" c:identifier="gst_value_get_int64_range_min"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the minimum of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the minimum of the range</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT64_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_int64_range_step" c:identifier="gst_value_get_int64_range_step"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the step of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the step of the range</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT64_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_int_range_max" c:identifier="gst_value_get_int_range_max"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the maximum of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the maximum of the range</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_int_range_min" c:identifier="gst_value_get_int_range_min"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the minimum of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the minimum of the range</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_get_int_range_step" c:identifier="gst_value_get_int_range_step"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the step of the range specified by @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the step of the range</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT_RANGE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function-macro name="value_get_sample" c:identifier="gst_value_get_sample" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">Receives a #GstSample as the value of @v. Does not return a reference to +the sample, so the pointer is only valid for as long as the caller owns +a reference to @v.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <parameters> + <parameter name="v"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">a #GValue to query</doc> + </parameter> + </parameters> + </function-macro> + <function name="value_get_structure" c:identifier="gst_value_get_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Gets the contents of @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the contents of @value</doc> + <type name="Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_STRUCTURE</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_init_and_copy" c:identifier="gst_value_init_and_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Initialises the target value to be of the same type as source and then copies +the contents from source to target.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the target value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the source value</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_intersect" c:identifier="gst_value_intersect"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Calculates the intersection of two values. If the values have +a non-empty intersection, the value representing the intersection +is placed in @dest, unless %NULL. If the intersection is non-empty, +@dest is not modified.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE if the intersection is non-empty</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c"> + a uninitialized #GValue that will hold the calculated + intersection value. May be %NULL if the resulting set if not + needed.</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a value to intersect</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">another value to intersect</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_is_fixed" c:identifier="gst_value_is_fixed"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Tests if the given GValue, if available in a GstStructure (or any other +container) contains a "fixed" (which means: one value) or an "unfixed" +(which means: multiple possible values, such as data lists or data +ranges) value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">true if the value is "fixed".</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the #GValue to check</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_is_subset" c:identifier="gst_value_is_subset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Check that @value1 is a subset of @value2.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE is @value1 is a subset of @value2</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_register" c:identifier="gst_value_register"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Registers functions to perform calculations on #GValue items of a given +type. Each type can only be added once.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="table" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">structure containing functions to register</doc> + <type name="ValueTable" c:type="const GstValueTable*"/> + </parameter> + </parameters> + </function> + <function name="value_serialize" c:identifier="gst_value_serialize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">tries to transform the given @value into a string representation that allows +getting back this string later on using gst_value_deserialize(). + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the serialization for @value +or %NULL if none exists</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a #GValue to serialize</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_set_bitmask" c:identifier="gst_value_set_bitmask"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the bitmask specified by @bitmask.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_BITMASK</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="bitmask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the bitmask</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function-macro name="value_set_buffer" c:identifier="gst_value_set_buffer" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Sets @b as the value of @v. Caller retains reference to buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="v"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GValue to receive the data</doc> + </parameter> + <parameter name="b"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer to assign to the GstValue</doc> + </parameter> + </parameters> + </function-macro> + <function name="value_set_caps" c:identifier="gst_value_set_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets the contents of @value to @caps. A reference to the +provided @caps will be taken by the @value.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_CAPS</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the caps to set the value to</doc> + <type name="Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="value_set_caps_features" c:identifier="gst_value_set_caps_features"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets the contents of @value to @features.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_CAPS_FEATURES</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="features" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the features to set the value to</doc> + <type name="CapsFeatures" c:type="const GstCapsFeatures*"/> + </parameter> + </parameters> + </function> + <function name="value_set_double_range" c:identifier="gst_value_set_double_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the range specified by @start and @end.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the start of the range</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the end of the range</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </function> + <function name="value_set_flagset" c:identifier="gst_value_set_flagset" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the flags and mask values provided in @flags and @mask. +The @flags value indicates the values of flags, the @mask represents +which bits in the flag value have been set, and which are "don't care"</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to %GST_TYPE_FLAG_SET</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">The value of the flags set or unset</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="mask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">The mask indicate which flags bits must match for comparisons</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="value_set_fraction" c:identifier="gst_value_set_fraction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the fraction specified by @numerator over @denominator. +The fraction gets reduced to the smallest numerator and denominator, +and if necessary the sign is moved to the numerator.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to #GST_TYPE_FRACTION</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="numerator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the numerator of the fraction</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="denominator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the denominator of the fraction</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="value_set_fraction_range" c:identifier="gst_value_set_fraction_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the range specified by @start and @end.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the start of the range (a GST_TYPE_FRACTION GValue)</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the end of the range (a GST_TYPE_FRACTION GValue)</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="value_set_fraction_range_full" c:identifier="gst_value_set_fraction_range_full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the range specified by @numerator_start/@denominator_start +and @numerator_end/@denominator_end.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="numerator_start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the numerator start of the range</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="denominator_start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the denominator start of the range</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="numerator_end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the numerator end of the range</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="denominator_end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the denominator end of the range</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="value_set_int64_range" c:identifier="gst_value_set_int64_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the range specified by @start and @end.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT64_RANGE</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the start of the range</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the end of the range</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </function> + <function name="value_set_int64_range_step" c:identifier="gst_value_set_int64_range_step"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the range specified by @start, @end and @step.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT64_RANGE</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the start of the range</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the end of the range</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="step" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the step of the range</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </function> + <function name="value_set_int_range" c:identifier="gst_value_set_int_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the range specified by @start and @end.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT_RANGE</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the start of the range</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the end of the range</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="value_set_int_range_step" c:identifier="gst_value_set_int_range_step"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets @value to the range specified by @start, @end and @step.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_INT_RANGE</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the start of the range</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the end of the range</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="step" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the step of the range</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function-macro name="value_set_sample" c:identifier="gst_value_set_sample" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">Sets @b as the value of @v. Caller retains reference to sample.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <parameters> + <parameter name="v"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">a #GValue to receive the data</doc> + </parameter> + <parameter name="b"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">a #GstSample to assign to the GstValue</doc> + </parameter> + </parameters> + </function-macro> + <function name="value_set_structure" c:identifier="gst_value_set_structure"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Sets the contents of @value to @structure.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a GValue initialized to GST_TYPE_STRUCTURE</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="structure" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the structure to set the value to</doc> + <type name="Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="value_subtract" c:identifier="gst_value_subtract"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Subtracts @subtrahend from @minuend and stores the result in @dest. +Note that this means subtraction as in sets, not as in mathematics.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE if the subtraction is not empty</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the destination value + for the result if the subtraction is not empty. May be %NULL, + in which case the resulting set will not be computed, which can + give a fair speedup.</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="minuend" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to subtract from</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="subtrahend" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the value to subtract</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function-macro name="value_take_buffer" c:identifier="gst_value_take_buffer" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">Sets @b as the value of @v. Caller gives away reference to buffer.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstbuffer.h"/> + <parameters> + <parameter name="v"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GValue to receive the data</doc> + </parameter> + <parameter name="b"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstbuffer.h">a #GstBuffer to assign to the GstValue</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="value_take_sample" c:identifier="gst_value_take_sample" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">Sets @b as the value of @v. Caller gives away reference to sample.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstsample.h"/> + <parameters> + <parameter name="v"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">a #GValue to receive the data</doc> + </parameter> + <parameter name="b"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstsample.h">a #GstSample to assign to the GstValue</doc> + </parameter> + </parameters> + </function-macro> + <function name="value_union" c:identifier="gst_value_union"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">Creates a GValue corresponding to the union of @value1 and @value2.</doc> + <source-position filename="../subprojects/gstreamer/gst/gstvalue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">%TRUE if the union succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">the destination value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="value1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">a value to union</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="value2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstvalue.c">another value to union</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="version" c:identifier="gst_version"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">Gets the version number of the GStreamer library.</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">pointer to a guint to store the major version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">pointer to a guint to store the minor version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="micro" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">pointer to a guint to store the micro version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="nano" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">pointer to a guint to store the nano version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="version_string" c:identifier="gst_version_string"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">This function returns a string that is useful for describing this version +of GStreamer to the outside world: user agent strings, logging, ...</doc> + <source-position filename="../subprojects/gstreamer/gst/gst.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gst.c">a newly allocated string describing this version + of GStreamer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + </function> + </namespace> +</repository> diff --git a/girs/GstAllocators-1.0.gir b/girs/GstAllocators-1.0.gir new file mode 100644 index 0000000000..f1b8b2ef08 --- /dev/null +++ b/girs/GstAllocators-1.0.gir @@ -0,0 +1,571 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <package name="gstreamer-allocators-1.0"/> + <c:include name="gst/allocators/allocators.h"/> + <namespace name="GstAllocators" version="1.0" shared-library="libgstallocators-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <constant name="ALLOCATOR_DMABUF" value="dmabuf" c:type="GST_ALLOCATOR_DMABUF"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ALLOCATOR_FD" value="fd" c:type="GST_ALLOCATOR_FD"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="CAPS_FEATURE_MEMORY_DMABUF" value="memory:DMABuf" c:type="GST_CAPS_FEATURE_MEMORY_DMABUF" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h">Constant that defines the caps feature name for DMA buffer sharing. + +It has to be used for non-mappable dma-buf only, i.e. when the underlying +memory is not mappable to user space. Or when the mapped memory contains +non meaningful data. It can be the case for protected content or when the +user wants explicitly avoid any software post processing. + +In these cases all elements between the exported and the importer has to work +in passthrough mode. This is done by adding this caps feature. + +When the memory is mappable for read and write requests then it is assumes +to be a fast path and so this caps feature should not be used. Though +according to the dma-buf protocol, while it is mapped it prevents the +exporter to migrate the buffer. + +This caps feature should not serve at all the purpose of selecting the +@GST_ALLOCATOR_DMABUF allocator during caps negotiation. +When the exporter is the upstream element from the importer point of view, +the exporter should try to map the dma buffer at runtime (preferably during +decide_allocation phase). When it succeeds for #GST_MAP_READWRITE this caps +feature should not be used. This allows scalers, color converts and any image +processing filters to work directly on the dma buffer. +In this case the importer element should check all incoming memory using +gst_is_dmabuf_memory().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="DMABUF_ALLOCATOR" c:identifier="GST_DMABUF_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DMABUF_ALLOCATOR_CAST" c:identifier="GST_DMABUF_ALLOCATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DMABUF_ALLOCATOR_CLASS" c:identifier="GST_DMABUF_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DMABUF_ALLOCATOR_GET_CLASS" c:identifier="GST_DMABUF_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="DRMDumbAllocator" c:symbol-prefix="drm_dumb_allocator" c:type="GstDRMDumbAllocator" version="1.24" parent="Gst.Allocator" glib:type-name="GstDRMDumbAllocator" glib:get-type="gst_drm_dumb_allocator_get_type" glib:type-struct="DRMDumbAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h">Private intance object for #GstDRMDumbAllocator.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h"/> + <constructor name="new_with_device_path" c:identifier="gst_drm_dumb_allocator_new_with_device_path" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">Creates a new #GstDRMDumbAllocator for the specific device path. This +function can fail if the path does not exist, is not a DRM device or if +the DRM device doesnot support DUMB allocation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">a new DRM Dumb allocator. Use gst_object_unref() + to release the allocator after usage.</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </return-value> + <parameters> + <parameter name="drm_device_path" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">path to the DRM device to open</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_with_fd" c:identifier="gst_drm_dumb_allocator_new_with_fd" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">Creates a new #GstDRMDumbAllocator for the specific file desciptor. This +function can fail if the file descriptor is not a DRM device or if +the DRM device does not support DUMB allocation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">a new DRM Dumb allocator. Use gst_object_unref() + to release the allocator after usage.</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </return-value> + <parameters> + <parameter name="drm_fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">file descriptor of the DRM device</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </constructor> + <method name="alloc" c:identifier="gst_drm_dumb_allocator_alloc" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">Allocated a DRM buffer object for the specific @drm_fourcc, @width and +@height. Note that the DRM Dumb allocation interface is agnostic to the +pixel format. This @drm_fourcc is converted into a bpp (bit-per-pixel) +number and the height is scaled according to the sub-sampling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">a new DRM Dumb #GstMemory. Use gst_memory_unref() + to release the memory after usage.</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">the allocator instance</doc> + <type name="DRMDumbAllocator" c:type="GstAllocator*"/> + </instance-parameter> + <parameter name="drm_fourcc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">the DRM format to allocate for</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">padded width for this allocation</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">padded height for this allocation</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="out_pitch" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">the pitch as returned by the driver</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="has_prime_export" c:identifier="gst_drm_dumb_allocator_has_prime_export" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">This function allow verifying if the driver support dma-buf exportation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">%TRUE if the allocator support exporting dma-buf.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">the #GstAllocator</doc> + <type name="DRMDumbAllocator" c:type="GstAllocator*"/> + </instance-parameter> + </parameters> + </method> + <property name="drm-device-path" version="1.24" writable="1" construct-only="1" transfer-ownership="none"> + <type name="filename" c:type="gchar*"/> + </property> + <property name="drm-fd" version="1.24" writable="1" construct-only="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + </class> + <record name="DRMDumbAllocatorClass" c:type="GstDRMDumbAllocatorClass" glib:is-gtype-struct-for="DRMDumbAllocator"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h"/> + <field name="parent_class"> + <type name="Gst.AllocatorClass" c:type="GstAllocatorClass"/> + </field> + </record> + <class name="DmaBufAllocator" c:symbol-prefix="dmabuf_allocator" c:type="GstDmaBufAllocator" version="1.12" parent="FdAllocator" glib:type-name="GstDmaBufAllocator" glib:get-type="gst_dmabuf_allocator_get_type" glib:type-struct="DmaBufAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h">Base class for allocators with dmabuf-backed memory</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <constructor name="new" c:identifier="gst_dmabuf_allocator_new" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">Return a new dmabuf allocator.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">a new dmabuf allocator. Use gst_object_unref() to +release the allocator after usage</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </return-value> + </constructor> + <function name="alloc" c:identifier="gst_dmabuf_allocator_alloc" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">Return a %GstMemory that wraps a dmabuf file descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">a GstMemory based on @allocator. +When the buffer will be released dmabuf allocator will close the @fd. +The memory is only mmapped on gst_buffer_map() request.</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">allocator to be used for this memory</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">dmabuf file descriptor</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">memory size</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="alloc_with_flags" c:identifier="gst_dmabuf_allocator_alloc_with_flags" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">Return a %GstMemory that wraps a dmabuf file descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">a GstMemory based on @allocator. + +When the buffer will be released the allocator will close the @fd unless +the %GST_FD_MEMORY_FLAG_DONT_CLOSE flag is specified. +The memory is only mmapped on gst_buffer_mmap() request.</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">allocator to be used for this memory</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">dmabuf file descriptor</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">memory size</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">extra #GstFdMemoryFlags</doc> + <type name="FdMemoryFlags" c:type="GstFdMemoryFlags"/> + </parameter> + </parameters> + </function> + <field name="parent"> + <type name="FdAllocator" c:type="GstFdAllocator"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="DmaBufAllocatorClass" c:type="GstDmaBufAllocatorClass" glib:is-gtype-struct-for="DmaBufAllocator"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <field name="parent_class"> + <type name="FdAllocatorClass" c:type="GstFdAllocatorClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <function-macro name="FD_ALLOCATOR" c:identifier="GST_FD_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="FD_ALLOCATOR_CAST" c:identifier="GST_FD_ALLOCATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="FD_ALLOCATOR_CLASS" c:identifier="GST_FD_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="FD_ALLOCATOR_GET_CLASS" c:identifier="GST_FD_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="FdAllocator" c:symbol-prefix="fd_allocator" c:type="GstFdAllocator" version="1.6" parent="Gst.Allocator" glib:type-name="GstFdAllocator" glib:get-type="gst_fd_allocator_get_type" glib:type-struct="FdAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h">Base class for allocators with fd-backed memory</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <constructor name="new" c:identifier="gst_fd_allocator_new" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">Return a new fd allocator.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">a new fd allocator. Use gst_object_unref() to +release the allocator after usage</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </return-value> + </constructor> + <function name="alloc" c:identifier="gst_fd_allocator_alloc" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">Return a %GstMemory that wraps a generic file descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">a GstMemory based on @allocator. +When the buffer will be released the allocator will close the @fd unless +the %GST_FD_MEMORY_FLAG_DONT_CLOSE flag is specified. +The memory is only mmapped on gst_buffer_map() request.</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">allocator to be used for this memory</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="fd" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">file descriptor</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">memory size</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">extra #GstFdMemoryFlags</doc> + <type name="FdMemoryFlags" c:type="GstFdMemoryFlags"/> + </parameter> + </parameters> + </function> + <field name="parent"> + <type name="Gst.Allocator" c:type="GstAllocator"/> + </field> + </class> + <record name="FdAllocatorClass" c:type="GstFdAllocatorClass" glib:is-gtype-struct-for="FdAllocator"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <field name="parent_class"> + <type name="Gst.AllocatorClass" c:type="GstAllocatorClass"/> + </field> + </record> + <bitfield name="FdMemoryFlags" version="1.6" c:type="GstFdMemoryFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h">Various flags to control the operation of the fd backed memory.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <member name="none" value="0" c:identifier="GST_FD_MEMORY_FLAG_NONE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h">no flag</doc> + </member> + <member name="keep_mapped" value="1" c:identifier="GST_FD_MEMORY_FLAG_KEEP_MAPPED"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h">once the memory is mapped, + keep it mapped until the memory is destroyed.</doc> + </member> + <member name="map_private" value="2" c:identifier="GST_FD_MEMORY_FLAG_MAP_PRIVATE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h">do a private mapping instead of + the default shared mapping.</doc> + </member> + <member name="dont_close" value="4" c:identifier="GST_FD_MEMORY_FLAG_DONT_CLOSE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h">don't close the file descriptor when + the memory is freed. Since: 1.10</doc> + </member> + </bitfield> + <function-macro name="IS_DMABUF_ALLOCATOR" c:identifier="GST_IS_DMABUF_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DMABUF_ALLOCATOR_CLASS" c:identifier="GST_IS_DMABUF_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_FD_ALLOCATOR" c:identifier="GST_IS_FD_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_FD_ALLOCATOR_CLASS" c:identifier="GST_IS_FD_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PHYS_MEMORY_ALLOCATOR_CAST" c:identifier="GST_PHYS_MEMORY_ALLOCATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PHYS_MEMORY_ALLOCATOR_GET_INTERFACE" c:identifier="GST_PHYS_MEMORY_ALLOCATOR_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <interface name="PhysMemoryAllocator" c:symbol-prefix="phys_memory_allocator" c:type="GstPhysMemoryAllocator" version="1.14" glib:type-name="GstPhysMemoryAllocator" glib:get-type="gst_phys_memory_allocator_get_type" glib:type-struct="PhysMemoryAllocatorInterface"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.h"/> + <prerequisite name="Gst.Allocator"/> + <virtual-method name="get_phys_addr"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.h"/> + <return-value transfer-ownership="none"> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none"> + <type name="PhysMemoryAllocator" c:type="GstPhysMemoryAllocator*"/> + </instance-parameter> + <parameter name="mem" transfer-ownership="none"> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </virtual-method> + </interface> + <record name="PhysMemoryAllocatorInterface" c:type="GstPhysMemoryAllocatorInterface" glib:is-gtype-struct-for="PhysMemoryAllocator" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.h">Marker interface for allocators with physical address backed memory</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.h"/> + <field name="parent_iface" readable="0" private="1"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="get_phys_addr"> + <callback name="get_phys_addr"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.h"/> + <return-value transfer-ownership="none"> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <type name="PhysMemoryAllocator" c:type="GstPhysMemoryAllocator*"/> + </parameter> + <parameter name="mem" transfer-ownership="none"> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </callback> + </field> + </record> + <function name="dmabuf_memory_get_fd" c:identifier="gst_dmabuf_memory_get_fd" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">Return the file descriptor associated with @mem.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">the file descriptor associated with the memory, or -1. The file + descriptor is still owned by the GstMemory. Use dup to take a copy + if you intend to use it beyond the lifetime of this GstMemory.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">the memory to get the file descriptor</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="drm_dumb_memory_export_dmabuf" c:identifier="gst_drm_dumb_memory_export_dmabuf" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">Exports a DMABuf from the DRM Bumb buffer object. One can check if this +feature is supported using gst_drm_dumb_allocator_has_prime_export();</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">a #GstMemory from #GstDmaBufAllocator wrapping the exported dma-buf + file descriptor.</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">the memory to export from</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="drm_dumb_memory_get_handle" c:identifier="gst_drm_dumb_memory_get_handle" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">Return the DRM buffer object handle associated with @mem.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">the DRM buffer object handle associated with the memory, or 0. + The handle is still owned by the GstMemory and cannot be used + beyond the lifetime of this GstMemory unless it is being passed + to DRM driver, which does handle a refcount internally.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">the memory to get the handle from</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="fd_memory_get_fd" c:identifier="gst_fd_memory_get_fd" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">Get the fd from @mem. Call gst_is_fd_memory() to check if @mem has +an fd.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">the fd of @mem or -1 when there is no fd on @mem</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">#GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="is_dmabuf_memory" c:identifier="gst_is_dmabuf_memory" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">Check if @mem is dmabuf memory.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">%TRUE if @mem is dmabuf memory, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdmabuf.c">the memory to be check</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="is_drm_dumb_memory" c:identifier="gst_is_drm_dumb_memory" version="1.24"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">%TRUE if @mem is DRM Dumb memory, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstdrmdumb.c">the memory to be checked</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="is_fd_memory" c:identifier="gst_is_fd_memory" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">Check if @mem is memory backed by an fd</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">%TRUE when @mem has an fd that can be retrieved with +gst_fd_memory_get_fd().</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">#GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="is_phys_memory" c:identifier="gst_is_phys_memory" version="1.14"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.c">whether the memory at @mem is backed by physical memory</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.c">a #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="phys_memory_get_phys_addr" c:identifier="gst_phys_memory_get_phys_addr" version="1.14"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.c">Physical memory address that is backing @mem, or 0 if none</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstphysmemory.c">a #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstApp-1.0.gir b/girs/GstApp-1.0.gir new file mode 100644 index 0000000000..e233663eec --- /dev/null +++ b/girs/GstApp-1.0.gir @@ -0,0 +1,2421 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <include name="GstBase" version="1.0"/> + <package name="gstreamer-app-1.0"/> + <c:include name="gst/app/app.h"/> + <namespace name="GstApp" version="1.0" shared-library="libgstapp-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="APP_SINK" c:identifier="GST_APP_SINK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="APP_SINK_CAST" c:identifier="GST_APP_SINK_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="APP_SINK_CLASS" c:identifier="GST_APP_SINK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="APP_SRC" c:identifier="GST_APP_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="APP_SRC_CAST" c:identifier="GST_APP_SRC_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="APP_SRC_CLASS" c:identifier="GST_APP_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <enumeration name="AppLeakyType" version="1.20" glib:type-name="GstAppLeakyType" glib:get-type="gst_app_leaky_type_get_type" c:type="GstAppLeakyType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h">Buffer dropping scheme to avoid the element's internal queue to block when +full.</doc> + <member name="none" value="0" c:identifier="GST_APP_LEAKY_TYPE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h">Not Leaky</doc> + </member> + <member name="upstream" value="1" c:identifier="GST_APP_LEAKY_TYPE_UPSTREAM" glib:nick="upstream"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h">Leaky on upstream (new buffers)</doc> + </member> + <member name="downstream" value="2" c:identifier="GST_APP_LEAKY_TYPE_DOWNSTREAM" glib:nick="downstream"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h">Leaky on downstream (old buffers)</doc> + </member> + </enumeration> + <class name="AppSink" c:symbol-prefix="app_sink" c:type="GstAppSink" parent="GstBase.BaseSink" glib:type-name="GstAppSink" glib:get-type="gst_app_sink_get_type" glib:type-struct="AppSinkClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Appsink is a sink plugin that supports many different methods for making +the application get a handle on the GStreamer data in a pipeline. Unlike +most GStreamer elements, Appsink provides external API functions. + +appsink can be used by linking to the gstappsink.h header file to access the +methods or by using the appsink action signals and properties. + +The normal way of retrieving samples from appsink is by using the +gst_app_sink_pull_sample() and gst_app_sink_pull_preroll() methods. +These methods block until a sample becomes available in the sink or when the +sink is shut down or reaches EOS. There are also timed variants of these +methods, gst_app_sink_try_pull_sample() and gst_app_sink_try_pull_preroll(), +which accept a timeout parameter to limit the amount of time to wait. + +Appsink will internally use a queue to collect buffers from the streaming +thread. If the application is not pulling samples fast enough, this queue +will consume a lot of memory over time. The "max-buffers" property can be +used to limit the queue size. The "drop" property controls whether the +streaming thread blocks or if older buffers are dropped when the maximum +queue size is reached. Note that blocking the streaming thread can negatively +affect real-time performance and should be avoided. + +If a blocking behaviour is not desirable, setting the "emit-signals" property +to %TRUE will make appsink emit the "new-sample" and "new-preroll" signals +when a sample can be pulled without blocking. + +The "caps" property on appsink can be used to control the formats that +appsink can receive. This property can contain non-fixed caps, the format of +the pulled samples can be obtained by getting the sample caps. + +If one of the pull-preroll or pull-sample methods return %NULL, the appsink +is stopped or in the EOS state. You can check for the EOS state with the +"eos" property or with the gst_app_sink_is_eos() method. + +The eos signal can also be used to be informed when the EOS state is reached +to avoid polling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <implements name="Gst.URIHandler"/> + <virtual-method name="eos"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="new_preroll"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="new_sample"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="pull_preroll" invoker="pull_preroll"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the last preroll sample in @appsink. This was the sample that caused the +appsink to preroll in the PAUSED state. + +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the sample right +after the seek position. + +Calling this function will clear the internal reference to the preroll +buffer. + +Note that the preroll sample will also be returned as the first sample +when calling gst_app_sink_pull_sample(). + +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition. + +This function blocks until a preroll sample or EOS is received or the appsink +element is set to the READY/NULL state.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="pull_sample" invoker="pull_sample"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or EOS becomes available or the appsink +element is set to the READY/NULL state. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered buffers will be put in a queue so that the application +can pull samples at its own rate. Note that when the application does not +pull samples fast enough, the queued buffers could consume a lot of memory, +especially when dealing with raw video frames. + +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="try_pull_object" invoker="try_pull_object" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or an event or EOS becomes available or the appsink +element is set to the READY/NULL state or the timeout expires. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered buffers and events will be put in a queue so that the application +can pull them at its own rate. Note that when the application does not +pull samples fast enough, the queued buffers could consume a lot of memory, +especially when dealing with raw video frames. +Events can be pulled when the appsink is in the READY, PAUSED or PLAYING state. + +This function will only pull serialized events, excluding +the EOS event for which this functions returns +%NULL. Use gst_app_sink_is_eos() to check for the EOS condition. + +This method is a variant of gst_app_sink_try_pull_sample() that can be used +to handle incoming events events as well as samples. + +Note that future releases may extend this API to return other object types +so make sure that your code is checking for the actual type it is handling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample, or #GstEvent or NULL when the appsink is stopped or EOS or the timeout expires. +Call gst_mini_object_unref() after usage.</doc> + <type name="Gst.MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for a sample</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="try_pull_preroll" invoker="try_pull_preroll" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the last preroll sample in @appsink. This was the sample that caused the +appsink to preroll in the PAUSED state. + +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the sample right +after the seek position. + +Calling this function will clear the internal reference to the preroll +buffer. + +Note that the preroll sample will also be returned as the first sample +when calling gst_app_sink_pull_sample(). + +If an EOS event was received before any buffers or the timeout expires, +this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS +condition. + +This function blocks until a preroll sample or EOS is received, the appsink +element is set to the READY/NULL state, or the timeout expires.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for the preroll sample</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="try_pull_sample" invoker="try_pull_sample" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or EOS becomes available or the appsink +element is set to the READY/NULL state or the timeout expires. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered buffers will be put in a queue so that the application +can pull samples at its own rate. Note that when the application does not +pull samples fast enough, the queued buffers could consume a lot of memory, +especially when dealing with raw video frames. + +If an EOS event was received before any buffers or the timeout expires, +this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS +condition.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for a sample</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_buffer_list_support" c:identifier="gst_app_sink_get_buffer_list_support" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Check if @appsink supports buffer lists.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">%TRUE if @appsink supports buffer lists.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_caps" c:identifier="gst_app_sink_get_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the configured caps on @appsink.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the #GstCaps accepted by the sink. gst_caps_unref() after usage.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_drop" c:identifier="gst_app_sink_get_drop"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Check if @appsink will drop old buffers when the maximum amount of queued +buffers is reached.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">%TRUE if @appsink is dropping old buffers when the queue is +filled.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_emit_signals" c:identifier="gst_app_sink_get_emit_signals"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Check if appsink will emit the "new-preroll" and "new-sample" signals.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">%TRUE if @appsink is emitting the "new-preroll" and "new-sample" +signals.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_buffers" c:identifier="gst_app_sink_get_max_buffers"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the maximum amount of buffers that can be queued in @appsink.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">The maximum amount of buffers that can be queued.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_wait_on_eos" c:identifier="gst_app_sink_get_wait_on_eos"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Check if @appsink will wait for all buffers to be consumed when an EOS is +received.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">%TRUE if @appsink will wait for all buffers to be consumed when an +EOS is received.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_eos" c:identifier="gst_app_sink_is_eos"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Check if @appsink is EOS, which is when no more samples can be pulled because +an EOS event was received. + +This function also returns %TRUE when the appsink is not in the PAUSED or +PLAYING state.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">%TRUE if no more samples can be pulled and the appsink is EOS.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="pull_object" c:identifier="gst_app_sink_pull_object" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or an event becomes available or the appsink +element is set to the READY/NULL state. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered buffers and events will be put in a queue so that the application +can pull them at its own rate. Note that when the application does not +pull samples fast enough, the queued buffers could consume a lot of memory, +especially when dealing with raw video frames. +Events can be pulled when the appsink is in the READY, PAUSED or PLAYING state. + +This function will only pull serialized events, excluding +the EOS event for which this functions returns +%NULL. Use gst_app_sink_is_eos() to check for the EOS condition. + +This method is a variant of gst_app_sink_pull_sample() that can be used +to handle incoming events events as well as samples. + +Note that future releases may extend this API to return other object types +so make sure that your code is checking for the actual type it is handling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample, or a #GstEvent or NULL when the appsink is stopped or EOS. + Call gst_mini_object_unref() after usage.</doc> + <type name="Gst.MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="pull_preroll" c:identifier="gst_app_sink_pull_preroll"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the last preroll sample in @appsink. This was the sample that caused the +appsink to preroll in the PAUSED state. + +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the sample right +after the seek position. + +Calling this function will clear the internal reference to the preroll +buffer. + +Note that the preroll sample will also be returned as the first sample +when calling gst_app_sink_pull_sample(). + +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition. + +This function blocks until a preroll sample or EOS is received or the appsink +element is set to the READY/NULL state.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="pull_sample" c:identifier="gst_app_sink_pull_sample"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or EOS becomes available or the appsink +element is set to the READY/NULL state. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered buffers will be put in a queue so that the application +can pull samples at its own rate. Note that when the application does not +pull samples fast enough, the queued buffers could consume a lot of memory, +especially when dealing with raw video frames. + +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_buffer_list_support" c:identifier="gst_app_sink_set_buffer_list_support" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Instruct @appsink to enable or disable buffer list support. + +For backwards-compatibility reasons applications need to opt in +to indicate that they will be able to handle buffer lists.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="enable_lists" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">enable or disable buffer list support</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_callbacks" c:identifier="gst_app_sink_set_callbacks" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Set callbacks which will be executed for each new preroll, new sample and eos. +This is an alternative to using the signals, it has lower overhead and is thus +less expensive, but also less flexible. + +If callbacks are installed, no signals will be emitted for performance +reasons. + +Before 1.16.3 it was not possible to change the callbacks in a thread-safe +way.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="callbacks" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the callbacks</doc> + <type name="AppSinkCallbacks" c:type="GstAppSinkCallbacks*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a user_data argument for the callbacks</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a destroy notify function</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_caps" c:identifier="gst_app_sink_set_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Set the capabilities on the appsink element. This function takes +a copy of the caps structure. After calling this method, the sink will only +accept caps that match @caps. If @caps is non-fixed, or incomplete, +you must check the caps on the samples to get the actual used caps.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">caps to set</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_drop" c:identifier="gst_app_sink_set_drop"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Instruct @appsink to drop old buffers when the maximum amount of queued +buffers is reached.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="drop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_emit_signals" c:identifier="gst_app_sink_set_emit_signals"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Make appsink emit the "new-preroll" and "new-sample" signals. This option is +by default disabled because signal emission is expensive and unneeded when +the application prefers to operate in pull mode.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="emit" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_max_buffers" c:identifier="gst_app_sink_set_max_buffers"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Set the maximum amount of buffers that can be queued in @appsink. After this +amount of buffers are queued in appsink, any more buffers will block upstream +elements until a sample is pulled from @appsink.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="max" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum number of buffers to queue</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_wait_on_eos" c:identifier="gst_app_sink_set_wait_on_eos"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Instruct @appsink to wait for all buffers to be consumed when an EOS is received.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="wait" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="try_pull_object" c:identifier="gst_app_sink_try_pull_object" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or an event or EOS becomes available or the appsink +element is set to the READY/NULL state or the timeout expires. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered buffers and events will be put in a queue so that the application +can pull them at its own rate. Note that when the application does not +pull samples fast enough, the queued buffers could consume a lot of memory, +especially when dealing with raw video frames. +Events can be pulled when the appsink is in the READY, PAUSED or PLAYING state. + +This function will only pull serialized events, excluding +the EOS event for which this functions returns +%NULL. Use gst_app_sink_is_eos() to check for the EOS condition. + +This method is a variant of gst_app_sink_try_pull_sample() that can be used +to handle incoming events events as well as samples. + +Note that future releases may extend this API to return other object types +so make sure that your code is checking for the actual type it is handling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample, or #GstEvent or NULL when the appsink is stopped or EOS or the timeout expires. +Call gst_mini_object_unref() after usage.</doc> + <type name="Gst.MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for a sample</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="try_pull_preroll" c:identifier="gst_app_sink_try_pull_preroll" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the last preroll sample in @appsink. This was the sample that caused the +appsink to preroll in the PAUSED state. + +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the sample right +after the seek position. + +Calling this function will clear the internal reference to the preroll +buffer. + +Note that the preroll sample will also be returned as the first sample +when calling gst_app_sink_pull_sample(). + +If an EOS event was received before any buffers or the timeout expires, +this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS +condition. + +This function blocks until a preroll sample or EOS is received, the appsink +element is set to the READY/NULL state, or the timeout expires.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for the preroll sample</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="try_pull_sample" c:identifier="gst_app_sink_try_pull_sample" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or EOS becomes available or the appsink +element is set to the READY/NULL state or the timeout expires. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered buffers will be put in a queue so that the application +can pull samples at its own rate. Note that when the application does not +pull samples fast enough, the queued buffers could consume a lot of memory, +especially when dealing with raw video frames. + +If an EOS event was received before any buffers or the timeout expires, +this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS +condition.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for a sample</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <property name="buffer-list" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="caps" writable="1" transfer-ownership="none"> + <type name="Gst.Caps"/> + </property> + <property name="drop" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="emit-signals" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="eos" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="max-buffers" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="wait-on-eos" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="basesink"> + <type name="GstBase.BaseSink" c:type="GstBaseSink"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AppSinkPrivate" c:type="GstAppSinkPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="eos" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Signal that the end-of-stream has been reached. This signal is emitted from +the streaming thread.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="new-preroll" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Signal that a new preroll sample is available. + +This signal is emitted from the streaming thread and only when the +"emit-signals" property is %TRUE. + +The new preroll sample can be retrieved with the "pull-preroll" action +signal or gst_app_sink_pull_preroll() either from this signal callback +or from any other thread. + +Note that this signal is only emitted when the "emit-signals" property is +set to %TRUE, which it is not by default for performance reasons.</doc> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn"/> + </return-value> + </glib:signal> + <glib:signal name="new-sample" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Signal that a new sample is available. + +This signal is emitted from the streaming thread and only when the +"emit-signals" property is %TRUE. + +The new sample can be retrieved with the "pull-sample" action +signal or gst_app_sink_pull_sample() either from this signal callback +or from any other thread. + +Note that this signal is only emitted when the "emit-signals" property is +set to %TRUE, which it is not by default for performance reasons.</doc> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn"/> + </return-value> + </glib:signal> + <glib:signal name="new-serialized-event" when="last" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Signal that a new downstream serialized event is available. + +This signal is emitted from the streaming thread and only when the +"emit-signals" property is %TRUE. + +The new event can be retrieved with the "try-pull-object" action +signal or gst_app_sink_pull_object() either from this signal callback +or from any other thread. + +EOS will not be notified using this signal, use #GstAppSink::eos instead. +EOS cannot be pulled either, use gst_app_sink_is_eos() to check for it. + +Note that this signal is only emitted when the "emit-signals" property is +set to %TRUE, which it is not by default for performance reasons. + +The callback should return %TRUE if the event has been handled, which will +skip basesink handling of the event, %FALSE otherwise.</doc> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </glib:signal> + <glib:signal name="propose-allocation" when="last" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Signal that a new propose_allocation query is available. + +This signal is emitted from the streaming thread and only when the +"emit-signals" property is %TRUE.</doc> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the allocation query</doc> + <type name="Gst.Query"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pull-preroll" when="last" action="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the last preroll sample in @appsink. This was the sample that caused the +appsink to preroll in the PAUSED state. + +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the sample right +after the seek position. + +Calling this function will clear the internal reference to the preroll +buffer. + +Note that the preroll sample will also be returned as the first sample +when calling gst_app_sink_pull_sample() or the "pull-sample" action signal. + +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition. + +This function blocks until a preroll sample or EOS is received or the appsink +element is set to the READY/NULL state.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS.</doc> + <type name="Gst.Sample"/> + </return-value> + </glib:signal> + <glib:signal name="pull-sample" when="last" action="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or EOS becomes available or the appsink +element is set to the READY/NULL state. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered samples will be put in a queue so that the application +can pull samples at its own rate. + +Note that when the application does not pull samples fast enough, the +queued samples could consume a lot of memory, especially when dealing with +raw video frames. It's possible to control the behaviour of the queue with +the "drop" and "max-buffers" properties. + +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS.</doc> + <type name="Gst.Sample"/> + </return-value> + </glib:signal> + <glib:signal name="try-pull-object" when="last" action="1" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or an event becomes available or the appsink +element is set to the READY/NULL state or the timeout expires. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered samples and events will be put in a queue so that the application +can pull them at its own rate. +Events can be pulled when the appsink is in the READY, PAUSED or PLAYING state. + +Note that when the application does not pull samples fast enough, the +queued samples could consume a lot of memory, especially when dealing with +raw video frames. It's possible to control the behaviour of the queue with +the "drop" and "max-buffers" properties. + +This function will only pull serialized events, excluding +the EOS event for which this functions returns +%NULL. Use gst_app_sink_is_eos() to check for the EOS condition. + +This signal is a variant of #GstAppSink::try-pull-sample: that can be used +to handle incoming events as well as samples. + +Note that future releases may extend this API to return other object types +so make sure that your code is checking for the actual type it is handling.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or a #GstEvent or NULL when the appsink is stopped or EOS or the timeout expires.</doc> + <type name="Gst.MiniObject"/> + </return-value> + <parameters> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for a sample</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="try-pull-preroll" when="last" action="1" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the last preroll sample in @appsink. This was the sample that caused the +appsink to preroll in the PAUSED state. + +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the sample right +after the seek position. + +Calling this function will clear the internal reference to the preroll +buffer. + +Note that the preroll sample will also be returned as the first sample +when calling gst_app_sink_pull_sample() or the "pull-sample" action signal. + +If an EOS event was received before any buffers or the timeout expires, +this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS +condition. + +This function blocks until a preroll sample or EOS is received, the appsink +element is set to the READY/NULL state, or the timeout expires.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.</doc> + <type name="Gst.Sample"/> + </return-value> + <parameters> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for the preroll sample</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="try-pull-sample" when="last" action="1" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or EOS becomes available or the appsink +element is set to the READY/NULL state or the timeout expires. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered samples will be put in a queue so that the application +can pull samples at its own rate. + +Note that when the application does not pull samples fast enough, the +queued samples could consume a lot of memory, especially when dealing with +raw video frames. It's possible to control the behaviour of the queue with +the "drop" and "max-buffers" properties. + +If an EOS event was received before any buffers or the timeout expires, +this function returns %NULL. Use gst_app_sink_is_eos () to check +for the EOS condition.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.</doc> + <type name="Gst.Sample"/> + </return-value> + <parameters> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for a sample</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="AppSinkCallbacks" c:type="GstAppSinkCallbacks" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h">A set of callbacks that can be installed on the appsink with +gst_app_sink_set_callbacks().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <field name="eos"> + <callback name="eos"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_preroll"> + <callback name="new_preroll"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_sample"> + <callback name="new_sample"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_event"> + <callback name="new_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="propose_allocation"> + <callback name="propose_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AppSinkClass" c:type="GstAppSinkClass" glib:is-gtype-struct-for="AppSink"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <field name="basesink_class"> + <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/> + </field> + <field name="eos"> + <callback name="eos"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_preroll"> + <callback name="new_preroll"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_sample"> + <callback name="new_sample"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pull_preroll"> + <callback name="pull_preroll"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pull_sample"> + <callback name="pull_sample"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="try_pull_preroll"> + <callback name="try_pull_preroll"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for the preroll sample</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="try_pull_sample"> + <callback name="try_pull_sample"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires. + Call gst_sample_unref() after usage.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for a sample</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="try_pull_object"> + <callback name="try_pull_object"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstSample, or #GstEvent or NULL when the appsink is stopped or EOS or the timeout expires. +Call gst_mini_object_unref() after usage.</doc> + <type name="Gst.MiniObject" c:type="GstMiniObject*"/> + </return-value> + <parameters> + <parameter name="appsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the maximum amount of time to wait for a sample</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="1"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AppSinkPrivate" c:type="GstAppSinkPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + </record> + <class name="AppSrc" c:symbol-prefix="app_src" c:type="GstAppSrc" parent="GstBase.BaseSrc" glib:type-name="GstAppSrc" glib:get-type="gst_app_src_get_type" glib:type-struct="AppSrcClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The appsrc element can be used by applications to insert data into a +GStreamer pipeline. Unlike most GStreamer elements, appsrc provides +external API functions. + +appsrc can be used by linking with the libgstapp library to access the +methods directly or by using the appsrc action signals. + +Before operating appsrc, the caps property must be set to fixed caps +describing the format of the data that will be pushed with appsrc. An +exception to this is when pushing buffers with unknown caps, in which case no +caps should be set. This is typically true of file-like sources that push raw +byte buffers. If you don't want to explicitly set the caps, you can use +gst_app_src_push_sample. This method gets the caps associated with the +sample and sets them on the appsrc replacing any previously set caps (if +different from sample's caps). + +The main way of handing data to the appsrc element is by calling the +gst_app_src_push_buffer() method or by emitting the push-buffer action signal. +This will put the buffer onto a queue from which appsrc will read from in its +streaming thread. It is important to note that data transport will not happen +from the thread that performed the push-buffer call. + +The "max-bytes", "max-buffers" and "max-time" properties control how much +data can be queued in appsrc before appsrc considers the queue full. A +filled internal queue will always signal the "enough-data" signal, which +signals the application that it should stop pushing data into appsrc. The +"block" property will cause appsrc to block the push-buffer method until +free data becomes available again. + +When the internal queue is running out of data, the "need-data" signal is +emitted, which signals the application that it should start pushing more data +into appsrc. + +In addition to the "need-data" and "enough-data" signals, appsrc can emit the +"seek-data" signal when the "stream-mode" property is set to "seekable" or +"random-access". The signal argument will contain the new desired position in +the stream expressed in the unit set with the "format" property. After +receiving the seek-data signal, the application should push-buffers from the +new position. + +These signals allow the application to operate the appsrc in two different +ways: + +The push mode, in which the application repeatedly calls the push-buffer/push-sample +method with a new buffer/sample. Optionally, the queue size in the appsrc +can be controlled with the enough-data and need-data signals by respectively +stopping/starting the push-buffer/push-sample calls. This is a typical +mode of operation for the stream-type "stream" and "seekable". Use this +mode when implementing various network protocols or hardware devices. + +The pull mode, in which the need-data signal triggers the next push-buffer call. +This mode is typically used in the "random-access" stream-type. Use this +mode for file access or other randomly accessible sources. In this mode, a +buffer of exactly the amount of bytes given by the need-data signal should be +pushed into appsrc. + +In all modes, the size property on appsrc should contain the total stream +size in bytes. Setting this property is mandatory in the random-access mode. +For the stream and seekable modes, setting this property is optional but +recommended. + +When the application has finished pushing data into appsrc, it should call +gst_app_src_end_of_stream() or emit the end-of-stream action signal. After +this call, no more buffers can be pushed into appsrc until a flushing seek +occurs or the state of the appsrc has gone through READY.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <implements name="Gst.URIHandler"/> + <virtual-method name="end_of_stream" invoker="end_of_stream"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Indicates to the appsrc element that the last buffer queued in the +element is the last buffer of the stream.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the EOS was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="enough_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="need_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="length" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="push_buffer" invoker="push_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Adds a buffer to the queue of buffers that the appsrc element will +push to its source pad. This function takes ownership of the buffer. + +When the block property is TRUE, this function can block until free +space becomes available in the queue.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the buffer was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_EOS when EOS occurred.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstBuffer to push</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="push_buffer_list" invoker="push_buffer_list" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Adds a buffer list to the queue of buffers and buffer lists that the +appsrc element will push to its source pad. This function takes ownership +of @buffer_list. + +When the block property is TRUE, this function can block until free +space becomes available in the queue.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the buffer list was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_EOS when EOS occurred.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="buffer_list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstBufferList to push</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="push_sample" invoker="push_sample" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Extract a buffer from the provided sample and adds it to the queue of +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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the buffer was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_EOS when EOS occurred.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstSample from which buffer and caps may be +extracted</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="seek_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <method name="end_of_stream" c:identifier="gst_app_src_end_of_stream"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Indicates to the appsrc element that the last buffer queued in the +element is the last buffer of the stream.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the EOS was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_caps" c:identifier="gst_app_src_get_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the configured caps on @appsrc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the #GstCaps produced by the source. gst_caps_unref() after usage.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_level_buffers" c:identifier="gst_app_src_get_current_level_buffers" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the number of currently queued buffers inside @appsrc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The number of currently queued buffers.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_level_bytes" c:identifier="gst_app_src_get_current_level_bytes" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the number of currently queued bytes inside @appsrc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The number of currently queued bytes.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_level_time" c:identifier="gst_app_src_get_current_level_time" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the amount of currently queued time inside @appsrc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The amount of currently queued time.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="gst_app_src_get_duration" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is +not known.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the duration of the stream previously set with gst_app_src_set_duration();</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_emit_signals" c:identifier="gst_app_src_get_emit_signals"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Check if appsrc will emit the "new-preroll" and "new-buffer" signals.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">%TRUE if @appsrc is emitting the "new-preroll" and "new-buffer" +signals.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_latency" c:identifier="gst_app_src_get_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Retrieve the min and max latencies in @min and @max respectively.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="min" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the min latency</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="max" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the max latency</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="get_leaky_type" c:identifier="gst_app_src_get_leaky_type" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Returns the currently set #GstAppLeakyType. See gst_app_src_set_leaky_type() +for more details.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The currently set #GstAppLeakyType.</doc> + <type name="AppLeakyType" c:type="GstAppLeakyType"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_buffers" c:identifier="gst_app_src_get_max_buffers" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the maximum amount of buffers that can be queued in @appsrc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The maximum amount of buffers that can be queued.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_bytes" c:identifier="gst_app_src_get_max_bytes"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the maximum amount of bytes that can be queued in @appsrc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The maximum amount of bytes that can be queued.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_time" c:identifier="gst_app_src_get_max_time" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the maximum amount of time that can be queued in @appsrc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The maximum amount of time that can be queued.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_size" c:identifier="gst_app_src_get_size"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the size of the stream in bytes. A value of -1 means that the size is +not known.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the size of the stream previously set with gst_app_src_set_size();</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_type" c:identifier="gst_app_src_get_stream_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Get the stream type. Control the stream type of @appsrc +with gst_app_src_set_stream_type().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the stream type.</doc> + <type name="AppStreamType" c:type="GstAppStreamType"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="push_buffer" c:identifier="gst_app_src_push_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Adds a buffer to the queue of buffers that the appsrc element will +push to its source pad. This function takes ownership of the buffer. + +When the block property is TRUE, this function can block until free +space becomes available in the queue.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the buffer was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_EOS when EOS occurred.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstBuffer to push</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="push_buffer_list" c:identifier="gst_app_src_push_buffer_list" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Adds a buffer list to the queue of buffers and buffer lists that the +appsrc element will push to its source pad. This function takes ownership +of @buffer_list. + +When the block property is TRUE, this function can block until free +space becomes available in the queue.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the buffer list was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_EOS when EOS occurred.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="buffer_list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstBufferList to push</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </method> + <method name="push_sample" c:identifier="gst_app_src_push_sample" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Extract a buffer from the provided sample and adds it to the queue of +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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the buffer was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_EOS when EOS occurred.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstSample from which buffer and caps may be +extracted</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </parameter> + </parameters> + </method> + <method name="set_callbacks" c:identifier="gst_app_src_set_callbacks" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Set callbacks which will be executed when data is needed, enough data has +been collected or when a seek should be performed. +This is an alternative to using the signals, it has lower overhead and is thus +less expensive, but also less flexible. + +If callbacks are installed, no signals will be emitted for performance +reasons. + +Before 1.16.3 it was not possible to change the callbacks in a thread-safe +way.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="callbacks" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the callbacks</doc> + <type name="AppSrcCallbacks" c:type="GstAppSrcCallbacks*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a user_data argument for the callbacks</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a destroy notify function</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_caps" c:identifier="gst_app_src_set_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Set the capabilities on the appsrc element. This function takes +a copy of the caps structure. After calling this method, the source will +only produce caps that match @caps. @caps must be fixed and the caps on the +buffers must match the caps or left NULL.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">caps to set</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_duration" c:identifier="gst_app_src_set_duration" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Set the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is +not known.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the duration to set</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_emit_signals" c:identifier="gst_app_src_set_emit_signals"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Make appsrc emit the "new-preroll" and "new-buffer" signals. This option is +by default disabled because signal emission is expensive and unneeded when +the application prefers to operate in pull mode.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="emit" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_latency" c:identifier="gst_app_src_set_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Configure the @min and @max latency in @src. If @min is set to -1, the +default latency calculations for pseudo-live sources will be used.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="min" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the min latency</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="max" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the max latency</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="set_leaky_type" c:identifier="gst_app_src_set_leaky_type" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">When set to any other value than GST_APP_LEAKY_TYPE_NONE then the appsrc +will drop any buffers that are pushed into it once its internal queue is +full. The selected type defines whether to drop the oldest or new +buffers.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="leaky" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the #GstAppLeakyType</doc> + <type name="AppLeakyType" c:type="GstAppLeakyType"/> + </parameter> + </parameters> + </method> + <method name="set_max_buffers" c:identifier="gst_app_src_set_max_buffers" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Set the maximum amount of buffers that can be queued in @appsrc. +After the maximum amount of buffers are queued, @appsrc will emit the +"enough-data" signal.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="max" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the maximum number of buffers to queue</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="set_max_bytes" c:identifier="gst_app_src_set_max_bytes"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Set the maximum amount of bytes that can be queued in @appsrc. +After the maximum amount of bytes are queued, @appsrc will emit the +"enough-data" signal.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="max" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the maximum number of bytes to queue</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="set_max_time" c:identifier="gst_app_src_set_max_time" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Set the maximum amount of time that can be queued in @appsrc. +After the maximum amount of time are queued, @appsrc will emit the +"enough-data" signal.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="max" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the maximum amonut of time to queue</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_size" c:identifier="gst_app_src_set_size"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Set the size of the stream in bytes. A value of -1 means that the size is +not known.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the size to set</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_stream_type" c:identifier="gst_app_src_set_stream_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Set the stream type on @appsrc. For seekable streams, the "seek" signal must +be connected to. + +A stream_type stream</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the new state</doc> + <type name="AppStreamType" c:type="GstAppStreamType"/> + </parameter> + </parameters> + </method> + <property name="block" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">When max-bytes are queued and after the enough-data signal has been emitted, +block any further push-buffer calls until the amount of queued bytes drops +below the max-bytes limit.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="caps" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The GstCaps that will negotiated downstream and will be put +on outgoing buffers.</doc> + <type name="Gst.Caps"/> + </property> + <property name="current-level-buffers" version="1.20" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The number of currently queued buffers inside appsrc.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="current-level-bytes" version="1.2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The number of currently queued bytes inside appsrc.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="current-level-time" version="1.20" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The amount of currently queued time inside appsrc.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="duration" version="1.10" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The total duration in nanoseconds of the data stream. If the total duration is known, it +is recommended to configure it with this property.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="emit-signals" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Make appsrc emit the "need-data", "enough-data" and "seek-data" signals. +This option is by default enabled for backwards compatibility reasons but +can disabled when needed because signal emission is expensive.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="format" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The format to use for segment events. When the source is producing +timestamped buffers this property should be set to GST_FORMAT_TIME.</doc> + <type name="Gst.Format"/> + </property> + <property name="handle-segment-change" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">When enabled, appsrc will check GstSegment in GstSample which was +pushed via gst_app_src_push_sample() or "push-sample" signal action. +If a GstSegment is changed, corresponding segment event will be followed +by next data flow. + +FIXME: currently only GST_FORMAT_TIME format is supported and therefore +GstAppSrc::format should be time. However, possibly #GstAppSrc can support +other formats.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="is-live" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Instruct the source to behave like a live source. This includes that it +will only push out buffers in the PLAYING state.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="leaky-type" version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">When set to any other value than GST_APP_LEAKY_TYPE_NONE then the appsrc +will drop any buffers that are pushed into it once its internal queue is +full. The selected type defines whether to drop the oldest or new +buffers.</doc> + <type name="AppLeakyType"/> + </property> + <property name="max-buffers" version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The maximum amount of buffers that can be queued internally. +After the maximum amount of buffers are queued, appsrc will emit the +"enough-data" signal.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="max-bytes" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The maximum amount of bytes that can be queued internally. +After the maximum amount of bytes are queued, appsrc will emit the +"enough-data" signal.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="max-latency" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="max-time" version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The maximum amount of time that can be queued internally. +After the maximum amount of time are queued, appsrc will emit the +"enough-data" signal.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="min-latency" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The minimum latency of the source. A value of -1 will use the default +latency calculations of #GstBaseSrc.</doc> + <type name="gint64" c:type="gint64"/> + </property> + <property name="min-percent" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Make appsrc emit the "need-data" signal when the amount of bytes in the +queue drops below this percentage of max-bytes.</doc> + <type name="guint" c:type="guint"/> + </property> + <property name="size" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The total size in bytes of the data stream. If the total size is known, it +is recommended to configure it with this property.</doc> + <type name="gint64" c:type="gint64"/> + </property> + <property name="stream-type" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The type of stream that this source is producing. For seekable streams the +application should connect to the seek-data signal.</doc> + <type name="AppStreamType"/> + </property> + <field name="basesrc"> + <type name="GstBase.BaseSrc" c:type="GstBaseSrc"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AppSrcPrivate" c:type="GstAppSrcPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="end-of-stream" when="last" action="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Notify @appsrc that no more buffer are available.</doc> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn"/> + </return-value> + </glib:signal> + <glib:signal name="enough-data" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Signal that the source has enough data. It is recommended that the +application stops calling push-buffer until the need-data signal is +emitted again to avoid excessive buffer queueing.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="need-data" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Signal that the source needs more data. In the callback or from another +thread you should call push-buffer or end-of-stream. + +@length is just a hint and when it is set to -1, any number of bytes can be +pushed into @appsrc. + +You can call push-buffer multiple times until the enough-data signal is +fired.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the amount of bytes needed.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="push-buffer" when="last" action="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Adds a buffer to the queue of buffers that the appsrc element will +push to its source pad. + +This function does not take ownership of the buffer, but it takes a +reference so the buffer can be unreffed at any time 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"> + <type name="Gst.FlowReturn"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a buffer to push</doc> + <type name="Gst.Buffer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="push-buffer-list" when="last" action="1" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Adds a buffer list to the queue of buffers and buffer lists that the +appsrc element will push to its source pad. + +This function does not take ownership of the buffer list, but it takes a +reference so the buffer list can be unreffed at any time 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"> + <type name="Gst.FlowReturn"/> + </return-value> + <parameters> + <parameter name="buffer_list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a buffer list to push</doc> + <type name="Gst.BufferList"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="push-sample" when="last" action="1" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Extract a buffer from the provided sample and adds the extracted buffer +to the queue of buffers that the appsrc element will +push to its source pad. This function set the appsrc caps based on the caps +in the sample and reset the caps if they change. +Only the caps and the buffer of the provided sample are used and not +for example the segment in the sample. + +This function does not take ownership of the sample, but it takes a +reference so the sample can be unreffed at any time 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"> + <type name="Gst.FlowReturn"/> + </return-value> + <parameters> + <parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a sample from which extract buffer to push</doc> + <type name="Gst.Sample"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="seek-data" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Seek to the given offset. The next push-buffer should produce buffers from +the new @offset. +This callback is only called for seekable stream types.</doc> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">%TRUE if the seek succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">the offset to seek to</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="AppSrcCallbacks" c:type="GstAppSrcCallbacks" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h">A set of callbacks that can be installed on the appsrc with +gst_app_src_set_callbacks().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <field name="need_data"> + <callback name="need_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="enough_data"> + <callback name="enough_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="seek_data"> + <callback name="seek_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AppSrcClass" c:type="GstAppSrcClass" glib:is-gtype-struct-for="AppSrc"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <field name="basesrc_class"> + <type name="GstBase.BaseSrcClass" c:type="GstBaseSrcClass"/> + </field> + <field name="need_data"> + <callback name="need_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="appsrc" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="enough_data"> + <callback name="enough_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="appsrc" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="seek_data"> + <callback name="seek_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="appsrc" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="push_buffer"> + <callback name="push_buffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the buffer was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_EOS when EOS occurred.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstBuffer to push</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="end_of_stream"> + <callback name="end_of_stream"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the EOS was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="push_sample"> + <callback name="push_sample"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the buffer was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_EOS when EOS occurred.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstSample from which buffer and caps may be +extracted</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="push_buffer_list"> + <callback name="push_buffer_list"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">#GST_FLOW_OK when the buffer list was successfully queued. +#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_EOS when EOS occurred.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="appsrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstAppSrc</doc> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="buffer_list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">a #GstBufferList to push</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AppSrcPrivate" c:type="GstAppSrcPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + </record> + <enumeration name="AppStreamType" glib:type-name="GstAppStreamType" glib:get-type="gst_app_stream_type_get_type" c:type="GstAppStreamType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h">The stream type.</doc> + <member name="stream" value="0" c:identifier="GST_APP_STREAM_TYPE_STREAM" glib:nick="stream"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h">No seeking is supported in the stream, such as a +live stream.</doc> + </member> + <member name="seekable" value="1" c:identifier="GST_APP_STREAM_TYPE_SEEKABLE" glib:nick="seekable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h">The stream is seekable but seeking might not +be very fast, such as data from a webserver.</doc> + </member> + <member name="random_access" value="2" c:identifier="GST_APP_STREAM_TYPE_RANDOM_ACCESS" glib:nick="random-access"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h">The stream is seekable and seeking is fast, +such as in a local file.</doc> + </member> + </enumeration> + <function-macro name="IS_APP_SINK" c:identifier="GST_IS_APP_SINK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_APP_SINK_CLASS" c:identifier="GST_IS_APP_SINK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_APP_SRC" c:identifier="GST_IS_APP_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_APP_SRC_CLASS" c:identifier="GST_IS_APP_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + </namespace> +</repository> diff --git a/girs/GstAudio-1.0.gir b/girs/GstAudio-1.0.gir new file mode 100644 index 0000000000..f967075685 --- /dev/null +++ b/girs/GstAudio-1.0.gir @@ -0,0 +1,10931 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="1.0"/> + <include name="GstBase" version="1.0"/> + <package name="gstreamer-audio-1.0"/> + <c:include name="gst/audio/audio.h"/> + <namespace name="GstAudio" version="1.0" shared-library="libgstaudio-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="AUDIO_AGGREGATOR" c:identifier="GST_AUDIO_AGGREGATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_AGGREGATOR_CLASS" c:identifier="GST_AUDIO_AGGREGATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_AGGREGATOR_CONVERT_PAD" c:identifier="GST_AUDIO_AGGREGATOR_CONVERT_PAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_AGGREGATOR_CONVERT_PAD_CLASS" c:identifier="GST_AUDIO_AGGREGATOR_CONVERT_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_AGGREGATOR_CONVERT_PAD_GET_CLASS" c:identifier="GST_AUDIO_AGGREGATOR_CONVERT_PAD_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_AGGREGATOR_GET_CLASS" c:identifier="GST_AUDIO_AGGREGATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_AGGREGATOR_PAD" c:identifier="GST_AUDIO_AGGREGATOR_PAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_AGGREGATOR_PAD_CLASS" c:identifier="GST_AUDIO_AGGREGATOR_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_AGGREGATOR_PAD_GET_CLASS" c:identifier="GST_AUDIO_AGGREGATOR_PAD_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SINK" c:identifier="GST_AUDIO_BASE_SINK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SINK_CAST" c:identifier="GST_AUDIO_BASE_SINK_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SINK_CLASS" c:identifier="GST_AUDIO_BASE_SINK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SINK_CLOCK" c:identifier="GST_AUDIO_BASE_SINK_CLOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Get the #GstClock of @obj.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">a #GstAudioBaseSink</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SINK_GET_CLASS" c:identifier="GST_AUDIO_BASE_SINK_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SINK_PAD" c:identifier="GST_AUDIO_BASE_SINK_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Get the sink #GstPad of @obj.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">a #GstAudioBaseSink</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SRC" c:identifier="GST_AUDIO_BASE_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SRC_CAST" c:identifier="GST_AUDIO_BASE_SRC_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SRC_CLASS" c:identifier="GST_AUDIO_BASE_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SRC_CLOCK" c:identifier="GST_AUDIO_BASE_SRC_CLOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">Get the #GstClock of @obj.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">a #GstAudioBaseSrc</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SRC_GET_CLASS" c:identifier="GST_AUDIO_BASE_SRC_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BASE_SRC_PAD" c:identifier="GST_AUDIO_BASE_SRC_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">Get the source #GstPad of @obj.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">a #GstAudioBaseSrc</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_BPF" c:identifier="GST_AUDIO_BUFFER_BPF" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_BPS" c:identifier="GST_AUDIO_BUFFER_BPS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_CHANNELS" c:identifier="GST_AUDIO_BUFFER_CHANNELS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_DEPTH" c:identifier="GST_AUDIO_BUFFER_DEPTH" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_FORMAT" c:identifier="GST_AUDIO_BUFFER_FORMAT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_LAYOUT" c:identifier="GST_AUDIO_BUFFER_LAYOUT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_N_PLANES" c:identifier="GST_AUDIO_BUFFER_N_PLANES" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_N_SAMPLES" c:identifier="GST_AUDIO_BUFFER_N_SAMPLES" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_PLANE_DATA" c:identifier="GST_AUDIO_BUFFER_PLANE_DATA" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + <parameter name="p"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_PLANE_SIZE" c:identifier="GST_AUDIO_BUFFER_PLANE_SIZE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_RATE" c:identifier="GST_AUDIO_BUFFER_RATE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_SAMPLE_STRIDE" c:identifier="GST_AUDIO_BUFFER_SAMPLE_STRIDE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_BUFFER_WIDTH" c:identifier="GST_AUDIO_BUFFER_WIDTH" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_CAPS_MAKE" c:identifier="GST_AUDIO_CAPS_MAKE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Generic caps string for audio, for use in pad templates.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="format"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">string format that describes the sample layout, as string + (e.g. "S16LE", "S8", etc.)</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_CD_SRC" c:identifier="GST_AUDIO_CD_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_CD_SRC_CLASS" c:identifier="GST_AUDIO_CD_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_CD_SRC_GET_CLASS" c:identifier="GST_AUDIO_CD_SRC_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_CHANNELS_RANGE" value="(int) [ 1, max ]" c:type="GST_AUDIO_CHANNELS_RANGE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Maximum range of allowed channels, for use in template caps strings.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="AUDIO_CHANNEL_POSITION_MASK" c:identifier="GST_AUDIO_CHANNEL_POSITION_MASK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <parameters> + <parameter name="pos"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_CLOCK" c:identifier="GST_AUDIO_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_CLOCK_CAST" c:identifier="GST_AUDIO_CLOCK_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_CLOCK_CLASS" c:identifier="GST_AUDIO_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_CONVERTER_OPT_DITHER_METHOD" value="GstAudioConverter.dither-method" c:type="GST_AUDIO_CONVERTER_OPT_DITHER_METHOD"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">#GstAudioDitherMethod, The dither method to use when +changing bit depth. +Default is #GST_AUDIO_DITHER_NONE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_CONVERTER_OPT_DITHER_THRESHOLD" value="GstAudioConverter.dither-threshold" c:type="GST_AUDIO_CONVERTER_OPT_DITHER_THRESHOLD" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">Threshold for the output bit depth at/below which to apply dithering. + +Default is 20 bit.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_CONVERTER_OPT_MIX_MATRIX" value="GstAudioConverter.mix-matrix" c:type="GST_AUDIO_CONVERTER_OPT_MIX_MATRIX"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">#GST_TYPE_LIST, The channel mapping matrix. + +The matrix coefficients must be between -1 and 1: the number of rows is equal +to the number of output channels and the number of columns is equal to the +number of input channels. + +## Example matrix generation code +To generate the matrix using code: + +|[ +GValue v = G_VALUE_INIT; +GValue v2 = G_VALUE_INIT; +GValue v3 = G_VALUE_INIT; + +g_value_init (&v2, GST_TYPE_ARRAY); +g_value_init (&v3, G_TYPE_DOUBLE); +g_value_set_double (&v3, 1); +gst_value_array_append_value (&v2, &v3); +g_value_unset (&v3); +[ Repeat for as many double as your input channels - unset and reinit v3 ] +g_value_init (&v, GST_TYPE_ARRAY); +gst_value_array_append_value (&v, &v2); +g_value_unset (&v2); +[ Repeat for as many v2's as your output channels - unset and reinit v2] +g_object_set_property (G_OBJECT (audiomixmatrix), "matrix", &v); +g_value_unset (&v); +]|</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD" value="GstAudioConverter.noise-shaping-method" c:type="GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">#GstAudioNoiseShapingMethod, The noise shaping method to use +to mask noise from quantization errors. +Default is #GST_AUDIO_NOISE_SHAPING_NONE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_CONVERTER_OPT_QUANTIZATION" value="GstAudioConverter.quantization" c:type="GST_AUDIO_CONVERTER_OPT_QUANTIZATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">#G_TYPE_UINT, The quantization amount. Components will be +quantized to multiples of this value. +Default is 1</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_CONVERTER_OPT_RESAMPLER_METHOD" value="GstAudioConverter.resampler-method" c:type="GST_AUDIO_CONVERTER_OPT_RESAMPLER_METHOD"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">#GstAudioResamplerMethod, The resampler method to use when +changing sample rates. +Default is #GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="AUDIO_DECODER" c:identifier="GST_AUDIO_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_DECODER_CAST" c:identifier="GST_AUDIO_DECODER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_DECODER_CLASS" c:identifier="GST_AUDIO_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_DECODER_ERROR" c:identifier="GST_AUDIO_DECODER_ERROR" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">Utility function that audio decoder elements can use in case they encountered +a data processing error that may be fatal for the current "data unit" but +need not prevent subsequent decoding. Such errors are counted and if there +are too many, as configured in the context's max_errors, the pipeline will +post an error message and the application will be requested to stop further +media processing. Otherwise, it is considered a "glitch" and only a warning +is logged. In either case, @ret is set to the proper value to +return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="el"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">the base audio decoder element that generates the error</doc> + </parameter> + <parameter name="weight"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">element defined weight of the error, added to error count</doc> + </parameter> + <parameter name="domain"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">like CORE, LIBRARY, RESOURCE or STREAM (see #gstreamer-GstGError)</doc> + </parameter> + <parameter name="code"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">error code defined for that domain (see #gstreamer-GstGError)</doc> + </parameter> + <parameter name="text"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">the message to display (format string and args enclosed in + parentheses)</doc> + </parameter> + <parameter name="debug"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">debugging information for the message (format string and args + enclosed in parentheses)</doc> + </parameter> + <parameter name="ret"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">variable to receive return value</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_DECODER_GET_CLASS" c:identifier="GST_AUDIO_DECODER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_DECODER_INPUT_SEGMENT" c:identifier="GST_AUDIO_DECODER_INPUT_SEGMENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">Gives the input segment of the element.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">audio decoder instance</doc> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_DECODER_MAX_ERRORS" value="-1" c:type="GST_AUDIO_DECODER_MAX_ERRORS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">Default maximum number of errors tolerated before signaling error.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="AUDIO_DECODER_OUTPUT_SEGMENT" c:identifier="GST_AUDIO_DECODER_OUTPUT_SEGMENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">Gives the output segment of the element.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">audio decoder instance</doc> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_DECODER_SINK_NAME" value="sink" c:type="GST_AUDIO_DECODER_SINK_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">The name of the templates for the sink pad.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="AUDIO_DECODER_SINK_PAD" c:identifier="GST_AUDIO_DECODER_SINK_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">Gives the pointer to the sink #GstPad object of the element.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">base audio codec instance</doc> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_DECODER_SRC_NAME" value="src" c:type="GST_AUDIO_DECODER_SRC_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">The name of the templates for the source pad.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="AUDIO_DECODER_SRC_PAD" c:identifier="GST_AUDIO_DECODER_SRC_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">Gives the pointer to the source #GstPad object of the element.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">base audio codec instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_DECODER_STREAM_LOCK" c:identifier="GST_AUDIO_DECODER_STREAM_LOCK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="dec"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_DECODER_STREAM_UNLOCK" c:identifier="GST_AUDIO_DECODER_STREAM_UNLOCK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="dec"> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_DEF_CHANNELS" value="2" c:type="GST_AUDIO_DEF_CHANNELS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Standard number of channels used in consumer audio.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="AUDIO_DEF_FORMAT" value="S16LE" c:type="GST_AUDIO_DEF_FORMAT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Standard format used in consumer audio.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_DEF_RATE" value="44100" c:type="GST_AUDIO_DEF_RATE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Standard sampling rate used in consumer audio.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="AUDIO_ENCODER" c:identifier="GST_AUDIO_ENCODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_ENCODER_CAST" c:identifier="GST_AUDIO_ENCODER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_ENCODER_CLASS" c:identifier="GST_AUDIO_ENCODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_ENCODER_GET_CLASS" c:identifier="GST_AUDIO_ENCODER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_ENCODER_INPUT_SEGMENT" c:identifier="GST_AUDIO_ENCODER_INPUT_SEGMENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">Gives the input segment of the element.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">base parse instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_ENCODER_OUTPUT_SEGMENT" c:identifier="GST_AUDIO_ENCODER_OUTPUT_SEGMENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">Gives the output segment of the element.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">base parse instance</doc> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_ENCODER_SINK_NAME" value="sink" c:type="GST_AUDIO_ENCODER_SINK_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">the name of the templates for the sink pad</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="AUDIO_ENCODER_SINK_PAD" c:identifier="GST_AUDIO_ENCODER_SINK_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">Gives the pointer to the sink #GstPad object of the element.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">audio encoder instance</doc> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_ENCODER_SRC_NAME" value="src" c:type="GST_AUDIO_ENCODER_SRC_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">the name of the templates for the source pad</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="AUDIO_ENCODER_SRC_PAD" c:identifier="GST_AUDIO_ENCODER_SRC_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">Gives the pointer to the source #GstPad object of the element.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">audio encoder instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_ENCODER_STREAM_LOCK" c:identifier="GST_AUDIO_ENCODER_STREAM_LOCK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="enc"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_ENCODER_STREAM_UNLOCK" c:identifier="GST_AUDIO_ENCODER_STREAM_UNLOCK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="enc"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER" c:identifier="GST_AUDIO_FILTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_BPF" c:identifier="GST_AUDIO_FILTER_BPF" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="filter"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_BPS" c:identifier="GST_AUDIO_FILTER_BPS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="filter"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_CAST" c:identifier="GST_AUDIO_FILTER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_CHANNELS" c:identifier="GST_AUDIO_FILTER_CHANNELS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="filter"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_CLASS" c:identifier="GST_AUDIO_FILTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_CLASS_CAST" c:identifier="GST_AUDIO_FILTER_CLASS_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_FORMAT" c:identifier="GST_AUDIO_FILTER_FORMAT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="filter"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_GET_CLASS" c:identifier="GST_AUDIO_FILTER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_INFO" c:identifier="GST_AUDIO_FILTER_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="filter"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FILTER_RATE" c:identifier="GST_AUDIO_FILTER_RATE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="filter"> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_FORMATS_ALL" value="{ F64BE, F64LE, F32BE, F32LE, S32BE, S32LE, U32BE, U32LE, S24_32BE, S24_32LE, U24_32BE, U24_32LE, S24BE, S24LE, U24BE, U24LE, S20BE, S20LE, U20BE, U20LE, S18BE, S18LE, U18BE, U18LE, S16BE, S16LE, U16BE, U16LE, S8, U8 }" c:type="GST_AUDIO_FORMATS_ALL"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">List of all audio formats, for use in template caps strings. + +Formats are sorted by decreasing "quality", using these criteria by priority: + - depth + - width + - Float > Signed > Unsigned + - native endianness preferred</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="AUDIO_FORMAT_INFO_DEPTH" c:identifier="GST_AUDIO_FORMAT_INFO_DEPTH" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_ENDIANNESS" c:identifier="GST_AUDIO_FORMAT_INFO_ENDIANNESS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_FLAGS" c:identifier="GST_AUDIO_FORMAT_INFO_FLAGS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_FORMAT" c:identifier="GST_AUDIO_FORMAT_INFO_FORMAT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_IS_BIG_ENDIAN" c:identifier="GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_IS_FLOAT" c:identifier="GST_AUDIO_FORMAT_INFO_IS_FLOAT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_IS_INTEGER" c:identifier="GST_AUDIO_FORMAT_INFO_IS_INTEGER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN" c:identifier="GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_IS_SIGNED" c:identifier="GST_AUDIO_FORMAT_INFO_IS_SIGNED" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_IS_VALID_RAW" c:identifier="GST_AUDIO_FORMAT_INFO_IS_VALID_RAW" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Tests that the given #GstAudioFormatInfo represents a valid un-encoded +format.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_NAME" c:identifier="GST_AUDIO_FORMAT_INFO_NAME" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_FORMAT_INFO_WIDTH" c:identifier="GST_AUDIO_FORMAT_INFO_WIDTH" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_BPF" c:identifier="GST_AUDIO_INFO_BPF" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_BPS" c:identifier="GST_AUDIO_INFO_BPS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_CHANNELS" c:identifier="GST_AUDIO_INFO_CHANNELS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_DEPTH" c:identifier="GST_AUDIO_INFO_DEPTH" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_ENDIANNESS" c:identifier="GST_AUDIO_INFO_ENDIANNESS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_FLAGS" c:identifier="GST_AUDIO_INFO_FLAGS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_FORMAT" c:identifier="GST_AUDIO_INFO_FORMAT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_IS_BIG_ENDIAN" c:identifier="GST_AUDIO_INFO_IS_BIG_ENDIAN" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_IS_FLOAT" c:identifier="GST_AUDIO_INFO_IS_FLOAT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_IS_INTEGER" c:identifier="GST_AUDIO_INFO_IS_INTEGER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_IS_LITTLE_ENDIAN" c:identifier="GST_AUDIO_INFO_IS_LITTLE_ENDIAN" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_IS_SIGNED" c:identifier="GST_AUDIO_INFO_IS_SIGNED" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_IS_UNPOSITIONED" c:identifier="GST_AUDIO_INFO_IS_UNPOSITIONED" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_IS_VALID" c:identifier="GST_AUDIO_INFO_IS_VALID" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_LAYOUT" c:identifier="GST_AUDIO_INFO_LAYOUT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_NAME" c:identifier="GST_AUDIO_INFO_NAME" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_POSITION" c:identifier="GST_AUDIO_INFO_POSITION" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="info"> + </parameter> + <parameter name="c"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_RATE" c:identifier="GST_AUDIO_INFO_RATE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="info"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_INFO_WIDTH" c:identifier="GST_AUDIO_INFO_WIDTH" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <parameters> + <parameter name="i"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_NE" c:identifier="GST_AUDIO_NE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Turns audio format string @s into the format string for native endianness.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="s"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">format string without endianness marker</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_OE" c:identifier="GST_AUDIO_OE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Turns audio format string @s into the format string for other endianness.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <parameters> + <parameter name="s"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">format string without endianness marker</doc> + </parameter> + </parameters> + </function-macro> + <constant name="AUDIO_RATE_RANGE" value="(int) [ 1, max ]" c:type="GST_AUDIO_RATE_RANGE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Maximum range of allowed sample rates, for use in template caps strings.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_CUBIC_B" value="GstAudioResampler.cubic-b" c:type="GST_AUDIO_RESAMPLER_OPT_CUBIC_B"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">G_TYPE_DOUBLE, B parameter of the cubic filter. +Values between 0.0 and 2.0 are accepted. 1.0 is the default. + +Below are some values of popular filters: + B C +Hermite 0.0 0.0 +Spline 1.0 0.0 +Catmull-Rom 0.0 1/2</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_CUBIC_C" value="GstAudioResampler.cubic-c" c:type="GST_AUDIO_RESAMPLER_OPT_CUBIC_C"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">G_TYPE_DOUBLE, C parameter of the cubic filter. +Values between 0.0 and 2.0 are accepted. 0.0 is the default. + +See #GST_AUDIO_RESAMPLER_OPT_CUBIC_B for some more common values</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_CUTOFF" value="GstAudioResampler.cutoff" c:type="GST_AUDIO_RESAMPLER_OPT_CUTOFF"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">G_TYPE_DOUBLE, Cutoff parameter for the filter. 0.940 is the default.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_FILTER_INTERPOLATION" value="GstAudioResampler.filter-interpolation" c:type="GST_AUDIO_RESAMPLER_OPT_FILTER_INTERPOLATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">GST_TYPE_AUDIO_RESAMPLER_INTERPOLATION: how the filter coefficients should be + interpolated. +GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC is default.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_FILTER_MODE" value="GstAudioResampler.filter-mode" c:type="GST_AUDIO_RESAMPLER_OPT_FILTER_MODE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">GST_TYPE_AUDIO_RESAMPLER_FILTER_MODE: how the filter tables should be +constructed. +GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO is the default.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_FILTER_MODE_THRESHOLD" value="GstAudioResampler.filter-mode-threshold" c:type="GST_AUDIO_RESAMPLER_OPT_FILTER_MODE_THRESHOLD"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">G_TYPE_UINT: the amount of memory to use for full filter tables before +switching to interpolated filter tables. +1048576 is the default.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_FILTER_OVERSAMPLE" value="GstAudioResampler.filter-oversample" c:type="GST_AUDIO_RESAMPLER_OPT_FILTER_OVERSAMPLE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">G_TYPE_UINT, oversampling to use when interpolating filters +8 is the default.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_MAX_PHASE_ERROR" value="GstAudioResampler.max-phase-error" c:type="GST_AUDIO_RESAMPLER_OPT_MAX_PHASE_ERROR"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">G_TYPE_DOUBLE: The maximum allowed phase error when switching sample +rates. +0.1 is the default.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_N_TAPS" value="GstAudioResampler.n-taps" c:type="GST_AUDIO_RESAMPLER_OPT_N_TAPS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">G_TYPE_INT: the number of taps to use for the filter. +0 is the default and selects the taps automatically.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_STOP_ATTENUATION" value="GstAudioResampler.stop-attenutation" c:type="GST_AUDIO_RESAMPLER_OPT_STOP_ATTENUATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">G_TYPE_DOUBLE, stopband attenuation in decibels. The attenuation +after the stopband for the kaiser window. 85 dB is the default.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_OPT_TRANSITION_BANDWIDTH" value="GstAudioResampler.transition-bandwidth" c:type="GST_AUDIO_RESAMPLER_OPT_TRANSITION_BANDWIDTH"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">G_TYPE_DOUBLE, transition bandwidth. The width of the +transition band for the kaiser window. 0.087 is the default.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="AUDIO_RESAMPLER_QUALITY_DEFAULT" value="4" c:type="GST_AUDIO_RESAMPLER_QUALITY_DEFAULT"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="AUDIO_RESAMPLER_QUALITY_MAX" value="10" c:type="GST_AUDIO_RESAMPLER_QUALITY_MAX"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="AUDIO_RESAMPLER_QUALITY_MIN" value="0" c:type="GST_AUDIO_RESAMPLER_QUALITY_MIN"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="AUDIO_RING_BUFFER" c:identifier="GST_AUDIO_RING_BUFFER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_RING_BUFFER_BROADCAST" c:identifier="GST_AUDIO_RING_BUFFER_BROADCAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="buf"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_RING_BUFFER_CAST" c:identifier="GST_AUDIO_RING_BUFFER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_RING_BUFFER_CLASS" c:identifier="GST_AUDIO_RING_BUFFER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_RING_BUFFER_GET_CLASS" c:identifier="GST_AUDIO_RING_BUFFER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_RING_BUFFER_GET_COND" c:identifier="GST_AUDIO_RING_BUFFER_GET_COND" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="buf"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_RING_BUFFER_SIGNAL" c:identifier="GST_AUDIO_RING_BUFFER_SIGNAL" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="buf"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_RING_BUFFER_WAIT" c:identifier="GST_AUDIO_RING_BUFFER_WAIT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="buf"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_SINK" c:identifier="GST_AUDIO_SINK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_SINK_CLASS" c:identifier="GST_AUDIO_SINK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_SINK_GET_CLASS" c:identifier="GST_AUDIO_SINK_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_SRC" c:identifier="GST_AUDIO_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_SRC_CLASS" c:identifier="GST_AUDIO_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_SRC_GET_CLASS" c:identifier="GST_AUDIO_SRC_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="AudioAggregator" c:symbol-prefix="audio_aggregator" c:type="GstAudioAggregator" version="1.14" parent="GstBase.Aggregator" abstract="1" glib:type-name="GstAudioAggregator" glib:get-type="gst_audio_aggregator_get_type" glib:type-struct="AudioAggregatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.c">Subclasses must use (a subclass of) #GstAudioAggregatorPad for both +their source and sink pads, +gst_element_class_add_static_pad_template_with_gtype() is a convenient +helper. + +#GstAudioAggregator can perform conversion on the data arriving +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 #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. + +See #GstAudioMixer for an example. + +When conversion is enabled, #GstAudioAggregator will accept +any type of raw audio caps and perform conversion +on the data arriving on its sink pads, with whatever downstream +expects as the target format. + +In case downstream caps are not fully fixated, it will use +the first configured sink pad to finish fixating its source pad +caps. + +A notable exception for now is the sample rate, sink pads must +have the same sample rate as either the downstream requirement, +or the first configured pad, or a combination of both (when +downstream specifies a range or a set of acceptable rates). + +The #GstAggregator::samples-selected signal is provided with some +additional information about the output buffer: +- "offset" G_TYPE_UINT64 Offset in samples since segment start + for the position that is next to be filled in the output buffer. +- "frames" G_TYPE_UINT Number of frames per output buffer. + +In addition the gst_aggregator_peek_next_sample() function returns +additional information in the info #GstStructure of the returned sample: +- "output-offset" G_TYPE_UINT64 Sample offset in output segment relative to + the output segment's start where the current position of this input + buffer would be placed +- "position" G_TYPE_UINT current position in the input buffer in samples +- "size" G_TYPE_UINT size of the input buffer in samples</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <virtual-method name="aggregate_one_buffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aagg" transfer-ownership="none"> + <type name="AudioAggregator" c:type="GstAudioAggregator*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="AudioAggregatorPad" c:type="GstAudioAggregatorPad*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="in_offset" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="out_offset" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="num_frames" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create_output_buffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="aagg" transfer-ownership="none"> + <type name="AudioAggregator" c:type="GstAudioAggregator*"/> + </instance-parameter> + <parameter name="num_frames" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </virtual-method> + <method name="set_sink_caps" c:identifier="gst_audio_aggregator_set_sink_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="aagg" transfer-ownership="none"> + <type name="AudioAggregator" c:type="GstAudioAggregator*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="AudioAggregatorPad" c:type="GstAudioAggregatorPad*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <property name="alignment-threshold" writable="1" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="discont-wait" writable="1" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="force-live" version="1.22" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.c">Causes the element to aggregate on a timeout even when no live source is +connected to its sinks. See #GstAggregator:min-upstream-latency for a +companion property: in the vast majority of cases where you plan to plug in +live sources with a non-zero latency, you should set it to a non-zero value.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="ignore-inactive-pads" version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.c">Don't wait for inactive pads when live. An inactive pad +is a pad that hasn't yet received a buffer, but that has +been waited on at least once. + +The purpose of this property is to avoid aggregating on +timeout when new pads are requested in advance of receiving +data flow, for example the user may decide to connect it later, +but wants to configure it already.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="output-buffer-duration" writable="1" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="output-buffer-duration-fraction" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.c">Output block size in nanoseconds, expressed as a fraction.</doc> + <type name="Gst.Fraction"/> + </property> + <field name="parent"> + <type name="GstBase.Aggregator" c:type="GstAggregator"/> + </field> + <field name="current_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h">The caps set by the subclass</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioAggregatorPrivate" c:type="GstAudioAggregatorPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioAggregatorClass" c:type="GstAudioAggregatorClass" glib:is-gtype-struct-for="AudioAggregator" version="1.14"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <field name="parent_class"> + <type name="GstBase.AggregatorClass" c:type="GstAggregatorClass"/> + </field> + <field name="create_output_buffer"> + <callback name="create_output_buffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="aagg" transfer-ownership="none"> + <type name="AudioAggregator" c:type="GstAudioAggregator*"/> + </parameter> + <parameter name="num_frames" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="aggregate_one_buffer"> + <callback name="aggregate_one_buffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aagg" transfer-ownership="none"> + <type name="AudioAggregator" c:type="GstAudioAggregator*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="AudioAggregatorPad" c:type="GstAudioAggregatorPad*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="in_offset" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="out_offset" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="num_frames" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="AudioAggregatorConvertPad" c:symbol-prefix="audio_aggregator_convert_pad" c:type="GstAudioAggregatorConvertPad" version="1.14" parent="AudioAggregatorPad" glib:type-name="GstAudioAggregatorConvertPad" glib:get-type="gst_audio_aggregator_convert_pad_get_type" glib:type-struct="AudioAggregatorConvertPadClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h">An implementation of GstPad that can be used with #GstAudioAggregator. + +See #GstAudioAggregator for more details.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <property name="converter-config" writable="1" transfer-ownership="none"> + <type name="Gst.Structure"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="AudioAggregatorPad" c:type="GstAudioAggregatorPad"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioAggregatorConvertPadPrivate" c:type="GstAudioAggregatorConvertPadPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioAggregatorConvertPadClass" c:type="GstAudioAggregatorConvertPadClass" glib:is-gtype-struct-for="AudioAggregatorConvertPad" version="1.14"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <field name="parent_class"> + <type name="AudioAggregatorPadClass" c:type="GstAudioAggregatorPadClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioAggregatorConvertPadPrivate" c:type="GstAudioAggregatorConvertPadPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + </record> + <class name="AudioAggregatorPad" c:symbol-prefix="audio_aggregator_pad" c:type="GstAudioAggregatorPad" version="1.14" parent="GstBase.AggregatorPad" glib:type-name="GstAudioAggregatorPad" glib:get-type="gst_audio_aggregator_pad_get_type" glib:type-struct="AudioAggregatorPadClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h">The default implementation of GstPad used with #GstAudioAggregator</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <virtual-method name="convert_buffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <type name="AudioAggregatorPad" c:type="GstAudioAggregatorPad*"/> + </instance-parameter> + <parameter name="in_info" transfer-ownership="none"> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + <parameter name="out_info" transfer-ownership="none"> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="update_conversion_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <type name="AudioAggregatorPad" c:type="GstAudioAggregatorPad*"/> + </instance-parameter> + </parameters> + </virtual-method> + <property name="qos-messages" version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.c">Emit QoS messages when dropping buffers.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="parent"> + <type name="GstBase.AggregatorPad" c:type="GstAggregatorPad"/> + </field> + <field name="info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h">The audio info for this pad set from the incoming caps</doc> + <type name="AudioInfo" c:type="GstAudioInfo"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioAggregatorPadPrivate" c:type="GstAudioAggregatorPadPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioAggregatorPadClass" c:type="GstAudioAggregatorPadClass" glib:is-gtype-struct-for="AudioAggregatorPad" version="1.14"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <field name="parent_class"> + <type name="GstBase.AggregatorPadClass" c:type="GstAggregatorPadClass"/> + </field> + <field name="convert_buffer"> + <callback name="convert_buffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="AudioAggregatorPad" c:type="GstAudioAggregatorPad*"/> + </parameter> + <parameter name="in_info" transfer-ownership="none"> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + <parameter name="out_info" transfer-ownership="none"> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="update_conversion_info"> + <callback name="update_conversion_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="AudioAggregatorPad" c:type="GstAudioAggregatorPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioAggregatorPadPrivate" c:type="GstAudioAggregatorPadPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + </record> + <record name="AudioAggregatorPrivate" c:type="GstAudioAggregatorPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + </record> + <class name="AudioBaseSink" c:symbol-prefix="audio_base_sink" c:type="GstAudioBaseSink" parent="GstBase.BaseSink" glib:type-name="GstAudioBaseSink" glib:get-type="gst_audio_base_sink_get_type" glib:type-struct="AudioBaseSinkClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">This is the base class for audio sinks. Subclasses need to implement the +::create_ringbuffer vmethod. This base class will then take care of +writing samples to the ringbuffer, synchronisation, clipping and flushing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <virtual-method name="create_ringbuffer" invoker="create_ringbuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Create and return the #GstAudioRingBuffer for @sink. This function will +call the ::create_ringbuffer vmethod and will set @sink as the parent of +the returned buffer (see gst_object_set_parent()).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">The new ringbuffer of @sink.</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink.</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="payload"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <method name="create_ringbuffer" c:identifier="gst_audio_base_sink_create_ringbuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Create and return the #GstAudioRingBuffer for @sink. This function will +call the ::create_ringbuffer vmethod and will set @sink as the parent of +the returned buffer (see gst_object_set_parent()).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">The new ringbuffer of @sink.</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink.</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_alignment_threshold" c:identifier="gst_audio_base_sink_get_alignment_threshold"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Get the current alignment threshold, in nanoseconds, used by @sink.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">The current alignment threshold used by @sink.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_discont_wait" c:identifier="gst_audio_base_sink_get_discont_wait"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Get the current discont wait, in nanoseconds, used by @sink.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">The current discont wait used by @sink.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_drift_tolerance" c:identifier="gst_audio_base_sink_get_drift_tolerance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Get the current drift tolerance, in microseconds, used by @sink.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">The current drift tolerance used by @sink.</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_provide_clock" c:identifier="gst_audio_base_sink_get_provide_clock"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Queries whether @sink will provide a clock or not. See also +gst_audio_base_sink_set_provide_clock.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">%TRUE if @sink will provide a clock.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_slave_method" c:identifier="gst_audio_base_sink_get_slave_method"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Get the current slave method used by @sink.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">The current slave method used by @sink.</doc> + <type name="AudioBaseSinkSlaveMethod" c:type="GstAudioBaseSinkSlaveMethod"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="report_device_failure" c:identifier="gst_audio_base_sink_report_device_failure" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Informs this base class that the audio output device has failed for +some reason, causing a discontinuity (for example, because the device +recovered from the error, but lost all contents of its ring buffer). +This function is typically called by derived classes, and is useful +for the custom slave method.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_alignment_threshold" c:identifier="gst_audio_base_sink_set_alignment_threshold"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Controls the sink's alignment threshold.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + <parameter name="alignment_threshold" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">the new alignment threshold in nanoseconds</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_custom_slaving_callback" c:identifier="gst_audio_base_sink_set_custom_slaving_callback" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Sets the custom slaving callback. This callback will +be invoked if the slave-method property is set to +GST_AUDIO_BASE_SINK_SLAVE_CUSTOM and the audio sink +receives and plays samples. + +Setting the callback to NULL causes the sink to +behave as if the GST_AUDIO_BASE_SINK_SLAVE_NONE +method were used.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSinkCustomSlavingCallback</doc> + <type name="AudioBaseSinkCustomSlavingCallback" c:type="GstAudioBaseSinkCustomSlavingCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">user data passed to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">called when user_data becomes unused</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_discont_wait" c:identifier="gst_audio_base_sink_set_discont_wait"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Controls how long the sink will wait before creating a discontinuity.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + <parameter name="discont_wait" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">the new discont wait in nanoseconds</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_drift_tolerance" c:identifier="gst_audio_base_sink_set_drift_tolerance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Controls the sink's drift tolerance.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + <parameter name="drift_tolerance" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">the new drift tolerance in microseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_provide_clock" c:identifier="gst_audio_base_sink_set_provide_clock"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Controls whether @sink will provide a clock or not. If @provide is %TRUE, +gst_element_provide_clock() will return a clock that reflects the datarate +of @sink. If @provide is %FALSE, gst_element_provide_clock() will return +NULL.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + <parameter name="provide" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_slave_method" c:identifier="gst_audio_base_sink_set_slave_method"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Controls how clock slaving will be performed in @sink.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </instance-parameter> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">the new slave method</doc> + <type name="AudioBaseSinkSlaveMethod" c:type="GstAudioBaseSinkSlaveMethod"/> + </parameter> + </parameters> + </method> + <property name="alignment-threshold" writable="1" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="buffer-time" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="can-activate-pull" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="discont-wait" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">A window of time in nanoseconds to wait before creating a discontinuity as +a result of breaching the drift-tolerance.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="drift-tolerance" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">Controls the amount of time in microseconds that clocks are allowed +to drift before resynchronisation happens.</doc> + <type name="gint64" c:type="gint64"/> + </property> + <property name="latency-time" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="provide-clock" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="slave-method" writable="1" transfer-ownership="none"> + <type name="AudioBaseSinkSlaveMethod"/> + </property> + <field name="element"> + <type name="GstBase.BaseSink" c:type="GstBaseSink"/> + </field> + <field name="ringbuffer"> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </field> + <field name="buffer_time"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="latency_time"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="next_sample"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="provided_clock"> + <type name="Gst.Clock" c:type="GstClock*"/> + </field> + <field name="eos_rendering"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioBaseSinkPrivate" c:type="GstAudioBaseSinkPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioBaseSinkClass" c:type="GstAudioBaseSinkClass" glib:is-gtype-struct-for="AudioBaseSink"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">#GstAudioBaseSink class. Override the vmethod to implement +functionality.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">the parent class.</doc> + <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/> + </field> + <field name="create_ringbuffer"> + <callback name="create_ringbuffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">The new ringbuffer of @sink.</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c">a #GstAudioBaseSink.</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="payload"> + <callback name="payload"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="AudioBaseSinkCustomSlavingCallback" c:type="GstAudioBaseSinkCustomSlavingCallback" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">This function is set with gst_audio_base_sink_set_custom_slaving_callback() +and is called during playback. It receives the current time of external and +internal clocks, which the callback can then use to apply any custom +slaving/synchronization schemes. + +The external clock is the sink's element clock, the internal one is the +internal audio clock. The internal audio clock's calibration is applied to +the timestamps before they are passed to the callback. The difference between +etime and itime is the skew; how much internal and external clock lie apart +from each other. A skew of 0 means both clocks are perfectly in sync. +itime > etime means the external clock is going slower, while itime < etime +means it is going faster than the internal clock. etime and itime are always +valid timestamps, except for when a discontinuity happens. + +requested_skew is an output value the callback can write to. It informs the +sink of whether or not it should move the playout pointer, and if so, by how +much. This pointer is only NULL if a discontinuity occurs; otherwise, it is +safe to write to *requested_skew. The default skew is 0. + +The sink may experience discontinuities. If one happens, discont is TRUE, +itime, etime are set to GST_CLOCK_TIME_NONE, and requested_skew is NULL. +This makes it possible to reset custom clock slaving algorithms when a +discontinuity happens.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">a #GstAudioBaseSink</doc> + <type name="AudioBaseSink" c:type="GstAudioBaseSink*"/> + </parameter> + <parameter name="etime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">external clock time</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="itime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">internal clock time</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="requested_skew" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">skew amount requested by the callback</doc> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/> + </parameter> + <parameter name="discont_reason" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">reason for discontinuity (if any)</doc> + <type name="AudioBaseSinkDiscontReason" c:type="GstAudioBaseSinkDiscontReason"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="5"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <enumeration name="AudioBaseSinkDiscontReason" version="1.6" glib:type-name="GstAudioBaseSinkDiscontReason" glib:get-type="gst_audio_base_sink_discont_reason_get_type" c:type="GstAudioBaseSinkDiscontReason"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Different possible reasons for discontinuities. This enum is useful for the custom +slave method.</doc> + <member name="no_discont" value="0" c:identifier="GST_AUDIO_BASE_SINK_DISCONT_REASON_NO_DISCONT" glib:nick="no-discont"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">No discontinuity occurred</doc> + </member> + <member name="new_caps" value="1" c:identifier="GST_AUDIO_BASE_SINK_DISCONT_REASON_NEW_CAPS" glib:nick="new-caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">New caps are set, causing renegotiotion</doc> + </member> + <member name="flush" value="2" c:identifier="GST_AUDIO_BASE_SINK_DISCONT_REASON_FLUSH" glib:nick="flush"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Samples have been flushed</doc> + </member> + <member name="sync_latency" value="3" c:identifier="GST_AUDIO_BASE_SINK_DISCONT_REASON_SYNC_LATENCY" glib:nick="sync-latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Sink was synchronized to the estimated latency (occurs during initialization)</doc> + </member> + <member name="alignment" value="4" c:identifier="GST_AUDIO_BASE_SINK_DISCONT_REASON_ALIGNMENT" glib:nick="alignment"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Aligning buffers failed because the timestamps are too discontinuous</doc> + </member> + <member name="device_failure" value="5" c:identifier="GST_AUDIO_BASE_SINK_DISCONT_REASON_DEVICE_FAILURE" glib:nick="device-failure"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Audio output device experienced and recovered from an error but introduced latency in the process (see also gst_audio_base_sink_report_device_failure())</doc> + </member> + </enumeration> + <record name="AudioBaseSinkPrivate" c:type="GstAudioBaseSinkPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + </record> + <enumeration name="AudioBaseSinkSlaveMethod" glib:type-name="GstAudioBaseSinkSlaveMethod" glib:get-type="gst_audio_base_sink_slave_method_get_type" c:type="GstAudioBaseSinkSlaveMethod"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Different possible clock slaving algorithms used when the internal audio +clock is not selected as the pipeline master clock.</doc> + <member name="resample" value="0" c:identifier="GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE" glib:nick="resample"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Resample to match the master clock</doc> + </member> + <member name="skew" value="1" c:identifier="GST_AUDIO_BASE_SINK_SLAVE_SKEW" glib:nick="skew"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Adjust playout pointer when master clock +drifts too much.</doc> + </member> + <member name="none" value="2" c:identifier="GST_AUDIO_BASE_SINK_SLAVE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">No adjustment is done.</doc> + </member> + <member name="custom" value="3" c:identifier="GST_AUDIO_BASE_SINK_SLAVE_CUSTOM" glib:nick="custom"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h">Use custom clock slaving algorithm (Since: 1.6)</doc> + </member> + </enumeration> + <class name="AudioBaseSrc" c:symbol-prefix="audio_base_src" c:type="GstAudioBaseSrc" parent="GstBase.PushSrc" glib:type-name="GstAudioBaseSrc" glib:get-type="gst_audio_base_src_get_type" glib:type-struct="AudioBaseSrcClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">This is the base class for audio sources. Subclasses need to implement the +::create_ringbuffer vmethod. This base class will then take care of +reading samples from the ringbuffer, synchronisation and flushing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <virtual-method name="create_ringbuffer" invoker="create_ringbuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">Create and return the #GstAudioRingBuffer for @src. This function will call +the ::create_ringbuffer vmethod and will set @src as the parent of the +returned buffer (see gst_object_set_parent()).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">The new ringbuffer of @src.</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">a #GstAudioBaseSrc.</doc> + <type name="AudioBaseSrc" c:type="GstAudioBaseSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="create_ringbuffer" c:identifier="gst_audio_base_src_create_ringbuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">Create and return the #GstAudioRingBuffer for @src. This function will call +the ::create_ringbuffer vmethod and will set @src as the parent of the +returned buffer (see gst_object_set_parent()).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">The new ringbuffer of @src.</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">a #GstAudioBaseSrc.</doc> + <type name="AudioBaseSrc" c:type="GstAudioBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_provide_clock" c:identifier="gst_audio_base_src_get_provide_clock"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">Queries whether @src will provide a clock or not. See also +gst_audio_base_src_set_provide_clock.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">%TRUE if @src will provide a clock.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">a #GstAudioBaseSrc</doc> + <type name="AudioBaseSrc" c:type="GstAudioBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_slave_method" c:identifier="gst_audio_base_src_get_slave_method"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">Get the current slave method used by @src.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">The current slave method used by @src.</doc> + <type name="AudioBaseSrcSlaveMethod" c:type="GstAudioBaseSrcSlaveMethod"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">a #GstAudioBaseSrc</doc> + <type name="AudioBaseSrc" c:type="GstAudioBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_provide_clock" c:identifier="gst_audio_base_src_set_provide_clock"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">Controls whether @src will provide a clock or not. If @provide is %TRUE, +gst_element_provide_clock() will return a clock that reflects the datarate +of @src. If @provide is %FALSE, gst_element_provide_clock() will return NULL.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">a #GstAudioBaseSrc</doc> + <type name="AudioBaseSrc" c:type="GstAudioBaseSrc*"/> + </instance-parameter> + <parameter name="provide" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_slave_method" c:identifier="gst_audio_base_src_set_slave_method"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">Controls how clock slaving will be performed in @src.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">a #GstAudioBaseSrc</doc> + <type name="AudioBaseSrc" c:type="GstAudioBaseSrc*"/> + </instance-parameter> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">the new slave method</doc> + <type name="AudioBaseSrcSlaveMethod" c:type="GstAudioBaseSrcSlaveMethod"/> + </parameter> + </parameters> + </method> + <property name="actual-buffer-time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">Actual configured size of audio buffer in microseconds.</doc> + <type name="gint64" c:type="gint64"/> + </property> + <property name="actual-latency-time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">Actual configured audio latency in microseconds.</doc> + <type name="gint64" c:type="gint64"/> + </property> + <property name="buffer-time" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="latency-time" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="provide-clock" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="slave-method" writable="1" transfer-ownership="none"> + <type name="AudioBaseSrcSlaveMethod"/> + </property> + <field name="element"> + <type name="GstBase.PushSrc" c:type="GstPushSrc"/> + </field> + <field name="ringbuffer"> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </field> + <field name="buffer_time"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="latency_time"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="next_sample"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="clock"> + <type name="Gst.Clock" c:type="GstClock*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioBaseSrcPrivate" c:type="GstAudioBaseSrcPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioBaseSrcClass" c:type="GstAudioBaseSrcClass" glib:is-gtype-struct-for="AudioBaseSrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">#GstAudioBaseSrc class. Override the vmethod to implement +functionality.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">the parent class.</doc> + <type name="GstBase.PushSrcClass" c:type="GstPushSrcClass"/> + </field> + <field name="create_ringbuffer"> + <callback name="create_ringbuffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">The new ringbuffer of @src.</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c">a #GstAudioBaseSrc.</doc> + <type name="AudioBaseSrc" c:type="GstAudioBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioBaseSrcPrivate" c:type="GstAudioBaseSrcPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + </record> + <enumeration name="AudioBaseSrcSlaveMethod" glib:type-name="GstAudioBaseSrcSlaveMethod" glib:get-type="gst_audio_base_src_slave_method_get_type" c:type="GstAudioBaseSrcSlaveMethod"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">Different possible clock slaving algorithms when the internal audio clock was +not selected as the pipeline clock.</doc> + <member name="resample" value="0" c:identifier="GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE" glib:nick="resample"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">Resample to match the master clock.</doc> + </member> + <member name="re_timestamp" value="1" c:identifier="GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP" glib:nick="re-timestamp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">Retimestamp output buffers with master +clock time.</doc> + </member> + <member name="skew" value="2" c:identifier="GST_AUDIO_BASE_SRC_SLAVE_SKEW" glib:nick="skew"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">Adjust capture pointer when master clock +drifts too much.</doc> + </member> + <member name="none" value="3" c:identifier="GST_AUDIO_BASE_SRC_SLAVE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h">No adjustment is done.</doc> + </member> + </enumeration> + <record name="AudioBuffer" c:type="GstAudioBuffer" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <field name="info" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h">the number of planes available</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="planes" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h">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" 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" fixed-size="8"> + <type name="Gst.MapInfo" c:type="GstMapInfo"/> + </array> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="unmap" c:identifier="gst_audio_buffer_unmap" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">Unmaps an audio buffer that was previously mapped with +gst_audio_buffer_map().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">Clip the buffer to the given %GstSegment. + +After calling this function the caller does not own a reference to +@buffer anymore.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">The buffer to clip.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">sample rate.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="bpf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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="map" c:identifier="gst_audio_buffer_map" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">%TRUE if the map operation succeeded or %FALSE on failure</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">pointer to a #GstAudioBuffer</doc> + <type name="AudioBuffer" c:type="GstAudioBuffer*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">the #GstBuffer to be mapped</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">the access mode for the memory</doc> + <type name="Gst.MapFlags" c:type="GstMapFlags"/> + </parameter> + </parameters> + </function> + <function name="reorder_channels" c:identifier="gst_audio_buffer_reorder_channels"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The buffer to reorder.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The %GstAudioFormat of the buffer.</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The number of channels.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="from" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The channel positions in the buffer.</doc> + <array length="2" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="to" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The channel positions to convert to.</doc> + <array length="2" zero-terminated="0" c:type="const 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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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. + +This function does not know the audio rate, therefore the caller is +responsible for re-setting the correct timestamp and duration to the +buffer. However, timestamp will be preserved if trim == 0, and duration +will also be preserved if there is no trimming to be done. Offset and +offset end will be preserved / updated. + +After calling this function the caller does not own a reference to +@buffer anymore.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">the truncated buffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">The buffer to truncate.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="bpf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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" parent="GstBase.PushSrc" glib:type-name="GstAudioCdSrc" glib:get-type="gst_audio_cd_src_get_type" glib:type-struct="AudioCdSrcClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.c">Provides a base class for CD digital audio (CDDA) sources, which handles +things like seeking, querying, discid calculation, tags, and buffer +timestamping. + +## Using GstAudioCdSrc-based elements in applications + +GstAudioCdSrc registers two #GstFormat<!-- -->s of its own, namely +the "track" format and the "sector" format. Applications will usually +only find the "track" format interesting. You can retrieve that #GstFormat +for use in seek events or queries with gst_format_get_by_nick("track"). + +In order to query the number of tracks, for example, an application would +set the CDDA source element to READY or PAUSED state and then query the +the number of tracks via gst_element_query_duration() using the track +format acquired above. Applications can query the currently playing track +in the same way. + +Alternatively, applications may retrieve the currently playing track and +the total number of tracks from the taglist that will posted on the bus +whenever the CD is opened or the currently playing track changes. The +taglist will contain GST_TAG_TRACK_NUMBER and GST_TAG_TRACK_COUNT tags. + +Applications playing back CD audio using playbin and cdda://n URIs should +issue a seek command in track format to change between tracks, rather than +setting a new cdda://n+1 URI on playbin (as setting a new URI on playbin +involves closing and re-opening the CD device, which is much much slower). + +## Tags and meta-information + +CDDA sources will automatically emit a number of tags, details about which +can be found in the libgsttag documentation. Those tags are: +#GST_TAG_CDDA_CDDB_DISCID, #GST_TAG_CDDA_CDDB_DISCID_FULL, +#GST_TAG_CDDA_MUSICBRAINZ_DISCID, #GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL, +among others. + +## Tracks and Table of Contents (TOC) + +Applications will be informed of the available tracks via a TOC message +on the pipeline's #GstBus. The #GstToc will contain a #GstTocEntry for +each track, with information about each track. The duration for each +track can be retrieved via the #GST_TAG_DURATION tag from each entry's +tag list, or calculated via gst_toc_entry_get_start_stop_times(). +The track entries in the TOC will be sorted by track number.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <implements name="Gst.URIHandler"/> + <virtual-method name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioCdSrc" c:type="GstAudioCdSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioCdSrc" c:type="GstAudioCdSrc*"/> + </instance-parameter> + <parameter name="device" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="read_sector"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioCdSrc" c:type="GstAudioCdSrc*"/> + </instance-parameter> + <parameter name="sector" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_track" c:identifier="gst_audio_cd_src_add_track"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.c">CDDA sources use this function from their start vfunc to announce the +available data and audio tracks to the base source class. The caller +should allocate @track on the stack, the base source will do a shallow +copy of the structure (and take ownership of the taglist if there is one).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.c">FALSE on error, otherwise TRUE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.c">a #GstAudioCdSrc</doc> + <type name="AudioCdSrc" c:type="GstAudioCdSrc*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.c">address of #GstAudioCdSrcTrack to add</doc> + <type name="AudioCdSrcTrack" c:type="GstAudioCdSrcTrack*"/> + </parameter> + </parameters> + </method> + <property name="device" writable="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="mode" writable="1" transfer-ownership="none"> + <type name="AudioCdSrcMode"/> + </property> + <property name="track" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <field name="pushsrc"> + <type name="GstBase.PushSrc" c:type="GstPushSrc"/> + </field> + <field name="tags"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioCdSrcPrivate" c:type="GstAudioCdSrcPrivate*"/> + </field> + <field name="_gst_reserved1" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="guint" c:type="guint"/> + </array> + </field> + <field name="_gst_reserved2" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioCdSrcClass" c:type="GstAudioCdSrcClass" glib:is-gtype-struct-for="AudioCdSrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">Audio CD source base class.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <field name="pushsrc_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">the parent class</doc> + <type name="GstBase.PushSrcClass" c:type="GstPushSrcClass"/> + </field> + <field name="open"> + <callback name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioCdSrc" c:type="GstAudioCdSrc*"/> + </parameter> + <parameter name="device" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close"> + <callback name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioCdSrc" c:type="GstAudioCdSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="read_sector"> + <callback name="read_sector"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioCdSrc" c:type="GstAudioCdSrc*"/> + </parameter> + <parameter name="sector" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="AudioCdSrcMode" glib:type-name="GstAudioCdSrcMode" glib:get-type="gst_audio_cd_src_mode_get_type" c:type="GstAudioCdSrcMode"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">Mode in which the CD audio source operates. Influences timestamping, +EOS handling and seeking.</doc> + <member name="normal" value="0" c:identifier="GST_AUDIO_CD_SRC_MODE_NORMAL" glib:nick="normal"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">each single track is a stream</doc> + </member> + <member name="continuous" value="1" c:identifier="GST_AUDIO_CD_SRC_MODE_CONTINUOUS" glib:nick="continuous"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">the entire disc is a single stream</doc> + </member> + </enumeration> + <record name="AudioCdSrcPrivate" c:type="GstAudioCdSrcPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + </record> + <record name="AudioCdSrcTrack" c:type="GstAudioCdSrcTrack"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">CD track abstraction to communicate TOC entries to the base class. + +This structure is only for use by sub-classed in connection with +gst_audio_cd_src_add_track(). + +Applications will be informed of the available tracks via a TOC message +on the pipeline's #GstBus instead.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <field name="is_audio" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">Whether this is an audio track</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="num" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">Track number in TOC (usually starts from 1, but not always)</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="start" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">The first sector of this track (LBA)</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="end" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">The last sector of this track (LBA)</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="tags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h">Track-specific tags (e.g. from cd-text information), or NULL</doc> + <type name="Gst.TagList" c:type="GstTagList*"/> + </field> + <field name="_gst_reserved1" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="guint" c:type="guint"/> + </array> + </field> + <field name="_gst_reserved2" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioChannelMixer" c:type="GstAudioChannelMixer" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h"/> + <method name="free" c:identifier="gst_audio_channel_mixer_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">Free memory allocated by @mix.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mix" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">a #GstAudioChannelMixer</doc> + <type name="AudioChannelMixer" c:type="GstAudioChannelMixer*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_passthrough" c:identifier="gst_audio_channel_mixer_is_passthrough"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">Check if @mix is in passthrough. + +Only N x N mix identity matrices are considered passthrough, +this is determined by comparing the contents of the matrix +with 0.0 and 1.0. + +As this is floating point comparisons, if the values have been +generated, they should be rounded up or down by explicit +assignment of 0.0 or 1.0 to values within a user-defined +epsilon, this code doesn't make assumptions as to what may +constitute an appropriate epsilon.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">%TRUE is @mix is passthrough.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="mix" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">a #GstAudioChannelMixer</doc> + <type name="AudioChannelMixer" c:type="GstAudioChannelMixer*"/> + </instance-parameter> + </parameters> + </method> + <method name="samples" c:identifier="gst_audio_channel_mixer_samples"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">In case the samples are interleaved, @in and @out must point to an +array with a single element pointing to a block of interleaved samples. + +If non-interleaved samples are used, @in and @out must point to an +array with pointers to memory blocks, one for each channel. + +Perform channel mixing on @in_data and write the result to @out_data. +@in_data and @out_data need to be in @format and @layout.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mix" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">a #GstAudioChannelMixer</doc> + <type name="AudioChannelMixer" c:type="GstAudioChannelMixer*"/> + </instance-parameter> + <parameter name="in" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">input samples</doc> + <type name="gpointer" c:type="const gpointer*"/> + </parameter> + <parameter name="out" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">output samples</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + <parameter name="samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">number of samples</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_audio_channel_mixer_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">Create a new channel mixer object for the given parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">a new #GstAudioChannelMixer object. + Free with gst_audio_channel_mixer_free() after usage.</doc> + <type name="AudioChannelMixer" c:type="GstAudioChannelMixer*"/> + </return-value> + <parameters> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">#GstAudioChannelMixerFlags</doc> + <type name="AudioChannelMixerFlags" c:type="GstAudioChannelMixerFlags"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="in_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">number of input channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="in_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">positions of input channels</doc> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </parameter> + <parameter name="out_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">number of output channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">positions of output channels</doc> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </parameter> + </parameters> + </function> + <function name="new_with_matrix" c:identifier="gst_audio_channel_mixer_new_with_matrix" version="1.14" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">Create a new channel mixer object for the given parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">a new #GstAudioChannelMixer object. + Free with gst_audio_channel_mixer_free() after usage.</doc> + <type name="AudioChannelMixer" c:type="GstAudioChannelMixer*"/> + </return-value> + <parameters> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">#GstAudioChannelMixerFlags</doc> + <type name="AudioChannelMixerFlags" c:type="GstAudioChannelMixerFlags"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="in_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">number of input channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">number of output channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="matrix" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">channel conversion matrix, m[@in_channels][@out_channels]. + If identity matrix, passthrough applies. If %NULL, a (potentially truncated) + identity matrix is generated.</doc> + <type name="gfloat" c:type="gfloat**"/> + </parameter> + </parameters> + </function> + </record> + <bitfield name="AudioChannelMixerFlags" glib:type-name="GstAudioChannelMixerFlags" glib:get-type="gst_audio_channel_mixer_flags_get_type" c:type="GstAudioChannelMixerFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h">Flags passed to gst_audio_channel_mixer_new()</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_CHANNEL_MIXER_FLAGS_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h">no flag</doc> + </member> + <member name="non_interleaved_in" value="1" c:identifier="GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN" glib:nick="non-interleaved-in"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h">input channels are not interleaved</doc> + </member> + <member name="non_interleaved_out" value="2" c:identifier="GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT" glib:nick="non-interleaved-out"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h">output channels are not interleaved</doc> + </member> + <member name="unpositioned_in" value="4" c:identifier="GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN" glib:nick="unpositioned-in"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h">input channels are explicitly unpositioned</doc> + </member> + <member name="unpositioned_out" value="8" c:identifier="GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT" glib:nick="unpositioned-out"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h">output channels are explicitly unpositioned</doc> + </member> + </bitfield> + <enumeration name="AudioChannelPosition" glib:type-name="GstAudioChannelPosition" glib:get-type="gst_audio_channel_position_get_type" c:type="GstAudioChannelPosition"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Audio channel positions. + +These are the channels defined in SMPTE 2036-2-2008 +Table 1 for 22.2 audio systems with the Surround and Wide channels from +DTS Coherent Acoustics (v.1.3.1) and 10.2 and 7.1 layouts. In the caps the +actual channel layout is expressed with a channel count and a channel mask, +which describes the existing channels. The positions in the bit mask correspond +to the enum values. +For negotiation it is allowed to have more bits set in the channel mask than +the number of channels to specify the allowed channel positions but this is +not allowed in negotiated caps. It is not allowed in any situation other +than the one mentioned below to have less bits set in the channel mask than +the number of channels. + +@GST_AUDIO_CHANNEL_POSITION_MONO can only be used with a single mono channel that +has no direction information and would be mixed into all directional channels. +This is expressed in caps by having a single channel and no channel mask. + +@GST_AUDIO_CHANNEL_POSITION_NONE can only be used if all channels have this position. +This is expressed in caps by having a channel mask with no bits set. + +As another special case it is allowed to have two channels without a channel mask. +This implicitly means that this is a stereo stream with a front left and front right +channel.</doc> + <member name="none" value="-3" c:identifier="GST_AUDIO_CHANNEL_POSITION_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">used for position-less channels, e.g. + from a sound card that records 1024 channels; mutually exclusive with + any other channel position</doc> + </member> + <member name="mono" value="-2" c:identifier="GST_AUDIO_CHANNEL_POSITION_MONO" glib:nick="mono"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Mono without direction; + can only be used with 1 channel</doc> + </member> + <member name="invalid" value="-1" c:identifier="GST_AUDIO_CHANNEL_POSITION_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">invalid position</doc> + </member> + <member name="front_left" value="0" c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT" glib:nick="front-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Front left</doc> + </member> + <member name="front_right" value="1" c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT" glib:nick="front-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Front right</doc> + </member> + <member name="front_center" value="2" c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER" glib:nick="front-center"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Front center</doc> + </member> + <member name="lfe1" value="3" c:identifier="GST_AUDIO_CHANNEL_POSITION_LFE1" glib:nick="lfe1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Low-frequency effects 1 (subwoofer)</doc> + </member> + <member name="rear_left" value="4" c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT" glib:nick="rear-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Rear left</doc> + </member> + <member name="rear_right" value="5" c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT" glib:nick="rear-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Rear right</doc> + </member> + <member name="front_left_of_center" value="6" c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER" glib:nick="front-left-of-center"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Front left of center</doc> + </member> + <member name="front_right_of_center" value="7" c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER" glib:nick="front-right-of-center"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Front right of center</doc> + </member> + <member name="rear_center" value="8" c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER" glib:nick="rear-center"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Rear center</doc> + </member> + <member name="lfe2" value="9" c:identifier="GST_AUDIO_CHANNEL_POSITION_LFE2" glib:nick="lfe2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Low-frequency effects 2 (subwoofer)</doc> + </member> + <member name="side_left" value="10" c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT" glib:nick="side-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Side left</doc> + </member> + <member name="side_right" value="11" c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT" glib:nick="side-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Side right</doc> + </member> + <member name="top_front_left" value="12" c:identifier="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT" glib:nick="top-front-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Top front left</doc> + </member> + <member name="top_front_right" value="13" c:identifier="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT" glib:nick="top-front-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Top front right</doc> + </member> + <member name="top_front_center" value="14" c:identifier="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER" glib:nick="top-front-center"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Top front center</doc> + </member> + <member name="top_center" value="15" c:identifier="GST_AUDIO_CHANNEL_POSITION_TOP_CENTER" glib:nick="top-center"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Top center</doc> + </member> + <member name="top_rear_left" value="16" c:identifier="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT" glib:nick="top-rear-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Top rear left</doc> + </member> + <member name="top_rear_right" value="17" c:identifier="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT" glib:nick="top-rear-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Top rear right</doc> + </member> + <member name="top_side_left" value="18" c:identifier="GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT" glib:nick="top-side-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Top side right</doc> + </member> + <member name="top_side_right" value="19" c:identifier="GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT" glib:nick="top-side-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Top rear right</doc> + </member> + <member name="top_rear_center" value="20" c:identifier="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER" glib:nick="top-rear-center"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Top rear center</doc> + </member> + <member name="bottom_front_center" value="21" c:identifier="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER" glib:nick="bottom-front-center"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Bottom front center</doc> + </member> + <member name="bottom_front_left" value="22" c:identifier="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT" glib:nick="bottom-front-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Bottom front left</doc> + </member> + <member name="bottom_front_right" value="23" c:identifier="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT" glib:nick="bottom-front-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Bottom front right</doc> + </member> + <member name="wide_left" value="24" c:identifier="GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT" glib:nick="wide-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Wide left (between front left and side left)</doc> + </member> + <member name="wide_right" value="25" c:identifier="GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT" glib:nick="wide-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Wide right (between front right and side right)</doc> + </member> + <member name="surround_left" value="26" c:identifier="GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT" glib:nick="surround-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Surround left (between rear left and side left)</doc> + </member> + <member name="surround_right" value="27" c:identifier="GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT" glib:nick="surround-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h">Surround right (between rear right and side right)</doc> + </member> + </enumeration> + <record name="AudioClippingMeta" c:type="GstAudioClippingMeta" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">Extra buffer metadata describing how much audio has to be clipped from +the start or end of a buffer. This is used for compressed formats, where +the first frame usually has some additional samples due to encoder and +decoder delays, and the last frame usually has some additional samples to +be able to fill the complete last frame. + +This is used to ensure that decoded data in the end has the same amount of +samples, and multiply decoded streams can be gaplessly concatenated. + +Note: If clipping of the start is done by adjusting the segment, this meta +has to be dropped from buffers as otherwise clipping could happen twice.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <field name="meta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">parent #GstMeta</doc> + <type name="Gst.Meta" c:type="GstMeta"/> + </field> + <field name="format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">GstFormat of @start and @stop, GST_FORMAT_DEFAULT is samples</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </field> + <field name="start" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">Amount of audio to clip from start of buffer</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="end" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">Amount of to clip from end of buffer</doc> + <type name="guint64" c:type="guint64"/> + </field> + <function name="get_info" c:identifier="gst_audio_clipping_meta_get_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <class name="AudioClock" c:symbol-prefix="audio_clock" c:type="GstAudioClock" parent="Gst.SystemClock" glib:type-name="GstAudioClock" glib:get-type="gst_audio_clock_get_type" glib:type-struct="AudioClockClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">#GstAudioClock makes it easy for elements to implement a #GstClock, they +simply need to provide a function that returns the current clock time. + +This object is internally used to implement the clock in #GstAudioBaseSink.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <constructor name="new" c:identifier="gst_audio_clock_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">Create a new #GstAudioClock instance. Whenever the clock time should be +calculated it will call @func with @user_data. When @func returns +#GST_CLOCK_TIME_NONE, the clock will return the last reported time.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">a new #GstAudioClock casted to a #GstClock.</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">the name of the clock</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">a function</doc> + <type name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">#GDestroyNotify for @user_data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + <method name="adjust" c:identifier="gst_audio_clock_adjust"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">Adjust @time with the internal offset of the audio clock.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">@time adjusted with the internal offset.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">a #GstAudioClock</doc> + <type name="AudioClock" c:type="GstAudioClock*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">a #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_time" c:identifier="gst_audio_clock_get_time"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">Report the time as returned by the #GstAudioClockGetTimeFunc without applying +any offsets.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">the time as reported by the time function of the audio clock</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">a #GstAudioClock</doc> + <type name="AudioClock" c:type="GstAudioClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="invalidate" c:identifier="gst_audio_clock_invalidate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">Invalidate the clock function. Call this function when the provided +#GstAudioClockGetTimeFunc cannot be called anymore, for example, when the +user_data becomes invalid. + +After calling this function, @clock will return the last returned time for +the rest of its lifetime.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">a #GstAudioClock</doc> + <type name="AudioClock" c:type="GstAudioClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="reset" c:identifier="gst_audio_clock_reset"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">Inform @clock that future calls to #GstAudioClockGetTimeFunc will return values +starting from @time. The clock will update an internal offset to make sure that +future calls to internal_time will return an increasing result as required by +the #GstClock object.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">a #GstAudioClock</doc> + <type name="AudioClock" c:type="GstAudioClock*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c">a #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <field name="clock"> + <type name="Gst.SystemClock" c:type="GstSystemClock"/> + </field> + <field name="func"> + <type name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc"/> + </field> + <field name="user_data"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="destroy_notify"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="last_time" readable="0" private="1"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="time_offset" readable="0" private="1"> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioClockClass" c:type="GstAudioClockClass" glib:is-gtype-struct-for="AudioClock"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <field name="parent_class"> + <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h">This function will be called whenever the current clock time needs to be +calculated. If this function returns #GST_CLOCK_TIME_NONE, the last reported +time will be returned by the clock.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h">the current time or #GST_CLOCK_TIME_NONE if the previous time should +be used.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h">the #GstAudioClock</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="AudioConverter" c:type="GstAudioConverter" version="1.8" glib:type-name="GstAudioConverter" glib:get-type="gst_audio_converter_get_type" c:symbol-prefix="audio_converter"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <constructor name="new" c:identifier="gst_audio_converter_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Create a new #GstAudioConverter that is able to convert between @in and @out +audio formats. + +@config contains extra configuration options, see `GST_AUDIO_CONVERTER_OPT_*` +parameters for details about the options and values.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter or %NULL if conversion is not possible.</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </return-value> + <parameters> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">extra #GstAudioConverterFlags</doc> + <type name="AudioConverterFlags" c:type="GstAudioConverterFlags"/> + </parameter> + <parameter name="in_info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a source #GstAudioInfo</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + <parameter name="out_info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a destination #GstAudioInfo</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + <parameter name="config" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstStructure with configuration options</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </constructor> + <method name="convert" c:identifier="gst_audio_converter_convert" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Convenience wrapper around gst_audio_converter_samples(), which will +perform allocation of the output buffer based on the result from +gst_audio_converter_get_out_frames().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">%TRUE is the conversion could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">extra #GstAudioConverterFlags</doc> + <type name="AudioConverterFlags" c:type="GstAudioConverterFlags"/> + </parameter> + <parameter name="in" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">input data</doc> + <array length="2" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="in_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">size of @in</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="out" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a pointer where + the output data will be written</doc> + <array length="4" zero-terminated="0" c:type="gpointer*"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="out_size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a pointer where the size of @out will be written</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_audio_converter_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Free a previously allocated @convert instance.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_config" c:identifier="gst_audio_converter_get_config"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Get the current configuration of @convert.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c"> + a #GstStructure that remains valid for as long as @convert is valid + or until gst_audio_converter_update_config() is called.</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + <parameter name="in_rate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">result input rate</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="out_rate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">result output rate</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_in_frames" c:identifier="gst_audio_converter_get_in_frames"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Calculate how many input frames are currently needed by @convert to produce +@out_frames of output frames.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">the number of input frames</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + <parameter name="out_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">number of output frames</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="get_max_latency" c:identifier="gst_audio_converter_get_max_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Get the maximum number of input frames that the converter would +need before producing output.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">the latency of @convert as expressed in the number of +frames.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_out_frames" c:identifier="gst_audio_converter_get_out_frames"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Calculate how many output frames can be produced when @in_frames input +frames are given to @convert.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">the number of output frames</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + <parameter name="in_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">number of input frames</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="is_passthrough" c:identifier="gst_audio_converter_is_passthrough" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Returns whether the audio converter will operate in passthrough mode. +The return value would be typically input to gst_base_transform_set_passthrough()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Reset @convert to the state it was when it was first created, clearing +any history it might currently have.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + </parameters> + </method> + <method name="samples" c:identifier="gst_audio_converter_samples"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Perform the conversion with @in_frames in @in to @out_frames in @out +using @convert. + +In case the samples are interleaved, @in and @out must point to an +array with a single element pointing to a block of interleaved samples. + +If non-interleaved samples are used, @in and @out must point to an +array with pointers to memory blocks, one for each channel. + +@in may be %NULL, in which case @in_frames of silence samples are processed +by the converter. + +This function always produces @out_frames of output and consumes @in_frames of +input. Use gst_audio_converter_get_out_frames() and +gst_audio_converter_get_in_frames() to make sure @in_frames and @out_frames +are matching and @in and @out point to enough memory.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">%TRUE is the conversion could be performed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">extra #GstAudioConverterFlags</doc> + <type name="AudioConverterFlags" c:type="GstAudioConverterFlags"/> + </parameter> + <parameter name="in" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">input frames</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + <parameter name="in_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">number of input frames</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="out" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">output frames</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + <parameter name="out_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">number of output frames</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="supports_inplace" c:identifier="gst_audio_converter_supports_inplace" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Returns whether the audio converter can perform the conversion in-place. +The return value would be typically input to gst_base_transform_set_in_place()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">%TRUE when the conversion can be done in place.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + </parameters> + </method> + <method name="update_config" c:identifier="gst_audio_converter_update_config"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">Set @in_rate, @out_rate and @config as extra configuration for @convert. + +@in_rate and @out_rate specify the new sample rates of input and output +formats. A value of 0 leaves the sample rate unchanged. + +@config can be %NULL, in which case, the current configuration is not +changed. + +If the parameters in @config can not be set exactly, this function returns +%FALSE and will try to update as much state as possible. The new state can +then be retrieved and refined with gst_audio_converter_get_config(). + +Look at the `GST_AUDIO_CONVERTER_OPT_*` fields to check valid configuration +option and values.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">%TRUE when the new parameters could be set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstAudioConverter</doc> + <type name="AudioConverter" c:type="GstAudioConverter*"/> + </instance-parameter> + <parameter name="in_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">input rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">output rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="config" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.c">a #GstStructure or %NULL</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + </record> + <bitfield name="AudioConverterFlags" glib:type-name="GstAudioConverterFlags" glib:get-type="gst_audio_converter_flags_get_type" c:type="GstAudioConverterFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">Extra flags passed to gst_audio_converter_new() and gst_audio_converter_samples().</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_CONVERTER_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">no flag</doc> + </member> + <member name="in_writable" value="1" c:identifier="GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE" glib:nick="in-writable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">the input sample arrays are writable and can be + used as temporary storage during conversion.</doc> + </member> + <member name="variable_rate" value="2" c:identifier="GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE" glib:nick="variable-rate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-converter.h">allow arbitrary rate updates with + gst_audio_converter_update_config().</doc> + </member> + </bitfield> + <class name="AudioDecoder" c:symbol-prefix="audio_decoder" c:type="GstAudioDecoder" parent="Gst.Element" abstract="1" glib:type-name="GstAudioDecoder" glib:get-type="gst_audio_decoder_get_type" glib:type-struct="AudioDecoderClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">This base class is for audio decoders turning encoded data into +raw audio samples. + +GstAudioDecoder and subclass should cooperate as follows. + +## Configuration + + * Initially, GstAudioDecoder calls @start when the decoder element + is activated, which allows subclass to perform any global setup. + Base class (context) parameters can already be set according to subclass + capabilities (or possibly upon receive more information in subsequent + @set_format). + * GstAudioDecoder calls @set_format to inform subclass of the format + of input audio data that it is about to receive. + While unlikely, it might be called more than once, if changing input + parameters require reconfiguration. + * GstAudioDecoder calls @stop at end of all processing. + +As of configuration stage, and throughout processing, GstAudioDecoder +provides various (context) parameters, e.g. describing the format of +output audio data (valid when output caps have been set) or current parsing state. +Conversely, subclass can and should configure context to inform +base class of its expectation w.r.t. buffer handling. + +## Data processing + * Base class gathers input data, and optionally allows subclass + to parse this into subsequently manageable (as defined by subclass) + chunks. Such chunks are subsequently referred to as 'frames', + though they may or may not correspond to 1 (or more) audio format frame. + * Input frame is provided to subclass' @handle_frame. + * If codec processing results in decoded data, subclass should call + @gst_audio_decoder_finish_frame to have decoded data pushed + downstream. + * Just prior to actually pushing a buffer downstream, + it is passed to @pre_push. Subclass should either use this callback + to arrange for additional downstream pushing or otherwise ensure such + custom pushing occurs after at least a method call has finished since + setting src pad caps. + * During the parsing process GstAudioDecoderClass will handle both + srcpad and sinkpad events. Sink events will be passed to subclass + if @event callback has been provided. + +## Shutdown phase + + * GstAudioDecoder class calls @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. This +is typically when base class calls subclass' @set_format function, though +it might be delayed until calling @gst_audio_decoder_finish_frame. + +In summary, above process should have subclass concentrating on +codec data processing while leaving other matters to base class, +such as most notably timestamp handling. While it may exert more control +in this area (see e.g. @pre_push), it is very much not recommended. + +In particular, base class will try to arrange for perfect output timestamps +as much as possible while tracking upstream timestamps. +To this end, if deviation between the next ideal expected perfect timestamp +and upstream exceeds #GstAudioDecoder:tolerance, then resync to upstream +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. 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 +should rather be left to upstream demuxer, parser or alike. This simple +approach caters for seeking and duration reporting using estimated input +bitrates. + +Things that subclass need to take care of: + + * Provide pad templates + * Set source pad caps when appropriate + * Set user-configurable properties to sane defaults for format and + implementing codec at hand, and convey some subclass capabilities and + expectations in context. + + * Accept data in @handle_frame and provide encoded results to + @gst_audio_decoder_finish_frame. If it is prepared to perform + PLC, it should also accept NULL data in @handle_frame and provide for + data for indicated duration.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <virtual-method name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="decide_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="flush"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="hard" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="getcaps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_frame"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="negotiate" invoker="negotiate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Negotiate with downstream elements to currently configured #GstAudioInfo. +Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if +negotiate fails.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="parse"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="adapter" transfer-ownership="none"> + <type name="GstBase.Adapter" c:type="GstAdapter*"/> + </parameter> + <parameter name="offset" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_push"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="propose_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_format"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="transform_meta"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="meta" transfer-ownership="none"> + <type name="Gst.Meta" c:type="GstMeta*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <method name="allocate_output_buffer" c:identifier="gst_audio_decoder_allocate_output_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Helper function that allocates a buffer to hold an audio frame +for @dec's current output format.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">allocated buffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">size of the buffer</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="finish_frame" c:identifier="gst_audio_decoder_finish_frame"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Collects decoded data and pushes it downstream. + +@buf may be NULL in which case the indicated number of frames +are discarded and considered to have produced no output +(e.g. lead-in or setup frames). +Otherwise, source pad caps must be set when it is called with valid +data in @buf. + +Note that a frame received in #GstAudioDecoderClass.handle_frame() may be +invalidated by a call to this function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstFlowReturn that should be escalated to caller (of caller)</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="buf" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">decoded data</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">number of decoded frames represented by decoded data</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="finish_subframe" c:identifier="gst_audio_decoder_finish_subframe" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Collects decoded data and pushes it downstream. This function may be called +multiple times for a given input frame. + +@buf may be NULL in which case it is assumed that the current input frame is +finished. This is equivalent to calling gst_audio_decoder_finish_subframe() +with a NULL buffer and frames=1 after having pushed out all decoded audio +subframes using this function. + +When called with valid data in @buf the source pad caps must have been set +already. + +Note that a frame received in #GstAudioDecoderClass.handle_frame() may be +invalidated by a call to this function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstFlowReturn that should be escalated to caller (of caller)</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="buf" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">decoded data</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="get_allocator" c:identifier="gst_audio_decoder_get_allocator"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Lets #GstAudioDecoder sub-classes to know the memory @allocator +used by the base class and its @params. + +Unref the @allocator after use it.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="allocator" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">the #GstAllocator +used</doc> + <type name="Gst.Allocator" c:type="GstAllocator**"/> + </parameter> + <parameter name="params" direction="out" caller-allocates="1" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">the +#GstAllocationParams of @allocator</doc> + <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="get_audio_info" c:identifier="gst_audio_decoder_get_audio_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioInfo describing the input audio format</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_delay" c:identifier="gst_audio_decoder_get_delay"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">currently configured decoder delay</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_drainable" c:identifier="gst_audio_decoder_get_drainable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Queries decoder drain handling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">TRUE if drainable handling is enabled. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_estimate_rate" c:identifier="gst_audio_decoder_get_estimate_rate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">currently configured byte to time conversion setting</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_latency" c:identifier="gst_audio_decoder_get_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Sets the variables pointed to by @min and @max to the currently configured +latency.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="min" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a pointer to storage to hold minimum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="max" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a pointer to storage to hold maximum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="get_max_errors" c:identifier="gst_audio_decoder_get_max_errors"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">currently configured decoder tolerated error count.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_min_latency" c:identifier="gst_audio_decoder_get_min_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Queries decoder's latency aggregation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">aggregation latency. + +MT safe.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_needs_format" c:identifier="gst_audio_decoder_get_needs_format"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Queries decoder required format handling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">TRUE if required format handling is enabled. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_parse_state" c:identifier="gst_audio_decoder_get_parse_state"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Return current parsing (sync and eos) state.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="sync" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a pointer to a variable to hold the current sync state</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="eos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a pointer to a variable to hold the current eos state</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="get_plc" c:identifier="gst_audio_decoder_get_plc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Queries decoder packet loss concealment handling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">TRUE if packet loss concealment is enabled. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_plc_aware" c:identifier="gst_audio_decoder_get_plc_aware"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">currently configured plc handling</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tolerance" c:identifier="gst_audio_decoder_get_tolerance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Queries current audio jitter tolerance threshold.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">decoder audio jitter tolerance threshold. + +MT safe.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="merge_tags" c:identifier="gst_audio_decoder_merge_tags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Sets the audio decoder tags and how they should be merged with any +upstream stream tags. This will override any tags previously-set +with gst_audio_decoder_merge_tags(). + +Note that this is provided for convenience, and the subclass is +not required to use this and can still do tag handling on its own.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="tags" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstTagList to merge, or NULL</doc> + <type name="Gst.TagList" c:type="const GstTagList*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">the #GstTagMergeMode to use, usually #GST_TAG_MERGE_REPLACE</doc> + <type name="Gst.TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + </parameters> + </method> + <method name="negotiate" c:identifier="gst_audio_decoder_negotiate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Negotiate with downstream elements to currently configured #GstAudioInfo. +Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if +negotiate fails.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="proxy_getcaps" c:identifier="gst_audio_decoder_proxy_getcaps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Returns caps that express @caps (or sink template caps if @caps == NULL) +restricted to rate/channels/... combinations supported by downstream +elements.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstCaps owned by caller</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">initial caps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">filter caps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_allocation_caps" c:identifier="gst_audio_decoder_set_allocation_caps" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Sets a caps in allocation query which are different from the set +pad's caps. Use this function before calling +gst_audio_decoder_negotiate(). Setting to %NULL the allocation +query will use the caps from the pad.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="allocation_caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstCaps or %NULL</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_drainable" c:identifier="gst_audio_decoder_set_drainable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Configures decoder drain handling. If drainable, subclass might +be handed a NULL buffer to have it return any leftover decoded data. +Otherwise, it is not considered so capable and will only ever be passed +real data. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_estimate_rate" c:identifier="gst_audio_decoder_set_estimate_rate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Allows baseclass to perform byte to time estimated conversion.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">whether to enable byte to time conversion</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_latency" c:identifier="gst_audio_decoder_set_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Sets decoder latency. If the provided values changed from +previously provided ones, this will also post a LATENCY message on the bus +so the pipeline can reconfigure its global latency.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="min" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">minimum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="max" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">maximum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_max_errors" c:identifier="gst_audio_decoder_set_max_errors"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Sets numbers of tolerated decoder errors, where a tolerated one is then only +warned about, but more than tolerated will lead to fatal error. You can set +-1 for never returning fatal errors. Default is set to +GST_AUDIO_DECODER_MAX_ERRORS.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">max tolerated errors</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_min_latency" c:identifier="gst_audio_decoder_set_min_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Sets decoder minimum aggregation latency. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">new minimum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_needs_format" c:identifier="gst_audio_decoder_set_needs_format"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Configures decoder format needs. If enabled, subclass needs to be +negotiated with format caps before it can process any data. It will then +never be handed any data before it has been configured. +Otherwise, it might be handed data without having been configured and +is then expected being able to do so either by default +or based on the input data. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_output_caps" c:identifier="gst_audio_decoder_set_output_caps" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">(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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Configure output info on the srcpad of @dec.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">#GstAudioInfo</doc> + <type name="AudioInfo" c:type="const GstAudioInfo*"/> + </parameter> + </parameters> + </method> + <method name="set_plc" c:identifier="gst_audio_decoder_set_plc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Enable or disable decoder packet loss concealment, provided subclass +and codec are capable and allow handling plc. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_plc_aware" c:identifier="gst_audio_decoder_set_plc_aware"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Indicates whether or not subclass handles packet loss concealment (plc).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="plc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">new plc state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_tolerance" c:identifier="gst_audio_decoder_set_tolerance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Configures decoder audio jitter tolerance threshold. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="tolerance" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">new tolerance</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_use_default_pad_acceptcaps" c:identifier="gst_audio_decoder_set_use_default_pad_acceptcaps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Lets #GstAudioDecoder sub-classes decide if they want the sink pad +to use the default pad query handler to reply to accept-caps queries. + +By setting this to true it is possible to further customize the default +handler with %GST_PAD_SET_ACCEPT_INTERSECT and +%GST_PAD_SET_ACCEPT_TEMPLATE</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </instance-parameter> + <parameter name="use" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">if the default pad accept-caps query handling should be used</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="max-errors" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">Maximum number of tolerated consecutive decode errors. See +gst_audio_decoder_set_max_errors() for more details.</doc> + <type name="gint" c:type="gint"/> + </property> + <property name="min-latency" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="plc" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="tolerance" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="stream_lock"> + <type name="GLib.RecMutex" c:type="GRecMutex"/> + </field> + <field name="input_segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="output_segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioDecoderPrivate" c:type="GstAudioDecoderPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioDecoderClass" c:type="GstAudioDecoderClass" glib:is-gtype-struct-for="AudioDecoder"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">Subclasses can override any of the available virtual methods or not, as +needed. At minimum @handle_frame (and likely @set_format) needs to be +overridden.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <field name="element_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h">The parent class structure</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_format"> + <callback name="set_format"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="parse"> + <callback name="parse"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="adapter" transfer-ownership="none"> + <type name="GstBase.Adapter" c:type="GstAdapter*"/> + </parameter> + <parameter name="offset" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_frame"> + <callback name="handle_frame"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="flush"> + <callback name="flush"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="hard" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_push"> + <callback name="pre_push"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_event"> + <callback name="sink_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_event"> + <callback name="src_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="open"> + <callback name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close"> + <callback name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="negotiate"> + <callback name="negotiate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c">a #GstAudioDecoder</doc> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decide_allocation"> + <callback name="decide_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="propose_allocation"> + <callback name="propose_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_query"> + <callback name="sink_query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_query"> + <callback name="src_query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="getcaps"> + <callback name="getcaps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform_meta"> + <callback name="transform_meta"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioDecoder" c:type="GstAudioDecoder*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="meta" transfer-ownership="none"> + <type name="Gst.Meta" c:type="GstMeta*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="16"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioDecoderPrivate" c:type="GstAudioDecoderPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + </record> + <enumeration name="AudioDitherMethod" glib:type-name="GstAudioDitherMethod" glib:get-type="gst_audio_dither_method_get_type" c:type="GstAudioDitherMethod"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">Set of available dithering methods.</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_DITHER_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">No dithering</doc> + </member> + <member name="rpdf" value="1" c:identifier="GST_AUDIO_DITHER_RPDF" glib:nick="rpdf"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">Rectangular dithering</doc> + </member> + <member name="tpdf" value="2" c:identifier="GST_AUDIO_DITHER_TPDF" glib:nick="tpdf"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">Triangular dithering (default)</doc> + </member> + <member name="tpdf_hf" value="3" c:identifier="GST_AUDIO_DITHER_TPDF_HF" glib:nick="tpdf-hf"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">High frequency triangular dithering</doc> + </member> + </enumeration> + <record name="AudioDownmixMeta" c:type="GstAudioDownmixMeta"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">Extra buffer metadata describing audio downmixing matrix. This metadata is +attached to audio buffers and contains a matrix to downmix the buffer number +of channels to @channels. + +@matrix is an two-dimensional array of @to_channels times @from_channels +coefficients, i.e. the i-th output channels is constructed by multiplicating +the input channels with the coefficients in @matrix[i] and taking the sum +of the results.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <field name="meta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">parent #GstMeta</doc> + <type name="Gst.Meta" c:type="GstMeta"/> + </field> + <field name="from_position" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">the channel positions of the source</doc> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </field> + <field name="to_position" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">the channel positions of the destination</doc> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </field> + <field name="from_channels" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">the number of channels of the source</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="to_channels" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">the number of channels of the destination</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="matrix" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">the matrix coefficients.</doc> + <type name="gfloat" c:type="gfloat**"/> + </field> + <function name="get_info" c:identifier="gst_audio_downmix_meta_get_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <class name="AudioEncoder" c:symbol-prefix="audio_encoder" c:type="GstAudioEncoder" parent="Gst.Element" abstract="1" glib:type-name="GstAudioEncoder" glib:get-type="gst_audio_encoder_get_type" glib:type-struct="AudioEncoderClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">This base class is for audio encoders turning raw audio samples into +encoded audio data. + +GstAudioEncoder and subclass should cooperate as follows. + +## Configuration + + * Initially, GstAudioEncoder calls @start when the encoder element + is activated, which allows subclass to perform any global setup. + + * GstAudioEncoder calls @set_format to inform subclass of the format + of input audio data that it is about to receive. Subclass should + setup for encoding and configure various base class parameters + appropriately, notably those directing desired input data handling. + While unlikely, it might be called more than once, if changing input + parameters require reconfiguration. + + * GstAudioEncoder calls @stop at end of all processing. + +As of configuration stage, and throughout processing, GstAudioEncoder +maintains various parameters that provide required context, +e.g. describing the format of input audio data. +Conversely, subclass can and should configure these context parameters +to inform base class of its expectation w.r.t. buffer handling. + +## Data processing + + * Base class gathers input sample data (as directed by the context's + frame_samples and frame_max) and provides this to subclass' @handle_frame. + * If codec processing results in encoded data, subclass should call + gst_audio_encoder_finish_frame() to have encoded data pushed + downstream. Alternatively, it might also call + gst_audio_encoder_finish_frame() (with a NULL buffer and some number of + dropped samples) to indicate dropped (non-encoded) samples. + * Just prior to actually pushing a buffer downstream, + it is passed to @pre_push. + * During the parsing process GstAudioEncoderClass will handle both + srcpad and sinkpad events. Sink events will be passed to subclass + if @event callback has been provided. + +## Shutdown phase + + * GstAudioEncoder class calls @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. This +is typically when base class calls subclass' @set_format function, though +it might be delayed until calling @gst_audio_encoder_finish_frame. + +In summary, above process should have subclass concentrating on +codec data processing while leaving other matters to base class, +such as most notably timestamp handling. While it may exert more control +in this area (see e.g. @pre_push), it is very much not recommended. + +In particular, base class will either favor tracking upstream timestamps +(at the possible expense of jitter) or aim to arrange for a perfect stream of +output timestamps, depending on #GstAudioEncoder:perfect-timestamp. +However, in the latter case, the input may not be so perfect or ideal, which +is handled as follows. An input timestamp is compared with the expected +timestamp as dictated by input sample stream and if the deviation is less +than #GstAudioEncoder:tolerance, the deviation is discarded. +Otherwise, it is considered a discontuinity and subsequent output timestamp +is resynced to the new position after performing configured discontinuity +processing. In the non-perfect-timestamp case, an upstream variation +exceeding tolerance only leads to marking DISCONT on subsequent outgoing +(while timestamps are adjusted to upstream regardless of variation). +While DISCONT is also marked in the perfect-timestamp case, this one +optionally (see #GstAudioEncoder:hard-resync) +performs some additional steps, such as clipping of (early) input samples +or draining all currently remaining input data, depending on the direction +of the discontuinity. + +If perfect timestamps are arranged, it is also possible to request baseclass +(usually set by subclass) to provide additional buffer metadata (in OFFSET +and OFFSET_END) fields according to granule defined semantics currently +needed by oggmux. Specifically, OFFSET is set to granulepos (= sample count +including buffer) and OFFSET_END to corresponding timestamp (as determined +by same sample count and sample rate). + +Things that subclass need to take care of: + + * Provide pad templates + * Set source pad caps when appropriate + * Inform base class of buffer processing needs using context's + frame_samples and frame_bytes. + * Set user-configurable properties to sane defaults for format and + implementing codec at hand, e.g. those controlling timestamp behaviour + and discontinuity processing. + * Accept data in @handle_frame and provide encoded results to + gst_audio_encoder_finish_frame().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <implements name="Gst.Preset"/> + <virtual-method name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="decide_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="flush"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="getcaps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_frame"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="negotiate" invoker="negotiate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Negotiate with downstream elements to currently configured #GstCaps. +Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if +negotiate fails.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_push"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="propose_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_format"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="none"> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="encoder" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="encoder" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="transform_meta"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="meta" transfer-ownership="none"> + <type name="Gst.Meta" c:type="GstMeta*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <method name="allocate_output_buffer" c:identifier="gst_audio_encoder_allocate_output_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Helper function that allocates a buffer to hold an encoded audio frame +for @enc's current output format.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">allocated buffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">size of the buffer</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="finish_frame" c:identifier="gst_audio_encoder_finish_frame"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Collects encoded data and pushes encoded data downstream. +Source pad caps must be set when this is called. + +If @samples < 0, then best estimate is all samples provided to encoder +(subclass) so far. @buf may be NULL, in which case next number of @samples +are considered discarded, e.g. as a result of discontinuous transmission, +and a discontinuity is marked. + +Note that samples received in #GstAudioEncoderClass.handle_frame() +may be invalidated by a call to this function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstFlowReturn that should be escalated to caller (of caller)</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">encoded data</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">number of samples (per channel) represented by encoded data</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_allocator" c:identifier="gst_audio_encoder_get_allocator"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Lets #GstAudioEncoder sub-classes to know the memory @allocator +used by the base class and its @params. + +Unref the @allocator after use it.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="allocator" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">the #GstAllocator +used</doc> + <type name="Gst.Allocator" c:type="GstAllocator**"/> + </parameter> + <parameter name="params" direction="out" caller-allocates="1" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">the +#GstAllocationParams of @allocator</doc> + <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="get_audio_info" c:identifier="gst_audio_encoder_get_audio_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioInfo describing the input audio format</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_drainable" c:identifier="gst_audio_encoder_get_drainable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Queries encoder drain handling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">TRUE if drainable handling is enabled. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_frame_max" c:identifier="gst_audio_encoder_get_frame_max"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">currently configured maximum handled frames</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_frame_samples_max" c:identifier="gst_audio_encoder_get_frame_samples_max"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">currently maximum requested samples per frame</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_frame_samples_min" c:identifier="gst_audio_encoder_get_frame_samples_min"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">currently minimum requested samples per frame</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_hard_min" c:identifier="gst_audio_encoder_get_hard_min"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Queries encoder hard minimum handling.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">TRUE if hard minimum handling is enabled. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_hard_resync" c:identifier="gst_audio_encoder_get_hard_resync"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_latency" c:identifier="gst_audio_encoder_get_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Sets the variables pointed to by @min and @max to the currently configured +latency.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="min" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a pointer to storage to hold minimum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="max" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a pointer to storage to hold maximum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="get_lookahead" c:identifier="gst_audio_encoder_get_lookahead"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">currently configured encoder lookahead</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_mark_granule" c:identifier="gst_audio_encoder_get_mark_granule"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Queries if the encoder will handle granule marking.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">TRUE if granule marking is enabled. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_perfect_timestamp" c:identifier="gst_audio_encoder_get_perfect_timestamp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Queries encoder perfect timestamp behaviour.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">TRUE if perfect timestamp setting enabled. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tolerance" c:identifier="gst_audio_encoder_get_tolerance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Queries current audio jitter tolerance threshold.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">encoder audio jitter tolerance threshold. + +MT safe.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="merge_tags" c:identifier="gst_audio_encoder_merge_tags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Sets the audio encoder tags and how they should be merged with any +upstream stream tags. This will override any tags previously-set +with gst_audio_encoder_merge_tags(). + +Note that this is provided for convenience, and the subclass is +not required to use this and can still do tag handling on its own. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="tags" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstTagList to merge, or NULL to unset + previously-set tags</doc> + <type name="Gst.TagList" c:type="const GstTagList*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">the #GstTagMergeMode to use, usually #GST_TAG_MERGE_REPLACE</doc> + <type name="Gst.TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + </parameters> + </method> + <method name="negotiate" c:identifier="gst_audio_encoder_negotiate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Negotiate with downstream elements to currently configured #GstCaps. +Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if +negotiate fails.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + </parameters> + </method> + <method name="proxy_getcaps" c:identifier="gst_audio_encoder_proxy_getcaps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Returns caps that express @caps (or sink template caps if @caps == NULL) +restricted to channel/rate combinations supported by downstream elements +(e.g. muxers).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstCaps owned by caller</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">initial caps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">filter caps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_allocation_caps" c:identifier="gst_audio_encoder_set_allocation_caps" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Sets a caps in allocation query which are different from the set +pad's caps. Use this function before calling +gst_audio_encoder_negotiate(). Setting to %NULL the allocation +query will use the caps from the pad.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="allocation_caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstCaps or %NULL</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_drainable" c:identifier="gst_audio_encoder_set_drainable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Configures encoder drain handling. If drainable, subclass might +be handed a NULL buffer to have it return any leftover encoded data. +Otherwise, it is not considered so capable and will only ever be passed +real data. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_frame_max" c:identifier="gst_audio_encoder_set_frame_max"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Sets max number of frames accepted at once (assumed minimally 1). +Requires @frame_samples_min and @frame_samples_max to be the equal. + +Note: This value will be reset to 0 every time before +#GstAudioEncoderClass.set_format() is called.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">number of frames</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_frame_samples_max" c:identifier="gst_audio_encoder_set_frame_samples_max"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Sets number of samples (per channel) subclass needs to be handed, +at most or will be handed all available if 0. + +If an exact number of samples is required, gst_audio_encoder_set_frame_samples_min() +must be called with the same number. + +Note: This value will be reset to 0 every time before +#GstAudioEncoderClass.set_format() is called.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">number of samples per frame</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_frame_samples_min" c:identifier="gst_audio_encoder_set_frame_samples_min"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Sets number of samples (per channel) subclass needs to be handed, +at least or will be handed all available if 0. + +If an exact number of samples is required, gst_audio_encoder_set_frame_samples_max() +must be called with the same number. + +Note: This value will be reset to 0 every time before +#GstAudioEncoderClass.set_format() is called.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">number of samples per frame</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_hard_min" c:identifier="gst_audio_encoder_set_hard_min"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Configures encoder hard minimum handling. If enabled, subclass +will never be handed less samples than it configured, which otherwise +might occur near end-of-data handling. Instead, the leftover samples +will simply be discarded. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_hard_resync" c:identifier="gst_audio_encoder_set_hard_resync"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_headers" c:identifier="gst_audio_encoder_set_headers"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Set the codec headers to be sent downstream whenever requested.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="headers" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a list of + #GstBuffer containing the codec header</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Gst.Buffer"/> + </type> + </parameter> + </parameters> + </method> + <method name="set_latency" c:identifier="gst_audio_encoder_set_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Sets encoder latency. If the provided values changed from +previously provided ones, this will also post a LATENCY message on the bus +so the pipeline can reconfigure its global latency.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="min" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">minimum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="max" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">maximum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_lookahead" c:identifier="gst_audio_encoder_set_lookahead"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Sets encoder lookahead (in units of input rate samples) + +Note: This value will be reset to 0 every time before +#GstAudioEncoderClass.set_format() is called.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">lookahead</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_mark_granule" c:identifier="gst_audio_encoder_set_mark_granule"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Enable or disable encoder granule handling. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_output_format" c:identifier="gst_audio_encoder_set_output_format"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Configure output caps on the srcpad of @enc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">#GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_perfect_timestamp" c:identifier="gst_audio_encoder_set_perfect_timestamp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Enable or disable encoder perfect output timestamp preference. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_tolerance" c:identifier="gst_audio_encoder_set_tolerance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">Configures encoder audio jitter tolerance threshold. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </instance-parameter> + <parameter name="tolerance" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">new tolerance</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <property name="hard-resync" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="mark-granule" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="perfect-timestamp" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="tolerance" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="stream_lock"> + <type name="GLib.RecMutex" c:type="GRecMutex"/> + </field> + <field name="input_segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="output_segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioEncoderPrivate" c:type="GstAudioEncoderPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioEncoderClass" c:type="GstAudioEncoderClass" glib:is-gtype-struct-for="AudioEncoder"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">Subclasses can override any of the available virtual methods or not, as +needed. At minimum @set_format and @handle_frame needs to be overridden.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <field name="element_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h">The parent class structure</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_format"> + <callback name="set_format"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_frame"> + <callback name="handle_frame"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="flush"> + <callback name="flush"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_push"> + <callback name="pre_push"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_event"> + <callback name="sink_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_event"> + <callback name="src_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="getcaps"> + <callback name="getcaps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="open"> + <callback name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close"> + <callback name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="negotiate"> + <callback name="negotiate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c">a #GstAudioEncoder</doc> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decide_allocation"> + <callback name="decide_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="propose_allocation"> + <callback name="propose_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform_meta"> + <callback name="transform_meta"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="enc" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="meta" transfer-ownership="none"> + <type name="Gst.Meta" c:type="GstMeta*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_query"> + <callback name="sink_query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="encoder" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_query"> + <callback name="src_query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="encoder" transfer-ownership="none"> + <type name="AudioEncoder" c:type="GstAudioEncoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="17"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioEncoderPrivate" c:type="GstAudioEncoderPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + </record> + <class name="AudioFilter" c:symbol-prefix="audio_filter" c:type="GstAudioFilter" parent="GstBase.BaseTransform" abstract="1" glib:type-name="GstAudioFilter" glib:get-type="gst_audio_filter_get_type" glib:type-struct="AudioFilterClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.c">#GstAudioFilter is a #GstBaseTransform<!-- -->-derived base class for simple audio +filters, ie. those that output the same format that they get as input. + +#GstAudioFilter will parse the input format for you (with error checking) +before calling your setup function. Also, elements deriving from +#GstAudioFilter may use gst_audio_filter_class_add_pad_templates() from +their class_init function to easily configure the set of caps/formats that +the element is able to handle. + +Derived classes should override the #GstAudioFilterClass.setup() and +#GstBaseTransformClass.transform_ip() and/or +#GstBaseTransformClass.transform() +virtual functions in their class_init function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <virtual-method name="setup"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="AudioFilter" c:type="GstAudioFilter*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="none"> + <type name="AudioInfo" c:type="const GstAudioInfo*"/> + </parameter> + </parameters> + </virtual-method> + <field name="basetransform"> + <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/> + </field> + <field name="info"> + <type name="AudioInfo" c:type="GstAudioInfo"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioFilterClass" c:type="GstAudioFilterClass" glib:is-gtype-struct-for="AudioFilter"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h">In addition to the @setup virtual function, you should also override the +GstBaseTransform::transform and/or GstBaseTransform::transform_ip virtual +function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <field name="basetransformclass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h">parent class</doc> + <type name="GstBase.BaseTransformClass" c:type="GstBaseTransformClass"/> + </field> + <field name="setup"> + <callback name="setup"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="AudioFilter" c:type="GstAudioFilter*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <type name="AudioInfo" c:type="const GstAudioInfo*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="add_pad_templates" c:identifier="gst_audio_filter_class_add_pad_templates"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.c">Convenience function to add pad templates to this element class, with +@allowed_caps as the caps that can be handled. + +This function is usually used from within a GObject class_init function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.c">an #GstAudioFilterClass</doc> + <type name="AudioFilterClass" c:type="GstAudioFilterClass*"/> + </instance-parameter> + <parameter name="allowed_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.c">what formats the filter can handle, as #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + </record> + <bitfield name="AudioFlags" glib:type-name="GstAudioFlags" glib:get-type="gst_audio_flags_get_type" c:type="GstAudioFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">Extra audio flags</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">no valid flag</doc> + </member> + <member name="unpositioned" value="1" c:identifier="GST_AUDIO_FLAG_UNPOSITIONED" glib:nick="unpositioned"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">the position array explicitly + contains unpositioned channels.</doc> + </member> + </bitfield> + <enumeration name="AudioFormat" glib:type-name="GstAudioFormat" glib:get-type="gst_audio_format_get_type" c:type="GstAudioFormat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Enum value describing the most common audio formats.</doc> + <member name="unknown" value="0" c:identifier="GST_AUDIO_FORMAT_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">unknown or unset audio format</doc> + </member> + <member name="encoded" value="1" c:identifier="GST_AUDIO_FORMAT_ENCODED" glib:nick="encoded"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">encoded audio format</doc> + </member> + <member name="s8" value="2" c:identifier="GST_AUDIO_FORMAT_S8" glib:nick="s8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">8 bits in 8 bits, signed</doc> + </member> + <member name="u8" value="3" c:identifier="GST_AUDIO_FORMAT_U8" glib:nick="u8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">8 bits in 8 bits, unsigned</doc> + </member> + <member name="s16le" value="4" c:identifier="GST_AUDIO_FORMAT_S16LE" glib:nick="s16le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">16 bits in 16 bits, signed, little endian</doc> + </member> + <member name="s16be" value="5" c:identifier="GST_AUDIO_FORMAT_S16BE" glib:nick="s16be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">16 bits in 16 bits, signed, big endian</doc> + </member> + <member name="u16le" value="6" c:identifier="GST_AUDIO_FORMAT_U16LE" glib:nick="u16le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">16 bits in 16 bits, unsigned, little endian</doc> + </member> + <member name="u16be" value="7" c:identifier="GST_AUDIO_FORMAT_U16BE" glib:nick="u16be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">16 bits in 16 bits, unsigned, big endian</doc> + </member> + <member name="s24_32le" value="8" c:identifier="GST_AUDIO_FORMAT_S24_32LE" glib:nick="s24-32le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 32 bits, signed, little endian</doc> + </member> + <member name="s24_32be" value="9" c:identifier="GST_AUDIO_FORMAT_S24_32BE" glib:nick="s24-32be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 32 bits, signed, big endian</doc> + </member> + <member name="u24_32le" value="10" c:identifier="GST_AUDIO_FORMAT_U24_32LE" glib:nick="u24-32le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 32 bits, unsigned, little endian</doc> + </member> + <member name="u24_32be" value="11" c:identifier="GST_AUDIO_FORMAT_U24_32BE" glib:nick="u24-32be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 32 bits, unsigned, big endian</doc> + </member> + <member name="s32le" value="12" c:identifier="GST_AUDIO_FORMAT_S32LE" glib:nick="s32le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">32 bits in 32 bits, signed, little endian</doc> + </member> + <member name="s32be" value="13" c:identifier="GST_AUDIO_FORMAT_S32BE" glib:nick="s32be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">32 bits in 32 bits, signed, big endian</doc> + </member> + <member name="u32le" value="14" c:identifier="GST_AUDIO_FORMAT_U32LE" glib:nick="u32le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">32 bits in 32 bits, unsigned, little endian</doc> + </member> + <member name="u32be" value="15" c:identifier="GST_AUDIO_FORMAT_U32BE" glib:nick="u32be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">32 bits in 32 bits, unsigned, big endian</doc> + </member> + <member name="s24le" value="16" c:identifier="GST_AUDIO_FORMAT_S24LE" glib:nick="s24le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 24 bits, signed, little endian</doc> + </member> + <member name="s24be" value="17" c:identifier="GST_AUDIO_FORMAT_S24BE" glib:nick="s24be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 24 bits, signed, big endian</doc> + </member> + <member name="u24le" value="18" c:identifier="GST_AUDIO_FORMAT_U24LE" glib:nick="u24le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 24 bits, unsigned, little endian</doc> + </member> + <member name="u24be" value="19" c:identifier="GST_AUDIO_FORMAT_U24BE" glib:nick="u24be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 24 bits, unsigned, big endian</doc> + </member> + <member name="s20le" value="20" c:identifier="GST_AUDIO_FORMAT_S20LE" glib:nick="s20le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">20 bits in 24 bits, signed, little endian</doc> + </member> + <member name="s20be" value="21" c:identifier="GST_AUDIO_FORMAT_S20BE" glib:nick="s20be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">20 bits in 24 bits, signed, big endian</doc> + </member> + <member name="u20le" value="22" c:identifier="GST_AUDIO_FORMAT_U20LE" glib:nick="u20le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">20 bits in 24 bits, unsigned, little endian</doc> + </member> + <member name="u20be" value="23" c:identifier="GST_AUDIO_FORMAT_U20BE" glib:nick="u20be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">20 bits in 24 bits, unsigned, big endian</doc> + </member> + <member name="s18le" value="24" c:identifier="GST_AUDIO_FORMAT_S18LE" glib:nick="s18le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">18 bits in 24 bits, signed, little endian</doc> + </member> + <member name="s18be" value="25" c:identifier="GST_AUDIO_FORMAT_S18BE" glib:nick="s18be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">18 bits in 24 bits, signed, big endian</doc> + </member> + <member name="u18le" value="26" c:identifier="GST_AUDIO_FORMAT_U18LE" glib:nick="u18le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">18 bits in 24 bits, unsigned, little endian</doc> + </member> + <member name="u18be" value="27" c:identifier="GST_AUDIO_FORMAT_U18BE" glib:nick="u18be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">18 bits in 24 bits, unsigned, big endian</doc> + </member> + <member name="f32le" value="28" c:identifier="GST_AUDIO_FORMAT_F32LE" glib:nick="f32le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">32-bit floating point samples, little endian</doc> + </member> + <member name="f32be" value="29" c:identifier="GST_AUDIO_FORMAT_F32BE" glib:nick="f32be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">32-bit floating point samples, big endian</doc> + </member> + <member name="f64le" value="30" c:identifier="GST_AUDIO_FORMAT_F64LE" glib:nick="f64le"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">64-bit floating point samples, little endian</doc> + </member> + <member name="f64be" value="31" c:identifier="GST_AUDIO_FORMAT_F64BE" glib:nick="f64be"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">64-bit floating point samples, big endian</doc> + </member> + <member name="s16" value="4" c:identifier="GST_AUDIO_FORMAT_S16" glib:nick="s16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">16 bits in 16 bits, signed, native endianness</doc> + </member> + <member name="u16" value="6" c:identifier="GST_AUDIO_FORMAT_U16" glib:nick="u16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">16 bits in 16 bits, unsigned, native endianness</doc> + </member> + <member name="s24_32" value="8" c:identifier="GST_AUDIO_FORMAT_S24_32" glib:nick="s24-32"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 32 bits, signed, native endianness</doc> + </member> + <member name="u24_32" value="10" c:identifier="GST_AUDIO_FORMAT_U24_32" glib:nick="u24-32"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 32 bits, unsigned, native endianness</doc> + </member> + <member name="s32" value="12" c:identifier="GST_AUDIO_FORMAT_S32" glib:nick="s32"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">32 bits in 32 bits, signed, native endianness</doc> + </member> + <member name="u32" value="14" c:identifier="GST_AUDIO_FORMAT_U32" glib:nick="u32"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">32 bits in 32 bits, unsigned, native endianness</doc> + </member> + <member name="s24" value="16" c:identifier="GST_AUDIO_FORMAT_S24" glib:nick="s24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 24 bits, signed, native endianness</doc> + </member> + <member name="u24" value="18" c:identifier="GST_AUDIO_FORMAT_U24" glib:nick="u24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">24 bits in 24 bits, unsigned, native endianness</doc> + </member> + <member name="s20" value="20" c:identifier="GST_AUDIO_FORMAT_S20" glib:nick="s20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">20 bits in 24 bits, signed, native endianness</doc> + </member> + <member name="u20" value="22" c:identifier="GST_AUDIO_FORMAT_U20" glib:nick="u20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">20 bits in 24 bits, unsigned, native endianness</doc> + </member> + <member name="s18" value="24" c:identifier="GST_AUDIO_FORMAT_S18" glib:nick="s18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">18 bits in 24 bits, signed, native endianness</doc> + </member> + <member name="u18" value="26" c:identifier="GST_AUDIO_FORMAT_U18" glib:nick="u18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">18 bits in 24 bits, unsigned, native endianness</doc> + </member> + <member name="f32" value="28" c:identifier="GST_AUDIO_FORMAT_F32" glib:nick="f32"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">32-bit floating point samples, native endianness</doc> + </member> + <member name="f64" value="30" c:identifier="GST_AUDIO_FORMAT_F64" glib:nick="f64"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">64-bit floating point samples, native endianness</doc> + </member> + <function name="build_integer" c:identifier="gst_audio_format_build_integer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Construct a #GstAudioFormat with given parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a #GstAudioFormat or GST_AUDIO_FORMAT_UNKNOWN when no audio format +exists with the given parameters.</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </return-value> + <parameters> + <parameter name="sign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">signed or unsigned format</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="endianness" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">G_LITTLE_ENDIAN or G_BIG_ENDIAN</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">amount of bits used per sample</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="depth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">amount of used bits in @width</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="fill_silence" c:identifier="gst_audio_format_fill_silence" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Fill @length bytes in @dest with silence samples for @info.</doc> + <doc-deprecated xml:space="preserve">Use gst_audio_format_info_fill_silence() instead.</doc-deprecated> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a #GstAudioFormatInfo</doc> + <type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/> + </parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a destination + to fill</doc> + <array length="2" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">the length to fill</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="from_string" c:identifier="gst_audio_format_from_string"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Convert the @format string to its #GstAudioFormat.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">the #GstAudioFormat for @format or GST_AUDIO_FORMAT_UNKNOWN when the +string is not a known format.</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_info" c:identifier="gst_audio_format_get_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Get the #GstAudioFormatInfo for @format</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">The #GstAudioFormatInfo for @format.</doc> + <type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a #GstAudioFormat</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + </parameters> + </function> + <function name="to_string" c:identifier="gst_audio_format_to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + </parameters> + </function> + </enumeration> + <bitfield name="AudioFormatFlags" glib:type-name="GstAudioFormatFlags" glib:get-type="gst_audio_format_flags_get_type" c:type="GstAudioFormatFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">The different audio flags that a format info can have.</doc> + <member name="integer" value="1" c:identifier="GST_AUDIO_FORMAT_FLAG_INTEGER" glib:nick="integer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">integer samples</doc> + </member> + <member name="float" value="2" c:identifier="GST_AUDIO_FORMAT_FLAG_FLOAT" glib:nick="float"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">float samples</doc> + </member> + <member name="signed" value="4" c:identifier="GST_AUDIO_FORMAT_FLAG_SIGNED" glib:nick="signed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">signed samples</doc> + </member> + <member name="complex" value="16" c:identifier="GST_AUDIO_FORMAT_FLAG_COMPLEX" glib:nick="complex"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">complex layout</doc> + </member> + <member name="unpack" value="32" c:identifier="GST_AUDIO_FORMAT_FLAG_UNPACK" glib:nick="unpack"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">the format can be used in +#GstAudioFormatUnpack and #GstAudioFormatPack functions</doc> + </member> + </bitfield> + <record name="AudioFormatInfo" c:type="GstAudioFormatInfo"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Information for an audio format.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <field name="format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">#GstAudioFormat</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </field> + <field name="name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">string representation of the format</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="description" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">user readable description of the format</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">#GstAudioFormatFlags</doc> + <type name="AudioFormatFlags" c:type="GstAudioFormatFlags"/> + </field> + <field name="endianness" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">the endianness</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="width" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">amount of bits used for one sample</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="depth" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">amount of valid bits in @width</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="silence" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">@width/8 bytes with 1 silent sample</doc> + <array zero-terminated="0" fixed-size="8"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="unpack_format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">the format of the unpacked samples</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </field> + <field name="unpack_func" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">function to unpack samples</doc> + <type name="AudioFormatUnpack" c:type="GstAudioFormatUnpack"/> + </field> + <field name="pack_func" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">function to pack samples</doc> + <type name="AudioFormatPack" c:type="GstAudioFormatPack"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="fill_silence" c:identifier="gst_audio_format_info_fill_silence" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Fill @length bytes in @dest with silence samples for @info.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a #GstAudioFormatInfo</doc> + <type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/> + </instance-parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a destination + to fill</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">the length to fill</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + </record> + <callback name="AudioFormatPack" c:type="GstAudioFormatPack"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Packs @length samples from @src to the data array in format @info. +The samples from source have each channel interleaved +and will be packed into @data.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">a #GstAudioFormatInfo</doc> + <type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">#GstAudioPackFlags</doc> + <type name="AudioPackFlags" c:type="GstAudioPackFlags"/> + </parameter> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">a source array</doc> + <array zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">pointer to the destination + data</doc> + <array zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">the amount of samples to pack.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + <callback name="AudioFormatUnpack" c:type="GstAudioFormatUnpack"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Unpacks @length samples from the given data of format @info. +The samples will be unpacked into @dest which each channel +interleaved. @dest should at least be big enough to hold @length * +channels * size(unpack_format) bytes.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">a #GstAudioFormatInfo</doc> + <type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">#GstAudioPackFlags</doc> + <type name="AudioPackFlags" c:type="GstAudioPackFlags"/> + </parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">a destination array</doc> + <array zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">pointer to the audio data</doc> + <array zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">the amount of samples to unpack.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + <record name="AudioInfo" c:type="GstAudioInfo" glib:type-name="GstAudioInfo" glib:get-type="gst_audio_info_get_type" c:symbol-prefix="audio_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">Information describing audio properties. This information can be filled +in from GstCaps with gst_audio_info_from_caps(). + +Use the provided macros to access the info in this structure.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <field name="finfo" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">the format info of the audio</doc> + <type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/> + </field> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">additional audio flags</doc> + <type name="AudioFlags" c:type="GstAudioFlags"/> + </field> + <field name="layout" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">audio layout</doc> + <type name="AudioLayout" c:type="GstAudioLayout"/> + </field> + <field name="rate" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">the audio sample rate</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="channels" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">the number of channels</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="bpf" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">the number of bytes for one frame, this is the size of one + sample * @channels</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="position" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h">the positions for each channel</doc> + <array zero-terminated="0" fixed-size="64"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <constructor name="new" c:identifier="gst_audio_info_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Allocate a new #GstAudioInfo that is also initialized with +gst_audio_info_init().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a new #GstAudioInfo. free with gst_audio_info_free().</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </return-value> + </constructor> + <constructor name="new_from_caps" c:identifier="gst_audio_info_new_from_caps" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Parse @caps to generate a #GstAudioInfo.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">A #GstAudioInfo, or %NULL if @caps couldn't be parsed</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstCaps</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </constructor> + <method name="convert" c:identifier="gst_audio_info_convert"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Converts among various #GstFormat types. This function handles +GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT. For +raw audio, GST_FORMAT_DEFAULT corresponds to audio frames. This +function can be used to handle pad queries of the type GST_QUERY_CONVERT.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">TRUE if the conversion was successful.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="const GstAudioInfo*"/> + </instance-parameter> + <parameter name="src_fmt" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">#GstFormat of the @src_val</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">value to convert</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_fmt" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">#GstFormat of the @dest_val</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">pointer to destination value</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_audio_info_copy"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Copy a GstAudioInfo structure.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a new #GstAudioInfo. free with gst_audio_info_free.</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="const GstAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_audio_info_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Free a GstAudioInfo structure previously allocated with gst_audio_info_new() +or gst_audio_info_copy().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_equal" c:identifier="gst_audio_info_is_equal" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Compares two #GstAudioInfo and returns whether they are equal or not</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">%TRUE if @info and @other are equal, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="const GstAudioInfo*"/> + </instance-parameter> + <parameter name="other" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="const GstAudioInfo*"/> + </parameter> + </parameters> + </method> + <method name="set_format" c:identifier="gst_audio_info_set_format"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Set the default info for the audio info of @format and @rate and @channels. + +Note: This initializes @info first, no values are preserved.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">the format</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">the samplerate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">the number of channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="position" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">the channel positions</doc> + <array zero-terminated="0" c:type="const GstAudioChannelPosition*" fixed-size="64"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + </parameters> + </method> + <method name="to_caps" c:identifier="gst_audio_info_to_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Convert the values of @info into a #GstCaps.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">the new #GstCaps containing the + info of @info.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="const GstAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <function name="from_caps" c:identifier="gst_audio_info_from_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Parse @caps and update @info.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">TRUE if @caps could be parsed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="info" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstCaps</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="init" c:identifier="gst_audio_info_init"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Initialize @info with default values.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="info" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="AudioLayout" glib:type-name="GstAudioLayout" glib:get-type="gst_audio_layout_get_type" c:type="GstAudioLayout"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">Layout of the audio samples for the different channels.</doc> + <member name="interleaved" value="0" c:identifier="GST_AUDIO_LAYOUT_INTERLEAVED" glib:nick="interleaved"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">interleaved audio</doc> + </member> + <member name="non_interleaved" value="1" c:identifier="GST_AUDIO_LAYOUT_NON_INTERLEAVED" glib:nick="non-interleaved"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">non-interleaved audio</doc> + </member> + </enumeration> + <record name="AudioLevelMeta" c:type="GstAudioLevelMeta" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">Meta containing Audio Level Indication: https://tools.ietf.org/html/rfc6464</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <field name="meta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">parent #GstMeta</doc> + <type name="Gst.Meta" c:type="GstMeta"/> + </field> + <field name="level" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">the -dBov from 0-127 (127 is silence).</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="voice_activity" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">whether the buffer contains voice activity</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <function name="get_info" c:identifier="gst_audio_level_meta_get_info" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Return the #GstMetaInfo associated with #GstAudioLevelMeta.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">a #GstMetaInfo</doc> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <record name="AudioMeta" c:type="GstAudioMeta" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">#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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <field name="meta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">parent #GstMeta</doc> + <type name="Gst.Meta" c:type="GstMeta"/> + </field> + <field name="info" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">the audio properties of the buffer</doc> + <type name="AudioInfo" c:type="GstAudioInfo"/> + </field> + <field name="samples" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h">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" fixed-size="8"> + <type name="gsize" c:type="gsize"/> + </array> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <function name="get_info" c:identifier="gst_audio_meta_get_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <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" c:type="GstAudioNoiseShapingMethod"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">Set of available noise shaping methods</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_NOISE_SHAPING_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">No noise shaping (default)</doc> + </member> + <member name="error_feedback" value="1" c:identifier="GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK" glib:nick="error-feedback"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">Error feedback</doc> + </member> + <member name="simple" value="2" c:identifier="GST_AUDIO_NOISE_SHAPING_SIMPLE" glib:nick="simple"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">Simple 2-pole noise shaping</doc> + </member> + <member name="medium" value="3" c:identifier="GST_AUDIO_NOISE_SHAPING_MEDIUM" glib:nick="medium"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">Medium 5-pole noise shaping</doc> + </member> + <member name="high" value="4" c:identifier="GST_AUDIO_NOISE_SHAPING_HIGH" glib:nick="high"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">High 8-pole noise shaping</doc> + </member> + </enumeration> + <bitfield name="AudioPackFlags" glib:type-name="GstAudioPackFlags" glib:get-type="gst_audio_pack_flags_get_type" c:type="GstAudioPackFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">The different flags that can be used when packing and unpacking.</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_PACK_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">No flag</doc> + </member> + <member name="truncate_range" value="1" c:identifier="GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE" glib:nick="truncate-range"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h">When the source has a smaller depth + than the target format, set the least significant bits of the target + to 0. This is likely slightly faster but less accurate. When this flag + is not specified, the most significant bits of the source are duplicated + in the least significant bits of the destination.</doc> + </member> + </bitfield> + <record name="AudioQuantize" c:type="GstAudioQuantize" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h"/> + <method name="free" c:identifier="gst_audio_quantize_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">Free a #GstAudioQuantize.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="quant" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">a #GstAudioQuantize</doc> + <type name="AudioQuantize" c:type="GstAudioQuantize*"/> + </instance-parameter> + </parameters> + </method> + <method name="reset" c:identifier="gst_audio_quantize_reset"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">Reset @quant to the state is was when created, clearing any +history it might have.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="quant" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">a #GstAudioQuantize</doc> + <type name="AudioQuantize" c:type="GstAudioQuantize*"/> + </instance-parameter> + </parameters> + </method> + <method name="samples" c:identifier="gst_audio_quantize_samples"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">Perform quantization on @samples in @in and write the result to @out. + +In case the samples are interleaved, @in and @out must point to an +array with a single element pointing to a block of interleaved samples. + +If non-interleaved samples are used, @in and @out must point to an +array with pointers to memory blocks, one for each channel. + +@in and @out may point to the same memory location, in which case samples will be +modified in-place.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="quant" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">a #GstAudioQuantize</doc> + <type name="AudioQuantize" c:type="GstAudioQuantize*"/> + </instance-parameter> + <parameter name="in" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">input samples</doc> + <type name="gpointer" c:type="const gpointer*"/> + </parameter> + <parameter name="out" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">output samples</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + <parameter name="samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">number of samples</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_audio_quantize_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">Create a new quantizer object with the given parameters. + +Output samples will be quantized to a multiple of @quantizer. Better +performance is achieved when @quantizer is a power of 2. + +Dithering and noise-shaping can be performed during quantization with +the @dither and @ns parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">a new #GstAudioQuantize. Free with gst_audio_quantize_free().</doc> + <type name="AudioQuantize" c:type="GstAudioQuantize*"/> + </return-value> + <parameters> + <parameter name="dither" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">a #GstAudioDitherMethod</doc> + <type name="AudioDitherMethod" c:type="GstAudioDitherMethod"/> + </parameter> + <parameter name="ns" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">a #GstAudioNoiseShapingMethod</doc> + <type name="AudioNoiseShapingMethod" c:type="GstAudioNoiseShapingMethod"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">#GstAudioQuantizeFlags</doc> + <type name="AudioQuantizeFlags" c:type="GstAudioQuantizeFlags"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">the #GstAudioFormat of the samples</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">the amount of channels in the samples</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="quantizer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">the quantizer to use</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + </record> + <bitfield name="AudioQuantizeFlags" glib:type-name="GstAudioQuantizeFlags" glib:get-type="gst_audio_quantize_flags_get_type" c:type="GstAudioQuantizeFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">Extra flags that can be passed to gst_audio_quantize_new()</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_QUANTIZE_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">no flags</doc> + </member> + <member name="non_interleaved" value="1" c:identifier="GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED" glib:nick="non-interleaved"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h">samples are non-interleaved</doc> + </member> + </bitfield> + <record name="AudioResampler" c:type="GstAudioResampler" disguised="1" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">#GstAudioResampler is a structure which holds the information +required to perform various kinds of resampling filtering.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <method name="free" c:identifier="gst_audio_resampler_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Free a previously allocated #GstAudioResampler @resampler.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="resampler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResampler</doc> + <type name="AudioResampler" c:type="GstAudioResampler*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_in_frames" c:identifier="gst_audio_resampler_get_in_frames"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Get the number of input frames that would currently be needed +to produce @out_frames from @resampler.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">The number of input frames needed for producing +@out_frames of data from @resampler.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="resampler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResampler</doc> + <type name="AudioResampler" c:type="GstAudioResampler*"/> + </instance-parameter> + <parameter name="out_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">number of input frames</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="get_max_latency" c:identifier="gst_audio_resampler_get_max_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Get the maximum number of input samples that the resampler would +need before producing output.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the latency of @resampler as expressed in the number of +frames.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="resampler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResampler</doc> + <type name="AudioResampler" c:type="GstAudioResampler*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_out_frames" c:identifier="gst_audio_resampler_get_out_frames"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Get the number of output frames that would be currently available when +@in_frames are given to @resampler.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">The number of frames that would be available after giving +@in_frames as input to @resampler.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="resampler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResampler</doc> + <type name="AudioResampler" c:type="GstAudioResampler*"/> + </instance-parameter> + <parameter name="in_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">number of input frames</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="resample" c:identifier="gst_audio_resampler_resample"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Perform resampling on @in_frames frames in @in and write @out_frames to @out. + +In case the samples are interleaved, @in and @out must point to an +array with a single element pointing to a block of interleaved samples. + +If non-interleaved samples are used, @in and @out must point to an +array with pointers to memory blocks, one for each channel. + +@in may be %NULL, in which case @in_frames of silence samples are pushed +into the resampler. + +This function always produces @out_frames of output and consumes @in_frames of +input. Use gst_audio_resampler_get_out_frames() and +gst_audio_resampler_get_in_frames() to make sure @in_frames and @out_frames +are matching and @in and @out point to enough memory.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="resampler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResampler</doc> + <type name="AudioResampler" c:type="GstAudioResampler*"/> + </instance-parameter> + <parameter name="in" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">input samples</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + <parameter name="in_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">number of input frames</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="out" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">output samples</doc> + <type name="gpointer" c:type="gpointer*"/> + </parameter> + <parameter name="out_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">number of output frames</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="reset" c:identifier="gst_audio_resampler_reset"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Reset @resampler to the state it was when it was first created, discarding +all sample history.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="resampler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResampler</doc> + <type name="AudioResampler" c:type="GstAudioResampler*"/> + </instance-parameter> + </parameters> + </method> + <method name="update" c:identifier="gst_audio_resampler_update"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Update the resampler parameters for @resampler. This function should +not be called concurrently with any other function on @resampler. + +When @in_rate or @out_rate is 0, its value is unchanged. + +When @options is %NULL, the previously configured options are reused.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">%TRUE if the new parameters could be set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="resampler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResampler</doc> + <type name="AudioResampler" c:type="GstAudioResampler*"/> + </instance-parameter> + <parameter name="in_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">new input rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">new output rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="options" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">new options or %NULL</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_audio_resampler_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Make a new resampler.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="full" skip="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">The new #GstAudioResampler.</doc> + <type name="AudioResampler" c:type="GstAudioResampler*"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResamplerMethod</doc> + <type name="AudioResamplerMethod" c:type="GstAudioResamplerMethod"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">#GstAudioResamplerFlags</doc> + <type name="AudioResamplerFlags" c:type="GstAudioResamplerFlags"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the #GstAudioFormat</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the number of channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="in_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">input rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">output rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="options" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">extra options</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="options_set_quality" c:identifier="gst_audio_resampler_options_set_quality"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Set the parameters for resampling from @in_rate to @out_rate using @method +for @quality in @options.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResamplerMethod</doc> + <type name="AudioResamplerMethod" c:type="GstAudioResamplerMethod"/> + </parameter> + <parameter name="quality" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the quality</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="in_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the input rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the output rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="options" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstStructure</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="AudioResamplerFilterInterpolation" version="1.10" glib:type-name="GstAudioResamplerFilterInterpolation" glib:get-type="gst_audio_resampler_filter_interpolation_get_type" c:type="GstAudioResamplerFilterInterpolation"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">The different filter interpolation methods.</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">no interpolation</doc> + </member> + <member name="linear" value="1" c:identifier="GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR" glib:nick="linear"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">linear interpolation of the + filter coefficients.</doc> + </member> + <member name="cubic" value="2" c:identifier="GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC" glib:nick="cubic"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">cubic interpolation of the + filter coefficients.</doc> + </member> + </enumeration> + <enumeration name="AudioResamplerFilterMode" version="1.10" glib:type-name="GstAudioResamplerFilterMode" glib:get-type="gst_audio_resampler_filter_mode_get_type" c:type="GstAudioResamplerFilterMode"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Select for the filter tables should be set up.</doc> + <member name="interpolated" value="0" c:identifier="GST_AUDIO_RESAMPLER_FILTER_MODE_INTERPOLATED" glib:nick="interpolated"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Use interpolated filter tables. This + uses less memory but more CPU and is slightly less accurate but it allows for more + efficient variable rate resampling with gst_audio_resampler_update().</doc> + </member> + <member name="full" value="1" c:identifier="GST_AUDIO_RESAMPLER_FILTER_MODE_FULL" glib:nick="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Use full filter table. This uses more memory + but less CPU.</doc> + </member> + <member name="auto" value="2" c:identifier="GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO" glib:nick="auto"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Automatically choose between interpolated + and full filter tables.</doc> + </member> + </enumeration> + <bitfield name="AudioResamplerFlags" version="1.10" glib:type-name="GstAudioResamplerFlags" glib:get-type="gst_audio_resampler_flags_get_type" c:type="GstAudioResamplerFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Different resampler flags.</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_RESAMPLER_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">no flags</doc> + </member> + <member name="non_interleaved_in" value="1" c:identifier="GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_IN" glib:nick="non-interleaved-in"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">input samples are non-interleaved. + an array of blocks of samples, one for each channel, should be passed to the + resample function.</doc> + </member> + <member name="non_interleaved_out" value="2" c:identifier="GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_OUT" glib:nick="non-interleaved-out"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">output samples are non-interleaved. + an array of blocks of samples, one for each channel, should be passed to the + resample function.</doc> + </member> + <member name="variable_rate" value="4" c:identifier="GST_AUDIO_RESAMPLER_FLAG_VARIABLE_RATE" glib:nick="variable-rate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">optimize for dynamic updates of the sample + rates with gst_audio_resampler_update(). This will select an interpolating filter + when #GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO is configured.</doc> + </member> + </bitfield> + <enumeration name="AudioResamplerMethod" version="1.10" glib:type-name="GstAudioResamplerMethod" glib:get-type="gst_audio_resampler_method_get_type" c:type="GstAudioResamplerMethod"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Different subsampling and upsampling methods</doc> + <member name="nearest" value="0" c:identifier="GST_AUDIO_RESAMPLER_METHOD_NEAREST" glib:nick="nearest"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Duplicates the samples when + upsampling and drops when downsampling</doc> + </member> + <member name="linear" value="1" c:identifier="GST_AUDIO_RESAMPLER_METHOD_LINEAR" glib:nick="linear"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Uses linear interpolation to reconstruct + missing samples and averaging to downsample</doc> + </member> + <member name="cubic" value="2" c:identifier="GST_AUDIO_RESAMPLER_METHOD_CUBIC" glib:nick="cubic"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Uses cubic interpolation</doc> + </member> + <member name="blackman_nuttall" value="3" c:identifier="GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL" glib:nick="blackman-nuttall"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Uses Blackman-Nuttall windowed sinc interpolation</doc> + </member> + <member name="kaiser" value="4" c:identifier="GST_AUDIO_RESAMPLER_METHOD_KAISER" glib:nick="kaiser"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h">Uses Kaiser windowed sinc interpolation</doc> + </member> + </enumeration> + <class name="AudioRingBuffer" c:symbol-prefix="audio_ring_buffer" c:type="GstAudioRingBuffer" parent="Gst.Object" abstract="1" glib:type-name="GstAudioRingBuffer" glib:get-type="gst_audio_ring_buffer_get_type" glib:type-struct="AudioRingBufferClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">This object is the base class for audio ringbuffers used by the base +audio source and sink classes. + +The ringbuffer abstracts a circular buffer of data. One reader and +one writer can operate on the data from different threads in a lockfree +manner. The base class is sufficiently flexible to be used as an +abstraction for DMA based ringbuffers as well as a pure software +implementations.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <function name="debug_spec_buff" c:identifier="gst_audio_ring_buffer_debug_spec_buff"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Print debug info about the buffer sized in @spec to the debug log.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the spec to debug</doc> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </function> + <function name="debug_spec_caps" c:identifier="gst_audio_ring_buffer_debug_spec_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Print debug info about the parsed caps in @spec to the debug log.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the spec to debug</doc> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </function> + <function name="parse_caps" c:identifier="gst_audio_ring_buffer_parse_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Parse @caps into @spec.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the caps could be parsed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">a spec</doc> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">a #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <virtual-method name="acquire" invoker="acquire"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Allocate the resources for the ringbuffer. This function fills +in the data pointer of the ring buffer with a valid #GstBuffer +to which samples can be written.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be acquired, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to acquire</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="spec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the specs of the buffer</doc> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="activate" invoker="activate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Activate @buf to start or stop pulling data. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be activated in the requested mode, +FALSE on error.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to activate</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the new mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="clear_all" invoker="clear_all"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Clear all samples from the ringbuffer. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to clear</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="close_device" invoker="close_device"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Close the audio device associated with the ring buffer. The ring buffer +should already have been released via gst_audio_ring_buffer_release().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be closed, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="commit" invoker="commit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Commit @in_samples samples pointed to by @data to the ringbuffer @buf. + +@in_samples and @out_samples define the rate conversion to perform on the +samples in @data. For negative rates, @out_samples must be negative and +@in_samples positive. + +When @out_samples is positive, the first sample will be written at position @sample +in the ringbuffer. When @out_samples is negative, the last sample will be written to +@sample in reverse order. + +@out_samples does not need to be a multiple of the segment size of the ringbuffer +although it is recommended for optimal performance. + +@accum will hold a temporary accumulator used in rate conversion and should be +set to 0 when this function is first called. In case the commit operation is +interrupted, one can resume the processing by passing the previously returned +@accum value back to this function. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">The number of samples written to the ringbuffer or -1 on error. The +number of samples written can be less than @out_samples when @buf was interrupted +with a flush or stop.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to commit</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="sample" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the sample position of the data</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the data to commit</doc> + <array length="2" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="in_samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the number of samples in the data to commit</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the number of samples to write to the ringbuffer</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="accum" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">accumulator for rate conversion.</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="delay" invoker="delay"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Get the number of samples queued in the audio device. This is +usually less than the segment size but can be bigger when the +implementation uses another internal buffer between the audio +device. + +For playback ringbuffers this is the amount of samples transferred from the +ringbuffer to the device but still not played. + +For capture ringbuffers this is the amount of samples in the device that are +not yet transferred to the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">The number of samples queued in the audio device. + +MT safe.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to query</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="open_device" invoker="open_device"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Open the audio device associated with the ring buffer. Does not perform any +setup on the device. You must open the device before acquiring the ring +buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be opened, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="pause" invoker="pause"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Pause processing samples from the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be paused, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to pause</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="release" invoker="release"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Free the resources of the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be released, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to release</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="resume"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="start" invoker="start"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Start processing samples from the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be started, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to start</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop" invoker="stop"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Stop processing samples from the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be stopped, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to stop</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="acquire" c:identifier="gst_audio_ring_buffer_acquire"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Allocate the resources for the ringbuffer. This function fills +in the data pointer of the ring buffer with a valid #GstBuffer +to which samples can be written.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be acquired, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to acquire</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="spec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the specs of the buffer</doc> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </method> + <method name="activate" c:identifier="gst_audio_ring_buffer_activate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Activate @buf to start or stop pulling data. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be activated in the requested mode, +FALSE on error.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to activate</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the new mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="advance" c:identifier="gst_audio_ring_buffer_advance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Subclasses should call this function to notify the fact that +@advance segments are now processed by the device. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to advance</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="advance" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the number of segments written</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_audio_ring_buffer_clear"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Clear the given segment of the buffer with silence samples. +This function is used by subclasses. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to clear</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the segment to clear</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="clear_all" c:identifier="gst_audio_ring_buffer_clear_all"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Clear all samples from the ringbuffer. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to clear</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="close_device" c:identifier="gst_audio_ring_buffer_close_device"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Close the audio device associated with the ring buffer. The ring buffer +should already have been released via gst_audio_ring_buffer_release().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be closed, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="commit" c:identifier="gst_audio_ring_buffer_commit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Commit @in_samples samples pointed to by @data to the ringbuffer @buf. + +@in_samples and @out_samples define the rate conversion to perform on the +samples in @data. For negative rates, @out_samples must be negative and +@in_samples positive. + +When @out_samples is positive, the first sample will be written at position @sample +in the ringbuffer. When @out_samples is negative, the last sample will be written to +@sample in reverse order. + +@out_samples does not need to be a multiple of the segment size of the ringbuffer +although it is recommended for optimal performance. + +@accum will hold a temporary accumulator used in rate conversion and should be +set to 0 when this function is first called. In case the commit operation is +interrupted, one can resume the processing by passing the previously returned +@accum value back to this function. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">The number of samples written to the ringbuffer or -1 on error. The +number of samples written can be less than @out_samples when @buf was interrupted +with a flush or stop.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to commit</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="sample" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the sample position of the data</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the data to commit</doc> + <array length="2" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="in_samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the number of samples in the data to commit</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the number of samples to write to the ringbuffer</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="accum" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">accumulator for rate conversion.</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="convert" c:identifier="gst_audio_ring_buffer_convert"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Convert @src_val in @src_fmt to the equivalent value in @dest_fmt. The result +will be put in @dest_val.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the conversion succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="src_fmt" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the source format</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the source value</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_fmt" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the destination format</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">a location to store the converted value</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="delay" c:identifier="gst_audio_ring_buffer_delay"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Get the number of samples queued in the audio device. This is +usually less than the segment size but can be bigger when the +implementation uses another internal buffer between the audio +device. + +For playback ringbuffers this is the amount of samples transferred from the +ringbuffer to the device but still not played. + +For capture ringbuffers this is the amount of samples in the device that are +not yet transferred to the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">The number of samples queued in the audio device. + +MT safe.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to query</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="device_is_open" c:identifier="gst_audio_ring_buffer_device_is_open"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Checks the status of the device associated with the ring buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device was open, FALSE if it was closed. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_acquired" c:identifier="gst_audio_ring_buffer_is_acquired"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Check if the ringbuffer is acquired and ready to use.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the ringbuffer is acquired, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to check</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_active" c:identifier="gst_audio_ring_buffer_is_active"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Check if @buf is activated. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device is active.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_flushing" c:identifier="gst_audio_ring_buffer_is_flushing"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Check if @buf is flushing. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device is flushing.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="may_start" c:identifier="gst_audio_ring_buffer_may_start"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Tell the ringbuffer that it is allowed to start playback when +the ringbuffer is filled with samples. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="allowed" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="open_device" c:identifier="gst_audio_ring_buffer_open_device"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Open the audio device associated with the ring buffer. Does not perform any +setup on the device. You must open the device before acquiring the ring +buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be opened, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="pause" c:identifier="gst_audio_ring_buffer_pause"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Pause processing samples from the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be paused, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to pause</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="prepare_read" c:identifier="gst_audio_ring_buffer_prepare_read"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Returns a pointer to memory where the data from segment @segment +can be found. This function is mostly used by subclasses.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">FALSE if the buffer is not started. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to read from</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="segment" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the segment to read</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="readptr" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c"> + the pointer to the memory where samples can be read</doc> + <array length="2" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + <parameter name="len" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the number of bytes to read</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="read" c:identifier="gst_audio_ring_buffer_read"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Read @len samples from the ringbuffer into the memory pointed +to by @data. +The first sample should be read from position @sample in +the ringbuffer. + +@len should not be a multiple of the segment size of the ringbuffer +although it is recommended. + +@timestamp will return the timestamp associated with the data returned.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">The number of samples read from the ringbuffer or -1 on +error. + +MT safe.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to read from</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the sample position of the data</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">where the data should be read</doc> + <array length="2" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the number of samples in data to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timestamp" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">where the timestamp is returned</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="release" c:identifier="gst_audio_ring_buffer_release"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Free the resources of the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be released, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to release</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="samples_done" c:identifier="gst_audio_ring_buffer_samples_done"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Get the number of samples that were processed by the ringbuffer +since it was last started. This does not include the number of samples not +yet processed (see gst_audio_ring_buffer_delay()).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">The number of samples processed by the ringbuffer. + +MT safe.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to query</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_callback" c:identifier="gst_audio_ring_buffer_set_callback" shadowed-by="set_callback_full" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Sets the given callback function on the buffer. This function +will be called every time a segment has been written to a device. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to set the callback on</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="cb" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the callback to set</doc> + <type name="AudioRingBufferCallback" c:type="GstAudioRingBufferCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">user data passed to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_callback_full" c:identifier="gst_audio_ring_buffer_set_callback_full" shadows="set_callback" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Sets the given callback function on the buffer. This function +will be called every time a segment has been written to a device. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to set the callback on</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="cb" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the callback to set</doc> + <type name="AudioRingBufferCallback" c:type="GstAudioRingBufferCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">user data passed to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">function to be called when @user_data is no longer needed</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_channel_positions" c:identifier="gst_audio_ring_buffer_set_channel_positions"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Tell the ringbuffer about the device's channel positions. This must +be called in when the ringbuffer is acquired.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the device channel positions</doc> + <array zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_flushing" c:identifier="gst_audio_ring_buffer_set_flushing"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Set the ringbuffer to flushing mode or normal mode. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to flush</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="flushing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the new mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_sample" c:identifier="gst_audio_ring_buffer_set_sample"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Make sure that the next sample written to the device is +accounted for as being the @sample sample written to the +device. This value will be used in reporting the current +sample position of the ringbuffer. + +This function will also clear the buffer with silence. + +MT safe.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to use</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the sample number to set</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="set_timestamp" c:identifier="gst_audio_ring_buffer_set_timestamp"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + <parameter name="readseg" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="start" c:identifier="gst_audio_ring_buffer_start"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Start processing samples from the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be started, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to start</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="stop" c:identifier="gst_audio_ring_buffer_stop"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">Stop processing samples from the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be stopped, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to stop</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </instance-parameter> + </parameters> + </method> + <field name="object"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="cond"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">used to signal start/stop/pause/resume actions</doc> + <type name="GLib.Cond" c:type="GCond"/> + </field> + <field name="open"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">boolean indicating that the ringbuffer is open</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="acquired"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">boolean indicating that the ringbuffer is acquired</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="memory"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">data in the ringbuffer</doc> + <type name="guint8" c:type="guint8*"/> + </field> + <field name="size"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">size of data in the ringbuffer</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="timestamps" readable="0" private="1"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </field> + <field name="spec"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">format and layout of the ringbuffer data</doc> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec"/> + </field> + <field name="samples_per_seg"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">number of samples in one segment</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="empty_seg"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">pointer to memory holding one segment of silence samples</doc> + <type name="guint8" c:type="guint8*"/> + </field> + <field name="state"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">state of the buffer</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="segdone"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">readpointer in the ringbuffer</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="segbase"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">segment corresponding to segment 0 (unused)</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="waiting"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">is a reader or writer waiting for a free segment</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="callback" readable="0" private="1"> + <type name="AudioRingBufferCallback" c:type="GstAudioRingBufferCallback"/> + </field> + <field name="cb_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="need_reorder" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="channel_reorder_map" readable="0" private="1"> + <array zero-terminated="0" fixed-size="64"> + <type name="gint" c:type="gint"/> + </array> + </field> + <field name="flushing" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="may_start" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="active" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="cb_data_notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <callback name="AudioRingBufferCallback" c:type="GstAudioRingBufferCallback"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">This function is set with gst_audio_ring_buffer_set_callback() and is +called to fill the memory at @data with @len bytes of samples.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="rbuf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">a #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">target to fill</doc> + <array length="2" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">amount to fill</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="AudioRingBufferClass" c:type="GstAudioRingBufferClass" glib:is-gtype-struct-for="AudioRingBuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">The vmethods that subclasses can override to implement the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">parent class</doc> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="open_device"> + <callback name="open_device"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be opened, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="acquire"> + <callback name="acquire"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be acquired, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to acquire</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + <parameter name="spec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the specs of the buffer</doc> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="release"> + <callback name="release"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be released, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to release</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close_device"> + <callback name="close_device"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be closed, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be started, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to start</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pause"> + <callback name="pause"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be paused, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to pause</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="resume"> + <callback name="resume"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be stopped, FALSE on error. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to stop</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="delay"> + <callback name="delay"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">The number of samples queued in the audio device. + +MT safe.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to query</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="activate"> + <callback name="activate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">TRUE if the device could be activated in the requested mode, +FALSE on error.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to activate</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the new mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="commit"> + <callback name="commit"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">The number of samples written to the ringbuffer or -1 on error. The +number of samples written can be less than @out_samples when @buf was interrupted +with a flush or stop.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to commit</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + <parameter name="sample" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the sample position of the data</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the data to commit</doc> + <array length="3" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="in_samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the number of samples in the data to commit</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the number of samples to write to the ringbuffer</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="accum" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">accumulator for rate conversion.</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="clear_all"> + <callback name="clear_all"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c">the #GstAudioRingBuffer to clear</doc> + <type name="AudioRingBuffer" c:type="GstAudioRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="AudioRingBufferFormatType" glib:type-name="GstAudioRingBufferFormatType" glib:get-type="gst_audio_ring_buffer_format_type_get_type" c:type="GstAudioRingBufferFormatType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">The format of the samples in the ringbuffer.</doc> + <member name="raw" value="0" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW" glib:nick="raw"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in linear or float</doc> + </member> + <member name="mu_law" value="1" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW" glib:nick="mu-law"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in mulaw</doc> + </member> + <member name="a_law" value="2" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW" glib:nick="a-law"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in alaw</doc> + </member> + <member name="ima_adpcm" value="3" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM" glib:nick="ima-adpcm"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in ima adpcm</doc> + </member> + <member name="mpeg" value="4" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG" glib:nick="mpeg"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in mpeg audio (but not AAC) format</doc> + </member> + <member name="gsm" value="5" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM" glib:nick="gsm"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in gsm format</doc> + </member> + <member name="iec958" value="6" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958" glib:nick="iec958"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in IEC958 frames (e.g. AC3)</doc> + </member> + <member name="ac3" value="7" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3" glib:nick="ac3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in AC3 format</doc> + </member> + <member name="eac3" value="8" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3" glib:nick="eac3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in EAC3 format</doc> + </member> + <member name="dts" value="9" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS" glib:nick="dts"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in DTS format</doc> + </member> + <member name="mpeg2_aac" value="10" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC" glib:nick="mpeg2-aac"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in MPEG-2 AAC ADTS format</doc> + </member> + <member name="mpeg4_aac" value="11" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC" glib:nick="mpeg4-aac"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in MPEG-4 AAC ADTS format</doc> + </member> + <member name="mpeg2_aac_raw" value="12" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW" glib:nick="mpeg2-aac-raw"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in MPEG-2 AAC raw format (Since: 1.12)</doc> + </member> + <member name="mpeg4_aac_raw" value="13" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW" glib:nick="mpeg4-aac-raw"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in MPEG-4 AAC raw format (Since: 1.12)</doc> + </member> + <member name="flac" value="14" c:identifier="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC" glib:nick="flac"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">samples in FLAC format (Since: 1.12)</doc> + </member> + </enumeration> + <record name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">The structure containing the format specification of the ringbuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <field name="caps" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">The caps that generated the Spec.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </field> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">the sample type</doc> + <type name="AudioRingBufferFormatType" c:type="GstAudioRingBufferFormatType"/> + </field> + <field name="info" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">the #GstAudioInfo</doc> + <type name="AudioInfo" c:type="GstAudioInfo"/> + </field> + <field name="latency_time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">the latency in microseconds</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="buffer_time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">the total buffer size in microseconds</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="segsize" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">the size of one segment in bytes</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="segtotal" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">the total number of segments</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="seglatency" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">number of segments queued in the lower level device, + defaults to segtotal</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="AudioRingBufferState" glib:type-name="GstAudioRingBufferState" glib:get-type="gst_audio_ring_buffer_state_get_type" c:type="GstAudioRingBufferState"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">The state of the ringbuffer.</doc> + <member name="stopped" value="0" c:identifier="GST_AUDIO_RING_BUFFER_STATE_STOPPED" glib:nick="stopped"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">The ringbuffer is stopped</doc> + </member> + <member name="paused" value="1" c:identifier="GST_AUDIO_RING_BUFFER_STATE_PAUSED" glib:nick="paused"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">The ringbuffer is paused</doc> + </member> + <member name="started" value="2" c:identifier="GST_AUDIO_RING_BUFFER_STATE_STARTED" glib:nick="started"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">The ringbuffer is started</doc> + </member> + <member name="error" value="3" c:identifier="GST_AUDIO_RING_BUFFER_STATE_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h">The ringbuffer has encountered an + error after it has been started, e.g. because the device was + disconnected (Since: 1.2)</doc> + </member> + </enumeration> + <class name="AudioSink" c:symbol-prefix="audio_sink" c:type="GstAudioSink" parent="AudioBaseSink" glib:type-name="GstAudioSink" glib:get-type="gst_audio_sink_get_type" glib:type-struct="AudioSinkClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.c">This is the most simple base class for audio sinks that only requires +subclasses to implement a set of simple functions: + +* `open()` :Open the device. + +* `prepare()` :Configure the device with the specified format. + +* `write()` :Write samples to the device. + +* `reset()` :Unblock writes and flush the device. + +* `delay()` :Get the number of samples written but not yet played +by the device. + +* `unprepare()` :Undo operations done by prepare. + +* `close()` :Close the device. + +All scheduling of samples and timestamps is done in this base class +together with #GstAudioBaseSink using a default implementation of a +#GstAudioRingBuffer that uses threads.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <virtual-method name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="delay"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="pause"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="prepare"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + <parameter name="spec" transfer-ownership="none"> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="reset"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="resume"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="unprepare"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="write"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h">Write samples to the device.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h">the sample data</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8" c:type="gpointer"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </virtual-method> + <field name="element"> + <type name="AudioBaseSink" c:type="GstAudioBaseSink"/> + </field> + <field name="thread" readable="0" private="1"> + <type name="GLib.Thread" c:type="GThread*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioSinkClass" c:type="GstAudioSinkClass" glib:is-gtype-struct-for="AudioSink"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h">the parent class structure.</doc> + <type name="AudioBaseSinkClass" c:type="GstAudioBaseSinkClass"/> + </field> + <field name="open"> + <callback name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare"> + <callback name="prepare"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + <parameter name="spec" transfer-ownership="none"> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unprepare"> + <callback name="unprepare"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close"> + <callback name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="write"> + <callback name="write"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h">the sample data</doc> + <array length="2" zero-terminated="0" c:type="gpointer"> + <type name="guint8" c:type="gpointer"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="delay"> + <callback name="delay"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="reset"> + <callback name="reset"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pause"> + <callback name="pause"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="resume"> + <callback name="resume"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="extension"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h">class extension structure. Since: 1.18</doc> + <type name="AudioSinkClassExtension" c:type="GstAudioSinkClassExtension*"/> + </field> + </record> + <record name="AudioSinkClassExtension" c:type="GstAudioSinkClassExtension"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <field name="clear_all"> + <callback name="clear_all"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + </record> + <class name="AudioSrc" c:symbol-prefix="audio_src" c:type="GstAudioSrc" parent="AudioBaseSrc" glib:type-name="GstAudioSrc" glib:get-type="gst_audio_src_get_type" glib:type-struct="AudioSrcClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.c">This is the most simple base class for audio sources that only requires +subclasses to implement a set of simple functions: + +* `open()` :Open the device. +* `prepare()` :Configure the device with the specified format. +* `read()` :Read samples from the device. +* `reset()` :Unblock reads and flush the device. +* `delay()` :Get the number of samples in the device but not yet read. +* `unprepare()` :Undo operations done by prepare. +* `close()` :Close the device. + +All scheduling of samples and timestamps is done in this base class +together with #GstAudioBaseSrc using a default implementation of a +#GstAudioRingBuffer that uses threads.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <virtual-method name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="delay"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="prepare"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </instance-parameter> + <parameter name="spec" transfer-ownership="none"> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="read"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h">Read samples from the device.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h">the sample data</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8" c:type="gpointer"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timestamp" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h">a #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="reset"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="unprepare"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <field name="element"> + <type name="AudioBaseSrc" c:type="GstAudioBaseSrc"/> + </field> + <field name="thread" readable="0" private="1"> + <type name="GLib.Thread" c:type="GThread*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioSrcClass" c:type="GstAudioSrcClass" glib:is-gtype-struct-for="AudioSrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h">#GstAudioSrc class. Override the vmethod to implement +functionality.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h">the parent class.</doc> + <type name="AudioBaseSrcClass" c:type="GstAudioBaseSrcClass"/> + </field> + <field name="open"> + <callback name="open"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare"> + <callback name="prepare"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + <parameter name="spec" transfer-ownership="none"> + <type name="AudioRingBufferSpec" c:type="GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unprepare"> + <callback name="unprepare"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close"> + <callback name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="read"> + <callback name="read"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h">the sample data</doc> + <array length="2" zero-terminated="0" c:type="gpointer"> + <type name="guint8" c:type="gpointer"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timestamp" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h">a #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="delay"> + <callback name="delay"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="reset"> + <callback name="reset"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioStreamAlign" c:type="GstAudioStreamAlign" version="1.14" glib:type-name="GstAudioStreamAlign" glib:get-type="gst_audio_stream_align_get_type" c:symbol-prefix="audio_stream_align"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">#GstAudioStreamAlign provides a helper object that helps tracking audio +stream alignment and discontinuities, and detects discontinuities if +possible. + +See gst_audio_stream_align_new() for a description of its parameters and +gst_audio_stream_align_process() for the details of the processing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <constructor name="new" c:identifier="gst_audio_stream_align_new" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Allocate a new #GstAudioStreamAlign with the given configuration. All +processing happens according to sample rate @rate, until +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 +timestamp difference is considered a discontinuity. Once detected, +@discont_wait nanoseconds have to pass without going below the threshold +again until the output buffer is marked as a discontinuity. These can later +be re-configured with gst_audio_stream_align_set_alignment_threshold() and +gst_audio_stream_align_set_discont_wait().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a new #GstAudioStreamAlign. free with gst_audio_stream_align_free().</doc> + <type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/> + </return-value> + <parameters> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a sample rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="alignment_threshold" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a alignment threshold in nanoseconds</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="discont_wait" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">discont wait in nanoseconds</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <method name="copy" c:identifier="gst_audio_stream_align_copy" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Copy a GstAudioStreamAlign structure.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a new #GstAudioStreamAlign. free with gst_audio_stream_align_free.</doc> + <type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/> + </return-value> + <parameters> + <instance-parameter name="align" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="const GstAudioStreamAlign*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_audio_stream_align_free" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Free a GstAudioStreamAlign structure previously allocated with gst_audio_stream_align_new() +or gst_audio_stream_align_copy().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_alignment_threshold" c:identifier="gst_audio_stream_align_get_alignment_threshold" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Gets the currently configured alignment threshold.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="const GstAudioStreamAlign*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_discont_wait" c:identifier="gst_audio_stream_align_get_discont_wait" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Gets the currently configured discont wait.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="const GstAudioStreamAlign*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_rate" c:identifier="gst_audio_stream_align_get_rate" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Gets the currently configured sample rate.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="const GstAudioStreamAlign*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_samples_since_discont" c:identifier="gst_audio_stream_align_get_samples_since_discont" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Returns the number of samples that were processed since the last +discontinuity was detected.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">The number of samples processed since the last discontinuity.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="align" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="const GstAudioStreamAlign*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timestamp_at_discont" c:identifier="gst_audio_stream_align_get_timestamp_at_discont" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Timestamp that was passed when a discontinuity was detected, i.e. the first +timestamp after the discontinuity.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">The last timestamp at when a discontinuity was detected</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="align" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="const GstAudioStreamAlign*"/> + </instance-parameter> + </parameters> + </method> + <method name="mark_discont" c:identifier="gst_audio_stream_align_mark_discont" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Marks the next buffer as discontinuous and resets timestamp tracking.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/> + </instance-parameter> + </parameters> + </method> + <method name="process" c:identifier="gst_audio_stream_align_process" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Processes data with @timestamp and @n_samples, and returns the output +timestamp, duration and sample position together with a boolean to signal +whether a discontinuity was detected or not. All non-discontinuous data +will have perfect timestamps and durations. + +A discontinuity is detected once the difference between the actual +timestamp and the timestamp calculated from the sample count since the last +discontinuity differs by more than the alignment threshold for a duration +longer than discont wait. + +Note: In reverse playback, every buffer is considered discontinuous in the +context of buffer flags because the last sample of the previous buffer is +discontinuous with the first sample of the current one. However for this +function they are only considered discontinuous in reverse playback if the +first sample of the previous buffer is discontinuous with the last sample +of the current one.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">%TRUE if a discontinuity was detected, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="align" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/> + </instance-parameter> + <parameter name="discont" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">if this data is considered to be discontinuous</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstClockTime of the start of the data</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="n_samples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">number of samples to process</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="out_timestamp" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">output timestamp of the data</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="out_duration" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">output duration of the data</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="out_sample_position" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">output sample position of the start of the data</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="set_alignment_threshold" c:identifier="gst_audio_stream_align_set_alignment_threshold" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Sets @alignment_treshold as new alignment threshold for the following processing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/> + </instance-parameter> + <parameter name="alignment_threshold" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">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" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Sets @alignment_treshold as new discont wait for the following processing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/> + </instance-parameter> + <parameter name="discont_wait" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">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" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">Sets @rate as new sample rate for the following processing. If the sample +rate differs this implicitly marks the next data as discontinuous.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a #GstAudioStreamAlign</doc> + <type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/> + </instance-parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiostreamalign.c">a new sample rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + </record> + <function-macro name="CLOCK_TIME_TO_FRAMES" c:identifier="GST_CLOCK_TIME_TO_FRAMES" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h">Calculate frames from @clocktime and sample @rate.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h"/> + <parameters> + <parameter name="clocktime"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h">clock time</doc> + </parameter> + <parameter name="rate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h">sampling rate</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="FRAMES_TO_CLOCK_TIME" c:identifier="GST_FRAMES_TO_CLOCK_TIME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h">Calculate clocktime from sample @frames and @rate.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h"/> + <parameters> + <parameter name="frames"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h">sample frames</doc> + </parameter> + <parameter name="rate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h">sampling rate</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_AGGREGATOR" c:identifier="GST_IS_AUDIO_AGGREGATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_AGGREGATOR_CLASS" c:identifier="GST_IS_AUDIO_AGGREGATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_AGGREGATOR_CONVERT_PAD" c:identifier="GST_IS_AUDIO_AGGREGATOR_CONVERT_PAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_AGGREGATOR_CONVERT_PAD_CLASS" c:identifier="GST_IS_AUDIO_AGGREGATOR_CONVERT_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_AGGREGATOR_PAD" c:identifier="GST_IS_AUDIO_AGGREGATOR_PAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_AGGREGATOR_PAD_CLASS" c:identifier="GST_IS_AUDIO_AGGREGATOR_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_BASE_SINK" c:identifier="GST_IS_AUDIO_BASE_SINK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_BASE_SINK_CLASS" c:identifier="GST_IS_AUDIO_BASE_SINK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_BASE_SRC" c:identifier="GST_IS_AUDIO_BASE_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_BASE_SRC_CLASS" c:identifier="GST_IS_AUDIO_BASE_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_CD_SRC" c:identifier="GST_IS_AUDIO_CD_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_CD_SRC_CLASS" c:identifier="GST_IS_AUDIO_CD_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiocdsrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_CLOCK" c:identifier="GST_IS_AUDIO_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_CLOCK_CLASS" c:identifier="GST_IS_AUDIO_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_DECODER" c:identifier="GST_IS_AUDIO_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_DECODER_CLASS" c:identifier="GST_IS_AUDIO_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_ENCODER" c:identifier="GST_IS_AUDIO_ENCODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_ENCODER_CLASS" c:identifier="GST_IS_AUDIO_ENCODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_FILTER" c:identifier="GST_IS_AUDIO_FILTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_FILTER_CLASS" c:identifier="GST_IS_AUDIO_FILTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_RING_BUFFER" c:identifier="GST_IS_AUDIO_RING_BUFFER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_RING_BUFFER_CLASS" c:identifier="GST_IS_AUDIO_RING_BUFFER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_SINK" c:identifier="GST_IS_AUDIO_SINK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_SINK_CLASS" c:identifier="GST_IS_AUDIO_SINK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_SRC" c:identifier="GST_IS_AUDIO_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AUDIO_SRC_CLASS" c:identifier="GST_IS_AUDIO_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <constant name="META_TAG_AUDIO_CHANNELS_STR" value="channels" c:type="GST_META_TAG_AUDIO_CHANNELS_STR" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h">This metadata stays relevant as long as channels are unchanged.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_TAG_AUDIO_RATE_STR" value="rate" c:type="GST_META_TAG_AUDIO_RATE_STR" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h">This metadata stays relevant as long as sample rate is unchanged.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_TAG_AUDIO_STR" value="audio" c:type="GST_META_TAG_AUDIO_STR" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h">This metadata is relevant for audio streams.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="STREAM_VOLUME_GET_INTERFACE" c:identifier="GST_STREAM_VOLUME_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <interface name="StreamVolume" c:symbol-prefix="stream_volume" c:type="GstStreamVolume" glib:type-name="GstStreamVolume" glib:get-type="gst_stream_volume_get_type" glib:type-struct="StreamVolumeInterface"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">This interface is implemented by elements that provide a stream volume. Examples for +such elements are #volume and #playbin. + +Applications can use this interface to get or set the current stream volume. For this +the "volume" #GObject property can be used or the helper functions gst_stream_volume_set_volume() +and gst_stream_volume_get_volume(). This volume is always a linear factor, i.e. 0.0 is muted +1.0 is 100%. For showing the volume in a GUI it might make sense to convert it to +a different format by using gst_stream_volume_convert_volume(). Volume sliders should usually +use a cubic volume. + +Separate from the volume the stream can also be muted by the "mute" #GObject property or +gst_stream_volume_set_mute() and gst_stream_volume_get_mute(). + +Elements that provide some kind of stream volume should implement the "volume" and +"mute" #GObject properties and handle setting and getting of them properly. +The volume property is defined to be a linear volume factor.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <function name="convert_volume" c:identifier="gst_stream_volume_convert_volume"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">the converted volume</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <parameter name="from" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolumeFormat to convert from</doc> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + <parameter name="to" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolumeFormat to convert to</doc> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">Volume in @from format that should be converted</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </function> + <method name="get_mute" c:identifier="gst_stream_volume_get_mute"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">Returns %TRUE if the stream is muted</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="volume" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolume that should be used</doc> + <type name="StreamVolume" c:type="GstStreamVolume*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_volume" c:identifier="gst_stream_volume_get_volume"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">The current stream volume as linear factor</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="volume" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolume that should be used</doc> + <type name="StreamVolume" c:type="GstStreamVolume*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolumeFormat which should be returned</doc> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + </parameters> + </method> + <method name="set_mute" c:identifier="gst_stream_volume_set_mute"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="volume" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolume that should be used</doc> + <type name="StreamVolume" c:type="GstStreamVolume*"/> + </instance-parameter> + <parameter name="mute" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">Mute state that should be set</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_volume" c:identifier="gst_stream_volume_set_volume"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="volume" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolume that should be used</doc> + <type name="StreamVolume" c:type="GstStreamVolume*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolumeFormat of @val</doc> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">Linear volume factor that should be set</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <property name="mute" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="volume" writable="1" transfer-ownership="none"> + <type name="gdouble" c:type="gdouble"/> + </property> + </interface> + <enumeration name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h">Different representations of a stream volume. gst_stream_volume_convert_volume() +allows to convert between the different representations. + +Formulas to convert from a linear to a cubic or dB volume are +cbrt(val) and 20 * log10 (val).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <member name="linear" value="0" c:identifier="GST_STREAM_VOLUME_FORMAT_LINEAR"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h">Linear scale factor, 1.0 = 100%</doc> + </member> + <member name="cubic" value="1" c:identifier="GST_STREAM_VOLUME_FORMAT_CUBIC"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h">Cubic volume scale</doc> + </member> + <member name="db" value="2" c:identifier="GST_STREAM_VOLUME_FORMAT_DB"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h">Logarithmic volume scale (dB, amplitude not power)</doc> + </member> + </enumeration> + <record name="StreamVolumeInterface" c:type="GstStreamVolumeInterface" glib:is-gtype-struct-for="StreamVolume"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <field name="iface"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + </record> + <function name="audio_buffer_clip" c:identifier="gst_audio_buffer_clip" moved-to="AudioBuffer.clip"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">Clip the buffer to the given %GstSegment. + +After calling this function the caller does not own a reference to +@buffer anymore.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">The buffer to clip.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">sample rate.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="bpf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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="audio_buffer_map" c:identifier="gst_audio_buffer_map" moved-to="AudioBuffer.map" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">%TRUE if the map operation succeeded or %FALSE on failure</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">pointer to a #GstAudioBuffer</doc> + <type name="AudioBuffer" c:type="GstAudioBuffer*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">the #GstBuffer to be mapped</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-buffer.c">the access mode for the memory</doc> + <type name="Gst.MapFlags" c:type="GstMapFlags"/> + </parameter> + </parameters> + </function> + <function name="audio_buffer_reorder_channels" c:identifier="gst_audio_buffer_reorder_channels" moved-to="AudioBuffer.reorder_channels"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The buffer to reorder.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The %GstAudioFormat of the buffer.</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The number of channels.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="from" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The channel positions in the buffer.</doc> + <array length="2" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="to" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The channel positions to convert to.</doc> + <array length="2" zero-terminated="0" c:type="const 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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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. + +This function does not know the audio rate, therefore the caller is +responsible for re-setting the correct timestamp and duration to the +buffer. However, timestamp will be preserved if trim == 0, and duration +will also be preserved if there is no trimming to be done. Offset and +offset end will be preserved / updated. + +After calling this function the caller does not own a reference to +@buffer anymore.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">the truncated buffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">The buffer to truncate.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="bpf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.c">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"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Get the fallback channel-mask for the given number of channels. + +This function returns a reasonable fallback channel-mask and should be +called as a last resort when the specific channel map is unknown.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">a fallback channel-mask for @channels or 0 when there is no +mask and mono.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">the number of channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="audio_channel_mixer_new" c:identifier="gst_audio_channel_mixer_new" moved-to="AudioChannelMixer.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">Create a new channel mixer object for the given parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">a new #GstAudioChannelMixer object. + Free with gst_audio_channel_mixer_free() after usage.</doc> + <type name="AudioChannelMixer" c:type="GstAudioChannelMixer*"/> + </return-value> + <parameters> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">#GstAudioChannelMixerFlags</doc> + <type name="AudioChannelMixerFlags" c:type="GstAudioChannelMixerFlags"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="in_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">number of input channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="in_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">positions of input channels</doc> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </parameter> + <parameter name="out_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">number of output channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">positions of output channels</doc> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </parameter> + </parameters> + </function> + <function name="audio_channel_mixer_new_with_matrix" c:identifier="gst_audio_channel_mixer_new_with_matrix" moved-to="AudioChannelMixer.new_with_matrix" version="1.14" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">Create a new channel mixer object for the given parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">a new #GstAudioChannelMixer object. + Free with gst_audio_channel_mixer_free() after usage.</doc> + <type name="AudioChannelMixer" c:type="GstAudioChannelMixer*"/> + </return-value> + <parameters> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">#GstAudioChannelMixerFlags</doc> + <type name="AudioChannelMixerFlags" c:type="GstAudioChannelMixerFlags"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="in_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">number of input channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">number of output channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="matrix" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c">channel conversion matrix, m[@in_channels][@out_channels]. + If identity matrix, passthrough applies. If %NULL, a (potentially truncated) + identity matrix is generated.</doc> + <type name="gfloat" c:type="gfloat**"/> + </parameter> + </parameters> + </function> + <function name="audio_channel_positions_from_mask" c:identifier="gst_audio_channel_positions_from_mask"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Convert the @channels present in @channel_mask to a @position array +(which should have at least @channels entries ensured by caller). +If @channel_mask is set to 0, it is considered as 'not present' for purpose +of conversion. +A partially valid @channel_mask with less bits set than the number +of channels is considered valid.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">%TRUE if channel and channel mask are valid and could be converted</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The number of channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="channel_mask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The input channel_mask</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The + %GstAudioChannelPosition<!-- -->s</doc> + <array length="0" zero-terminated="0" c:type="GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + </parameters> + </function> + <function name="audio_channel_positions_to_mask" c:identifier="gst_audio_channel_positions_to_mask"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Convert the @position array of @channels channels to a bitmask. + +If @force_order is %TRUE it additionally checks if the channels are +in the order required by GStreamer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">%TRUE if the channel positions are valid and could be converted.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The %GstAudioChannelPositions</doc> + <array length="1" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The number of channels.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="force_order" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Only consider the GStreamer channel order.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="channel_mask" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">the output channel mask</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </function> + <function name="audio_channel_positions_to_string" c:identifier="gst_audio_channel_positions_to_string" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Converts @position to a human-readable string representation for +debugging purposes.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">a newly allocated string representing +@position</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The %GstAudioChannelPositions + to convert.</doc> + <array length="1" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The number of channels.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="audio_channel_positions_to_valid_order" c:identifier="gst_audio_channel_positions_to_valid_order"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Reorders the channel positions in @position from any order to +the GStreamer channel order.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">%TRUE if the channel positions are valid and reordering +was successful.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The channel positions to + reorder to.</doc> + <array length="1" zero-terminated="0" c:type="GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The number of channels.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="audio_check_valid_channel_positions" c:identifier="gst_audio_check_valid_channel_positions"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Checks if @position contains valid channel positions for +@channels channels. If @force_order is %TRUE it additionally +checks if the channels are in the order required by GStreamer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">%TRUE if the channel positions are valid.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The %GstAudioChannelPositions + to check.</doc> + <array length="1" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The number of channels.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="force_order" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Only consider the GStreamer channel order.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="audio_clipping_meta_api_get_type" c:identifier="gst_audio_clipping_meta_api_get_type"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="audio_clipping_meta_get_info" c:identifier="gst_audio_clipping_meta_get_info" moved-to="AudioClippingMeta.get_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="audio_downmix_meta_api_get_type" c:identifier="gst_audio_downmix_meta_api_get_type"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="audio_downmix_meta_get_info" c:identifier="gst_audio_downmix_meta_get_info" moved-to="AudioDownmixMeta.get_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="audio_format_build_integer" c:identifier="gst_audio_format_build_integer" moved-to="AudioFormat.build_integer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Construct a #GstAudioFormat with given parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a #GstAudioFormat or GST_AUDIO_FORMAT_UNKNOWN when no audio format +exists with the given parameters.</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </return-value> + <parameters> + <parameter name="sign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">signed or unsigned format</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="endianness" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">G_LITTLE_ENDIAN or G_BIG_ENDIAN</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">amount of bits used per sample</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="depth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">amount of used bits in @width</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="audio_format_fill_silence" c:identifier="gst_audio_format_fill_silence" moved-to="AudioFormat.fill_silence" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Fill @length bytes in @dest with silence samples for @info.</doc> + <doc-deprecated xml:space="preserve">Use gst_audio_format_info_fill_silence() instead.</doc-deprecated> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a #GstAudioFormatInfo</doc> + <type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/> + </parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a destination + to fill</doc> + <array length="2" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">the length to fill</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="audio_format_from_string" c:identifier="gst_audio_format_from_string" moved-to="AudioFormat.from_string"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Convert the @format string to its #GstAudioFormat.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">the #GstAudioFormat for @format or GST_AUDIO_FORMAT_UNKNOWN when the +string is not a known format.</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="audio_format_get_info" c:identifier="gst_audio_format_get_info" moved-to="AudioFormat.get_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Get the #GstAudioFormatInfo for @format</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">The #GstAudioFormatInfo for @format.</doc> + <type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">a #GstAudioFormat</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + </parameters> + </function> + <function name="audio_format_info_get_type" c:identifier="gst_audio_format_info_get_type"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="audio_format_to_string" c:identifier="gst_audio_format_to_string" moved-to="AudioFormat.to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + </parameters> + </function> + <function name="audio_formats_raw" c:identifier="gst_audio_formats_raw" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Return all the raw audio formats supported by GStreamer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">an array of #GstAudioFormat</doc> + <array length="0" zero-terminated="0" c:type="const GstAudioFormat*"> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </array> + </return-value> + <parameters> + <parameter name="len" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">the number of elements in the returned array</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="audio_get_channel_reorder_map" c:identifier="gst_audio_get_channel_reorder_map"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Returns a reorder map for @from to @to that can be used in +custom channel reordering code, e.g. to convert from or to the +GStreamer channel order. @from and @to must contain the same +number of positions and the same positions, only in a +different order. + +The resulting @reorder_map can be used for reordering by assigning +channel i of the input to channel reorder_map[i] of the output.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">%TRUE if the channel positions are valid and reordering +is possible.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The number of channels.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="from" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The channel positions to reorder from.</doc> + <array length="0" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="to" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The channel positions to reorder to.</doc> + <array length="0" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="reorder_map" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">Pointer to the reorder map.</doc> + <array length="0" zero-terminated="0" c:type="gint*"> + <type name="gint" c:type="gint"/> + </array> + </parameter> + </parameters> + </function> + <function name="audio_iec61937_frame_size" c:identifier="gst_audio_iec61937_frame_size"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">Calculated the size of the buffer expected by gst_audio_iec61937_payload() for +payloading type from @spec.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">the size or 0 if the given @type is not supported or cannot be +payloaded.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">the ringbufer spec</doc> + <type name="AudioRingBufferSpec" c:type="const GstAudioRingBufferSpec*"/> + </parameter> + </parameters> + </function> + <function name="audio_iec61937_payload" c:identifier="gst_audio_iec61937_payload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">Payloads @src in the form specified by IEC 61937 for the type from @spec and +stores the result in @dst. @src must contain exactly one frame of data and +the frame is not checked for errors.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">transfer-full: %TRUE if the payloading was successful, %FALSE +otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">a buffer containing the data to payload</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="src_n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">size of @src in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="dst" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">the destination buffer to store the + payloaded contents in. Should not overlap with @src</doc> + <array length="3" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="dst_n" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">size of @dst in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="spec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">the ringbufer spec for @src</doc> + <type name="AudioRingBufferSpec" c:type="const GstAudioRingBufferSpec*"/> + </parameter> + <parameter name="endianness" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c">the expected byte order of the payloaded data</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="audio_info_from_caps" c:identifier="gst_audio_info_from_caps" moved-to="AudioInfo.from_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Parse @caps and update @info.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">TRUE if @caps could be parsed</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="info" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstCaps</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="audio_info_init" c:identifier="gst_audio_info_init" moved-to="AudioInfo.init"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">Initialize @info with default values.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="info" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.c">a #GstAudioInfo</doc> + <type name="AudioInfo" c:type="GstAudioInfo*"/> + </parameter> + </parameters> + </function> + <function name="audio_level_meta_api_get_type" c:identifier="gst_audio_level_meta_api_get_type" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Return the #GType associated with #GstAudioLevelMeta.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">a #GType</doc> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="audio_level_meta_get_info" c:identifier="gst_audio_level_meta_get_info" moved-to="AudioLevelMeta.get_info" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Return the #GstMetaInfo associated with #GstAudioLevelMeta.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">a #GstMetaInfo</doc> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="audio_make_raw_caps" c:identifier="gst_audio_make_raw_caps" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">Return a generic raw audio caps for formats defined in @formats. +If @formats is %NULL returns a caps for all the supported raw audio formats, +see gst_audio_formats_raw().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">an audio @GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="formats" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">an array of raw #GstAudioFormat, or %NULL</doc> + <array length="1" zero-terminated="0" c:type="const GstAudioFormat*"> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">the size of @formats</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="layout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-format.c">the layout of audio samples</doc> + <type name="AudioLayout" c:type="GstAudioLayout"/> + </parameter> + </parameters> + </function> + <function name="audio_meta_api_get_type" c:identifier="gst_audio_meta_api_get_type"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <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" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">Create a new quantizer object with the given parameters. + +Output samples will be quantized to a multiple of @quantizer. Better +performance is achieved when @quantizer is a power of 2. + +Dithering and noise-shaping can be performed during quantization with +the @dither and @ns parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">a new #GstAudioQuantize. Free with gst_audio_quantize_free().</doc> + <type name="AudioQuantize" c:type="GstAudioQuantize*"/> + </return-value> + <parameters> + <parameter name="dither" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">a #GstAudioDitherMethod</doc> + <type name="AudioDitherMethod" c:type="GstAudioDitherMethod"/> + </parameter> + <parameter name="ns" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">a #GstAudioNoiseShapingMethod</doc> + <type name="AudioNoiseShapingMethod" c:type="GstAudioNoiseShapingMethod"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">#GstAudioQuantizeFlags</doc> + <type name="AudioQuantizeFlags" c:type="GstAudioQuantizeFlags"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">the #GstAudioFormat of the samples</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">the amount of channels in the samples</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="quantizer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-quantize.c">the quantizer to use</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="audio_reorder_channels" c:identifier="gst_audio_reorder_channels"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">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. + +Note: this function assumes the audio data is in interleaved layout</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">%TRUE if the reordering was possible.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The pointer to + the memory.</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The size of the memory.</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The %GstAudioFormat of the buffer.</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The number of channels.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="from" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The channel positions in the buffer.</doc> + <array length="3" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="to" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-channels.c">The channel positions to convert to.</doc> + <array length="3" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + </parameters> + </function> + <function name="audio_resampler_new" c:identifier="gst_audio_resampler_new" moved-to="AudioResampler.new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Make a new resampler.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="full" skip="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">The new #GstAudioResampler.</doc> + <type name="AudioResampler" c:type="GstAudioResampler*"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResamplerMethod</doc> + <type name="AudioResamplerMethod" c:type="GstAudioResamplerMethod"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">#GstAudioResamplerFlags</doc> + <type name="AudioResamplerFlags" c:type="GstAudioResamplerFlags"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the #GstAudioFormat</doc> + <type name="AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the number of channels</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="in_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">input rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">output rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="options" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">extra options</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="audio_resampler_options_set_quality" c:identifier="gst_audio_resampler_options_set_quality" moved-to="AudioResampler.options_set_quality"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">Set the parameters for resampling from @in_rate to @out_rate using @method +for @quality in @options.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstAudioResamplerMethod</doc> + <type name="AudioResamplerMethod" c:type="GstAudioResamplerMethod"/> + </parameter> + <parameter name="quality" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the quality</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="in_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the input rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">the output rate</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="options" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/audio-resampler.c">a #GstStructure</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="buffer_add_audio_clipping_meta" c:identifier="gst_buffer_add_audio_clipping_meta" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Attaches #GstAudioClippingMeta metadata to @buffer with the given parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the #GstAudioClippingMeta on @buffer.</doc> + <type name="AudioClippingMeta" c:type="GstAudioClippingMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">GstFormat of @start and @stop, GST_FORMAT_DEFAULT is samples</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Amount of audio to clip from start of buffer</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Amount of to clip from end of buffer</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="buffer_add_audio_downmix_meta" c:identifier="gst_buffer_add_audio_downmix_meta"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Attaches #GstAudioDownmixMeta metadata to @buffer with the given parameters. + +@matrix is an two-dimensional array of @to_channels times @from_channels +coefficients, i.e. the i-th output channels is constructed by multiplicating +the input channels with the coefficients in @matrix[i] and taking the sum +of the results.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the #GstAudioDownmixMeta on @buffer.</doc> + <type name="AudioDownmixMeta" c:type="GstAudioDownmixMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="from_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the channel positions + of the source</doc> + <array length="2" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="from_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">The number of channels of the source</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="to_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the channel positions of + the destination</doc> + <array length="4" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="to_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">The number of channels of the destination</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="matrix" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">The matrix coefficients.</doc> + <type name="gfloat" c:type="const gfloat**"/> + </parameter> + </parameters> + </function> + <function name="buffer_add_audio_level_meta" c:identifier="gst_buffer_add_audio_level_meta" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Attaches audio level information to @buffer. (RFC 6464)</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the #GstAudioLevelMeta on @buffer.</doc> + <type name="AudioLevelMeta" c:type="GstAudioLevelMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the -dBov from 0-127 (127 is silence).</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="voice_activity" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">whether the buffer contains voice activity.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="buffer_add_audio_meta" c:identifier="gst_buffer_add_audio_meta" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">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->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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the number of valid samples in the buffer</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="offsets" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">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->layout is %GST_AUDIO_LAYOUT_INTERLEAVED</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </function> + <function-macro name="buffer_get_audio_clipping_meta" c:identifier="gst_buffer_get_audio_clipping_meta" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="buffer_get_audio_downmix_meta" c:identifier="gst_buffer_get_audio_downmix_meta" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function name="buffer_get_audio_downmix_meta_for_channels" c:identifier="gst_buffer_get_audio_downmix_meta_for_channels"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Find the #GstAudioDownmixMeta on @buffer for the given destination +channel positions.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the #GstAudioDownmixMeta on @buffer.</doc> + <type name="AudioDownmixMeta" c:type="GstAudioDownmixMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="to_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the channel positions of + the destination</doc> + <array length="2" zero-terminated="0" c:type="const GstAudioChannelPosition*"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition"/> + </array> + </parameter> + <parameter name="to_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">The number of channels of the destination</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_audio_level_meta" c:identifier="gst_buffer_get_audio_level_meta" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">Find the #GstAudioLevelMeta on @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">the #GstAudioLevelMeta or %NULL when +there is no such metadata on @buffer.</doc> + <type name="AudioLevelMeta" c:type="GstAudioLevelMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function-macro name="buffer_get_audio_meta" c:identifier="gst_buffer_get_audio_meta" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiometa.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function name="stream_volume_convert_volume" c:identifier="gst_stream_volume_convert_volume" moved-to="StreamVolume.convert_volume"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">the converted volume</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <parameter name="from" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolumeFormat to convert from</doc> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + <parameter name="to" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">#GstStreamVolumeFormat to convert to</doc> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/audio/streamvolume.c">Volume in @from format that should be converted</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstBadAudio-1.0.gir b/girs/GstBadAudio-1.0.gir new file mode 100644 index 0000000000..9ba916248b --- /dev/null +++ b/girs/GstBadAudio-1.0.gir @@ -0,0 +1,1479 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <include name="GstAudio" version="1.0"/> + <include name="GstBase" version="1.0"/> + <package name="gstreamer-bad-audio-1.0"/> + <namespace name="GstBadAudio" version="1.0" shared-library="libgstbadaudio-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="IS_NONSTREAM_AUDIO_DECODER" c:identifier="GST_IS_NONSTREAM_AUDIO_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_NONSTREAM_AUDIO_DECODER_CLASS" c:identifier="GST_IS_NONSTREAM_AUDIO_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLANAR_AUDIO_ADAPTER" c:identifier="GST_IS_PLANAR_AUDIO_ADAPTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLANAR_AUDIO_ADAPTER_CLASS" c:identifier="GST_IS_PLANAR_AUDIO_ADAPTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NONSTREAM_AUDIO_DECODER" c:identifier="GST_NONSTREAM_AUDIO_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NONSTREAM_AUDIO_DECODER_CAST" c:identifier="GST_NONSTREAM_AUDIO_DECODER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NONSTREAM_AUDIO_DECODER_CLASS" c:identifier="GST_NONSTREAM_AUDIO_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NONSTREAM_AUDIO_DECODER_GET_CLASS" c:identifier="GST_NONSTREAM_AUDIO_DECODER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NONSTREAM_AUDIO_DECODER_LOCK_MUTEX" c:identifier="GST_NONSTREAM_AUDIO_DECODER_LOCK_MUTEX" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Locks the decoder mutex. + +Internally, the mutex is locked before one of the class vfuncs are +called, when position and duration queries are handled, and when +properties are set/retrieved. + +Derived classes should call lock during decoder related modifications +(for example, setting/clearing filter banks), when at the same time +audio might get decoded. An example are configuration changes that +happen when properties are set. Properties might be set from another +thread, so while the derived decoder is reconfigured, the mutex +should be locked.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">base nonstream audio codec instance</doc> + </parameter> + </parameters> + </function-macro> + <constant name="NONSTREAM_AUDIO_DECODER_SINK_NAME" value="sink" c:type="GST_NONSTREAM_AUDIO_DECODER_SINK_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The name of the template for the sink pad.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="NONSTREAM_AUDIO_DECODER_SINK_PAD" c:identifier="GST_NONSTREAM_AUDIO_DECODER_SINK_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Gives the pointer to the sink #GstPad object of the element.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">base nonstream audio codec instance</doc> + </parameter> + </parameters> + </function-macro> + <constant name="NONSTREAM_AUDIO_DECODER_SRC_NAME" value="src" c:type="GST_NONSTREAM_AUDIO_DECODER_SRC_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The name of the template for the source pad.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="NONSTREAM_AUDIO_DECODER_SRC_PAD" c:identifier="GST_NONSTREAM_AUDIO_DECODER_SRC_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Gives the pointer to the source #GstPad object of the element.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">base nonstream audio codec instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="NONSTREAM_AUDIO_DECODER_UNLOCK_MUTEX" c:identifier="GST_NONSTREAM_AUDIO_DECODER_UNLOCK_MUTEX" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="NonstreamAudioDecoder" c:symbol-prefix="nonstream_audio_decoder" c:type="GstNonstreamAudioDecoder" parent="Gst.Element" abstract="1" glib:type-name="GstNonstreamAudioDecoder" glib:get-type="gst_nonstream_audio_decoder_get_type" glib:type-struct="NonstreamAudioDecoderClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">This base class is for decoders which do not operate on a streaming model. +That is: they load the encoded media at once, as part of an initialization, +and afterwards can decode samples (sometimes referred to as "rendering the +samples"). + +This sets it apart from GstAudioDecoder, which is a base class for +streaming audio decoders. + +The base class is conceptually a mix between decoder and parser. This is +unavoidable, since virtually no format that isn't streaming based has a +clear distinction between parsing and decoding. As a result, this class +also handles seeking. + +Non-streaming audio formats tend to have some characteristics unknown to +more "regular" bitstreams. These include subsongs and looping. + +Subsongs are a set of songs-within-a-song. An analogy would be a multitrack +recording, where each track is its own song. The first subsong is typically +the "main" one. Subsongs were popular for video games to enable context- +aware music; for example, subsong `#0` would be the "main" song, `#1` would be +an alternate song playing when a fight started, `#2` would be heard during +conversations etc. The base class is designed to always have at least one +subsong. If the subclass doesn't provide any, the base class creates a +"pseudo" subsong, which is actually the whole song. +Downstream is informed about the subsong using a table of contents (TOC), +but only if there are at least 2 subsongs. + +Looping refers to jumps within the song, typically backwards to the loop +start (although bi-directional looping is possible). The loop is defined +by a chronological start and end; once the playback position reaches the +loop end, it jumps back to the loop start. +Depending on the subclass, looping may not be possible at all, or it +may only be possible to enable/disable it (that is, either no looping, or +an infinite amount of loops), or it may allow for defining a finite number +of times the loop is repeated. +Looping can affect output in two ways. Either, the playback position is +reset to the start of the loop, similar to what happens after a seek event. +Or, it is not reset, so the pipeline sees playback steadily moving forwards, +the playback position monotonically increasing. However, seeking must +always happen within the confines of the defined subsong duration; for +example, if a subsong is 2 minutes long, steady playback is at 5 minutes +(because infinite looping is enabled), then seeking will still place the +position within the 2 minute period. +Loop count 0 means no looping. Loop count -1 means infinite looping. +Nonzero positive values indicate how often a loop shall occur. + +If the initial subsong and loop count are set to values the subclass does +not support, the subclass has a chance to correct these values. +@get_property then reports the corrected versions. + +The base class operates as follows: +* Unloaded mode + - Initial values are set. If a current subsong has already been + defined (for example over the command line with gst-launch), then + the subsong index is copied over to current_subsong . + Same goes for the num-loops and output-mode properties. + Media is NOT loaded yet. + - Once the sinkpad is activated, the process continues. The sinkpad is + activated in push mode, and the class accumulates the incoming media + data in an adapter inside the sinkpad's chain function until either an + EOS event is received from upstream, or the number of bytes reported + by upstream is reached. Then it loads the media, and starts the decoder + output task. + - If upstream cannot respond to the size query (in bytes) of @load_from_buffer + fails, an error is reported, and the pipeline stops. + - If there are no errors, @load_from_buffer is called to load the media. The + subclass must at least call gst_nonstream_audio_decoder_set_output_format() + there, and is free to make use of the initial subsong, output mode, and + position. If the actual output mode or position differs from the initial + value,it must set the initial value to the actual one (for example, if + the actual starting position is always 0, set *initial_position to 0). + If loading is unsuccessful, an error is reported, and the pipeline + stops. Otherwise, the base class calls @get_current_subsong to retrieve + the actual current subsong, @get_subsong_duration to report the current + subsong's duration in a duration event and message, and @get_subsong_tags + to send tags downstream in an event (these functions are optional; if + set to NULL, the associated operation is skipped). Afterwards, the base + class switches to loaded mode, and starts the decoder output task. + +* Loaded mode</title> + - Inside the decoder output task, the base class repeatedly calls @decode, + which returns a buffer with decoded, ready-to-play samples. If the + subclass reached the end of playback, @decode returns FALSE, otherwise + TRUE. + - Upon reaching a loop end, subclass either ignores that, or loops back + to the beginning of the loop. In the latter case, if the output mode is set + to LOOPING, the subclass must call gst_nonstream_audio_decoder_handle_loop() + *after* the playback position moved to the start of the loop. In + STEADY mode, the subclass must *not* call this function. + Since many decoders only provide a callback for when the looping occurs, + and that looping occurs inside the decoding operation itself, the following + mechanism for subclass is suggested: set a flag inside such a callback. + Then, in the next @decode call, before doing the decoding, check this flag. + If it is set, gst_nonstream_audio_decoder_handle_loop() is called, and the + flag is cleared. + (This function call is necessary in LOOPING mode because it updates the + current segment and makes sure the next buffer that is sent downstream + has its DISCONT flag set.) + - When the current subsong is switched, @set_current_subsong is called. + If it fails, a warning is reported, and nothing else is done. Otherwise, + it calls @get_subsong_duration to get the new current subsongs's + duration, @get_subsong_tags to get its tags, reports a new duration + (i.e. it sends a duration event downstream and generates a duration + message), updates the current segment, and sends the subsong's tags in + an event downstream. (If @set_current_subsong has been set to NULL by + the subclass, attempts to set a current subsong are ignored; likewise, + if @get_subsong_duration is NULL, no duration is reported, and if + @get_subsong_tags is NULL, no tags are sent downstream.) + - When an attempt is made to switch the output mode, it is checked against + the bitmask returned by @get_supported_output_modes. If the proposed + new output mode is supported, the current segment is updated + (it is open-ended in STEADY mode, and covers the (sub)song length in + LOOPING mode), and the subclass' @set_output_mode function is called + unless it is set to NULL. Subclasses should reset internal loop counters + in this function. + +The relationship between (sub)song duration, output mode, and number of loops +is defined this way (this is all done by the base class automatically): + +* Segments have their duration and stop values set to GST_CLOCK_TIME_NONE in + STEADY mode, and to the duration of the (sub)song in LOOPING mode. + +* The duration that is returned to a DURATION query is always the duration + of the (sub)song, regardless of number of loops or output mode. The same + goes for DURATION messages and tags. + +* If the number of loops is >0 or -1, durations of TOC entries are set to + the duration of the respective subsong in LOOPING mode and to G_MAXINT64 in + STEADY mode. If the number of loops is 0, entry durations are set to the + subsong duration regardless of the output mode.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <virtual-method name="decide_allocation"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="decode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="num_samples" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_current_subsong"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_main_tags"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_num_loops"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_num_subsongs"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_subsong_duration"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_subsong_tags"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_supported_output_modes"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="load_from_buffer"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="source_data" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="initial_subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initial_subsong_mode" transfer-ownership="none"> + <type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/> + </parameter> + <parameter name="initial_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="initial_output_mode" transfer-ownership="none"> + <type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode*"/> + </parameter> + <parameter name="initial_num_loops" transfer-ownership="none"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="load_from_custom"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="initial_subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initial_subsong_mode" transfer-ownership="none"> + <type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/> + </parameter> + <parameter name="initial_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="initial_output_mode" transfer-ownership="none"> + <type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode*"/> + </parameter> + <parameter name="initial_num_loops" transfer-ownership="none"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="negotiate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="propose_allocation"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="seek"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="new_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_current_subsong"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initial_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_num_loops"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="num_loops" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_output_mode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode"/> + </parameter> + <parameter name="current_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_subsong_mode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/> + </parameter> + <parameter name="initial_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="tell"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="allocate_output_buffer" c:identifier="gst_nonstream_audio_decoder_allocate_output_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Allocates an output buffer with the internally configured buffer pool. + +This function may only be called from within @load_from_buffer, +@load_from_custom, and @decode.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Newly allocated output buffer, or NULL +if allocation failed</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Decoder instance</doc> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Size of the output buffer, in bytes</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="get_downstream_info" c:identifier="gst_nonstream_audio_decoder_get_downstream_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Gets sample format, sample rate, channel count from the allowed srcpad caps. + +This is useful for when the subclass wishes to adjust one or more output +parameters to whatever downstream is supporting. For example, the output +sample rate is often a freely adjustable value in module players. + +This function tries to find a value inside the srcpad peer's caps for +@format, @sample_rate, @num_chnanels . Any of these can be NULL; they +(and the corresponding downstream caps) are then skipped while retrieving +information. Non-fixated caps are fixated first; the value closest to +their present value is then chosen. For example, if the variables pointed +to by the arguments are GST_AUDIO_FORMAT_16, 48000 Hz, and 2 channels, +and the downstream caps are: + +"audio/x-raw, format={S16LE,S32LE}, rate=[1,32000], channels=[1,MAX]" + +Then @format and @channels stay the same, while @sample_rate is set to 32000 Hz. +This way, the initial values the the variables pointed to by the arguments +are set to can be used as default output values. Note that if no downstream +caps can be retrieved, then this function does nothing, therefore it is +necessary to ensure that @format, @sample_rate, and @channels have valid +initial values. + +Decoder lock is not held by this function, so it can be called from within +any of the class vfuncs.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">a #GstNonstreamAudioDecoder</doc> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">#GstAudioFormat value to fill with a sample format</doc> + <type name="GstAudio.AudioFormat" c:type="GstAudioFormat*"/> + </parameter> + <parameter name="sample_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Integer to fill with a sample rate</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="num_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Integer to fill with a channel count</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="handle_loop" c:identifier="gst_nonstream_audio_decoder_handle_loop"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Reports that a loop has been completed and creates a new appropriate +segment for the next loop. + +@new_position exists because a loop may not start at the beginning. + +This function is only useful for subclasses which can be in the +GST_NONSTREAM_AUDIO_OUTPUT_MODE_LOOPING output mode, since in the +GST_NONSTREAM_AUDIO_OUTPUT_MODE_STEADY output mode, this function +does nothing. See #GstNonstreamAudioOutputMode for more details. + +The subclass calls this during playback when it loops. It produces +a new segment with updated base time and internal time values, to allow +for seamless looping. It does *not* check the number of elapsed loops; +this is up the subclass. + +Note that if this function is called, then it must be done after the +last samples of the loop have been decoded and pushed downstream. + +This function must be called with the decoder mutex lock held, since it +is typically called from within @decode (which in turn are called with +the lock already held).</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">a #GstNonstreamAudioDecoder +@new_position New position the next loop starts with</doc> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="new_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_output_format" c:identifier="gst_nonstream_audio_decoder_set_output_format"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Sets the output caps by means of a GstAudioInfo structure. + +This must be called latest in the first @decode call, to ensure src caps are +set before decoded samples are sent downstream. Typically, this is called +from inside @load_from_buffer or @load_from_custom. + +This function must be called with the decoder mutex lock held, since it +is typically called from within the aforementioned vfuncs (which in turn +are called with the lock already held).</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">TRUE if setting the output format succeeded, FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">a #GstNonstreamAudioDecoder</doc> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="audio_info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Valid audio info structure containing the output format</doc> + <type name="GstAudio.AudioInfo" c:type="const GstAudioInfo*"/> + </parameter> + </parameters> + </method> + <method name="set_output_format_simple" c:identifier="gst_nonstream_audio_decoder_set_output_format_simple"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Convenience function; sets the output caps by means of common parameters. + +Internally, this fills a GstAudioInfo structure and calls +gst_nonstream_audio_decoder_set_output_format().</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">TRUE if setting the output format succeeded, FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">a #GstNonstreamAudioDecoder</doc> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </instance-parameter> + <parameter name="sample_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Output sample rate to use, in Hz</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="sample_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Output sample format to use</doc> + <type name="GstAudio.AudioFormat" c:type="GstAudioFormat"/> + </parameter> + <parameter name="num_channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Number of output channels to use</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <property name="current-subsong" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="num-loops" writable="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <property name="output-mode" introspectable="0" writable="1" transfer-ownership="none"> + <type/> + </property> + <property name="subsong-mode" introspectable="0" writable="1" transfer-ownership="none"> + <type/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="upstream_size"> + <type name="gint64" c:type="gint64"/> + </field> + <field name="loaded_mode"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="input_data_adapter"> + <type name="GstBase.Adapter" c:type="GstAdapter*"/> + </field> + <field name="current_subsong"> + <type name="guint" c:type="guint"/> + </field> + <field name="subsong_mode"> + <type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/> + </field> + <field name="subsong_duration"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="output_mode"> + <type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode"/> + </field> + <field name="num_loops"> + <type name="gint" c:type="gint"/> + </field> + <field name="output_format_changed"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="output_audio_info"> + <type name="GstAudio.AudioInfo" c:type="GstAudioInfo"/> + </field> + <field name="cur_pos_in_samples"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="num_decoded_samples"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="cur_segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="discont"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="toc"> + <type name="Gst.Toc" c:type="GstToc*"/> + </field> + <field name="allocator"> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </field> + <field name="allocation_params"> + <type name="Gst.AllocationParams" c:type="GstAllocationParams"/> + </field> + <field name="mutex"> + <type name="GLib.Mutex" c:type="GMutex"/> + </field> + </class> + <record name="NonstreamAudioDecoderClass" c:type="GstNonstreamAudioDecoderClass" glib:is-gtype-struct-for="NonstreamAudioDecoder"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Subclasses can override any of the available optional virtual methods or not, as +needed. At minimum, @load_from_buffer (or @load_from_custom), @get_supported_output_modes, +and @decode need to be overridden. + +All functions are called with a locked decoder mutex. + +> If GST_ELEMENT_ERROR, GST_ELEMENT_WARNING, or GST_ELEMENT_INFO are called from +> inside one of these functions, it is strongly recommended to unlock the decoder mutex +> before and re-lock it after these macros to prevent potential deadlocks in case the +> application does something with the element when it receives an ERROR/WARNING/INFO +> message. Same goes for gst_element_post_message() calls and non-serialized events. + +By default, this class works by reading media data from the sinkpad, and then commencing +playback. Some decoders cannot be given data from a memory block, so the usual way of +reading all upstream data and passing it to @load_from_buffer doesn't work then. In this case, +set the value of loads_from_sinkpad to FALSE. This changes the way this class operates; +it does not require a sinkpad to exist anymore, and will call @load_from_custom instead. +One example of a decoder where this makes sense is UADE (Unix Amiga Delitracker Emulator). +For some formats (such as TFMX), it needs to do the file loading by itself. +Since most decoders can read input data from a memory block, the default value of +loads_from_sinkpad is TRUE.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <field name="element_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The parent class structure</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="loads_from_sinkpad"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="seek"> + <callback name="seek"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="new_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="tell"> + <callback name="tell"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="load_from_buffer"> + <callback name="load_from_buffer"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="source_data" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="initial_subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initial_subsong_mode" transfer-ownership="none"> + <type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/> + </parameter> + <parameter name="initial_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="initial_output_mode" transfer-ownership="none"> + <type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode*"/> + </parameter> + <parameter name="initial_num_loops" transfer-ownership="none"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="load_from_custom"> + <callback name="load_from_custom"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="initial_subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initial_subsong_mode" transfer-ownership="none"> + <type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/> + </parameter> + <parameter name="initial_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="initial_output_mode" transfer-ownership="none"> + <type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode*"/> + </parameter> + <parameter name="initial_num_loops" transfer-ownership="none"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_main_tags"> + <callback name="get_main_tags"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_current_subsong"> + <callback name="set_current_subsong"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initial_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_current_subsong"> + <callback name="get_current_subsong"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_num_subsongs"> + <callback name="get_num_subsongs"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_subsong_duration"> + <callback name="get_subsong_duration"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_subsong_tags"> + <callback name="get_subsong_tags"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="subsong" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_subsong_mode"> + <callback name="set_subsong_mode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/> + </parameter> + <parameter name="initial_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_num_loops"> + <callback name="set_num_loops"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="num_loops" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_num_loops"> + <callback name="get_num_loops"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_supported_output_modes"> + <callback name="get_supported_output_modes"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_output_mode"> + <callback name="set_output_mode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode"/> + </parameter> + <parameter name="current_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decode"> + <callback name="decode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="num_samples" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="negotiate"> + <callback name="negotiate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decide_allocation"> + <callback name="decide_allocation"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="propose_allocation"> + <callback name="propose_allocation"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dec" transfer-ownership="none"> + <type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The output mode defines how the output behaves with regards to looping. Either the playback position is +moved back to the beginning of the loop, acting like a backwards seek, or it increases steadily, as if +loop were "unrolled".</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <member name="looping" value="0" c:identifier="GST_NONSTREAM_AUDIO_OUTPUT_MODE_LOOPING"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Playback position is moved back to the beginning of the loop</doc> + </member> + <member name="steady" value="1" c:identifier="GST_NONSTREAM_AUDIO_OUTPUT_MODE_STEADY"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Playback position increases steadily, even when looping</doc> + </member> + </enumeration> + <enumeration name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The subsong mode defines how the decoder shall handle subsongs.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/> + <member name="single" value="0" c:identifier="GST_NONSTREAM_AUDIO_SUBSONG_MODE_SINGLE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Only the current subsong is played</doc> + </member> + <member name="all" value="1" c:identifier="GST_NONSTREAM_AUDIO_SUBSONG_MODE_ALL"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">All subsongs are played (current subsong index is ignored)</doc> + </member> + <member name="decoder_default" value="2" c:identifier="GST_NONSTREAM_AUDIO_SUBSONG_MODE_DECODER_DEFAULT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Use decoder specific default behavior</doc> + </member> + </enumeration> + <function-macro name="PLANAR_AUDIO_ADAPTER" c:identifier="GST_PLANAR_AUDIO_ADAPTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLANAR_AUDIO_ADAPTER_CLASS" c:identifier="GST_PLANAR_AUDIO_ADAPTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLANAR_AUDIO_ADAPTER_GET_CLASS" c:identifier="GST_PLANAR_AUDIO_ADAPTER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="PlanarAudioAdapter" c:symbol-prefix="planar_audio_adapter" c:type="GstPlanarAudioAdapter" parent="GObject.Object" glib:type-name="GstPlanarAudioAdapter" glib:get-type="gst_planar_audio_adapter_get_type" glib:type-struct="PlanarAudioAdapterClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">This class is similar to GstAdapter, but it is made to work with +non-interleaved (planar) audio buffers. Before using, an audio format +must be configured with gst_planar_audio_adapter_configure()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <constructor name="new" c:identifier="gst_planar_audio_adapter_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Creates a new #GstPlanarAudioAdapter. Free with g_object_unref().</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a new #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </return-value> + </constructor> + <method name="available" c:identifier="gst_planar_audio_adapter_available"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Gets the maximum amount of samples available, that is it returns the maximum +value that can be supplied to gst_planar_audio_adapter_get_buffer() without +that function returning %NULL.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">number of samples available in @adapter</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_planar_audio_adapter_clear"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Removes all buffers from @adapter.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="configure" c:identifier="gst_planar_audio_adapter_configure"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Sets up the @adapter to handle audio data of the specified audio format. +Note that this will internally clear the adapter and re-initialize it.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstAudioInfo describing the format of the audio data</doc> + <type name="GstAudio.AudioInfo" c:type="const GstAudioInfo*"/> + </parameter> + </parameters> + </method> + <method name="distance_from_discont" c:identifier="gst_planar_audio_adapter_distance_from_discont"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="dts_at_discont" c:identifier="gst_planar_audio_adapter_dts_at_discont"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the DTS that was on the last buffer with the GST_BUFFER_FLAG_DISCONT +flag, or GST_CLOCK_TIME_NONE.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The DTS at the last discont or GST_CLOCK_TIME_NONE.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="flush" c:identifier="gst_planar_audio_adapter_flush"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Flushes the first @to_flush samples in the @adapter. The caller must ensure +that at least this many samples are available.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + <parameter name="to_flush" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">the number of samples to flush</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="get_buffer" c:identifier="gst_planar_audio_adapter_get_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Returns a #GstBuffer containing the first @nsamples of the @adapter, but +does not flush them from the adapter. +Use gst_planar_audio_adapter_take_buffer() for flushing at the same time. + +The map @flags can be used to give an optimization hint to this function. +When the requested buffer is meant to be mapped only for reading, it might +be possible to avoid copying memory in some cases. + +Caller owns a reference to the returned buffer. gst_buffer_unref() after +usage. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstBuffer containing the first + @nsamples of the adapter, or %NULL if @nsamples samples are not + available. gst_buffer_unref() when no longer needed.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + <parameter name="nsamples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">the number of samples to get</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">hint the intended use of the returned buffer</doc> + <type name="Gst.MapFlags" c:type="GstMapFlags"/> + </parameter> + </parameters> + </method> + <method name="offset_at_discont" c:identifier="gst_planar_audio_adapter_offset_at_discont"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the offset that was on the last buffer with the GST_BUFFER_FLAG_DISCONT +flag, or GST_BUFFER_OFFSET_NONE.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The offset at the last discont or GST_BUFFER_OFFSET_NONE.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="prev_dts" c:identifier="gst_planar_audio_adapter_prev_dts"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the dts that was before the current sample in the adapter. When +@distance is given, the amount of bytes between the dts and the current +position is returned. + +The dts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when +the adapter is first created or when it is cleared. This also means that +before the first sample with a dts is removed from the adapter, the dts +and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The previously seen dts.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + <parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">pointer to location for distance, or %NULL</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="prev_offset" c:identifier="gst_planar_audio_adapter_prev_offset"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the offset that was before the current sample in the adapter. When +@distance is given, the amount of samples between the offset and the current +position is returned. + +The offset is reset to GST_BUFFER_OFFSET_NONE and the distance is set to 0 +when the adapter is first created or when it is cleared. This also means that +before the first sample with an offset is removed from the adapter, the +offset and distance returned are GST_BUFFER_OFFSET_NONE and 0 respectively.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The previous seen offset.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + <parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">pointer to a location for distance, or %NULL</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="prev_pts" c:identifier="gst_planar_audio_adapter_prev_pts"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the pts that was before the current sample in the adapter. When +@distance is given, the amount of samples between the pts and the current +position is returned. + +The pts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when +the adapter is first created or when it is cleared. This also means that before +the first sample with a pts is removed from the adapter, the pts +and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The previously seen pts.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + <parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">pointer to location for distance, or %NULL</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="pts_at_discont" c:identifier="gst_planar_audio_adapter_pts_at_discont"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the PTS that was on the last buffer with the GST_BUFFER_FLAG_DISCONT +flag, or GST_CLOCK_TIME_NONE.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The PTS at the last discont or GST_CLOCK_TIME_NONE.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_planar_audio_adapter_push"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Adds the data from @buf to the data stored inside @adapter and takes +ownership of the buffer.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + <parameter name="buf" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstBuffer to queue in the adapter</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="take_buffer" c:identifier="gst_planar_audio_adapter_take_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Returns a #GstBuffer containing the first @nsamples bytes of the +@adapter. The returned bytes will be flushed from the adapter. + +See gst_planar_audio_adapter_get_buffer() for more details. + +Caller owns a reference to the returned buffer. gst_buffer_unref() after +usage. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstBuffer containing the first + @nsamples of the adapter, or %NULL if @nsamples samples are not + available. gst_buffer_unref() when no longer needed.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc> + <type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/> + </instance-parameter> + <parameter name="nsamples" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">the number of samples to take</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">hint the intended use of the returned buffer</doc> + <type name="Gst.MapFlags" c:type="GstMapFlags"/> + </parameter> + </parameters> + </method> + </class> + <record name="PlanarAudioAdapterClass" c:type="GstPlanarAudioAdapterClass" disguised="1" glib:is-gtype-struct-for="PlanarAudioAdapter"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/> + </record> + </namespace> +</repository> diff --git a/girs/GstBase-1.0.gir b/girs/GstBase-1.0.gir new file mode 100644 index 0000000000..227002dc89 --- /dev/null +++ b/girs/GstBase-1.0.gir @@ -0,0 +1,14254 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="1.0"/> + <package name="gstreamer-base-1.0"/> + <c:include name="gst/base/base.h"/> + <namespace name="GstBase" version="1.0" shared-library="libgstbase-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="ADAPTER" c:identifier="GST_ADAPTER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ADAPTER_CLASS" c:identifier="GST_ADAPTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ADAPTER_GET_CLASS" c:identifier="GST_ADAPTER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AGGREGATOR" c:identifier="GST_AGGREGATOR" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AGGREGATOR_CAST" c:identifier="GST_AGGREGATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AGGREGATOR_CLASS" c:identifier="GST_AGGREGATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AGGREGATOR_GET_CLASS" c:identifier="GST_AGGREGATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AGGREGATOR_PAD" c:identifier="GST_AGGREGATOR_PAD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AGGREGATOR_PAD_CAST" c:identifier="GST_AGGREGATOR_PAD_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AGGREGATOR_PAD_CLASS" c:identifier="GST_AGGREGATOR_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AGGREGATOR_PAD_GET_CLASS" c:identifier="GST_AGGREGATOR_PAD_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AGGREGATOR_SRC_PAD" c:identifier="GST_AGGREGATOR_SRC_PAD" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">Convenience macro to access the source pad of #GstAggregator</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="agg"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">a #GstAggregator</doc> + </parameter> + </parameters> + </function-macro> + <class name="Adapter" c:symbol-prefix="adapter" c:type="GstAdapter" parent="GObject.Object" glib:type-name="GstAdapter" glib:get-type="gst_adapter_get_type" glib:type-struct="AdapterClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">This class is for elements that receive buffers in an undesired size. +While for example raw video contains one image per buffer, the same is not +true for a lot of other formats, especially those that come directly from +a file. So if you have undefined buffer sizes and require a specific size, +this object is for you. + +An adapter is created with gst_adapter_new(). It can be freed again with +g_object_unref(). + +The theory of operation is like this: All buffers received are put +into the adapter using gst_adapter_push() and the data is then read back +in chunks of the desired size using gst_adapter_map()/gst_adapter_unmap() +and/or gst_adapter_copy(). After the data has been processed, it is freed +using gst_adapter_unmap(). + +Other methods such as gst_adapter_take() and gst_adapter_take_buffer() +combine gst_adapter_map() and gst_adapter_unmap() in one method and are +potentially more convenient for some use cases. + +For example, a sink pad's chain function that needs to pass data to a library +in 512-byte chunks could be implemented like this: +|[<!-- language="C" --> +static GstFlowReturn +sink_pad_chain (GstPad *pad, GstObject *parent, GstBuffer *buffer) +{ + MyElement *this; + GstAdapter *adapter; + GstFlowReturn ret = GST_FLOW_OK; + + this = MY_ELEMENT (parent); + + adapter = this->adapter; + + // put buffer into adapter + gst_adapter_push (adapter, buffer); + + // while we can read out 512 bytes, process them + while (gst_adapter_available (adapter) >= 512 && ret == GST_FLOW_OK) { + const guint8 *data = gst_adapter_map (adapter, 512); + // use flowreturn as an error value + ret = my_library_foo (data); + gst_adapter_unmap (adapter); + gst_adapter_flush (adapter, 512); + } + return ret; +} +]| + +For another example, a simple element inside GStreamer that uses #GstAdapter +is the libvisual element. + +An element using #GstAdapter in its sink pad chain function should ensure that +when the FLUSH_STOP event is received, that any queued data is cleared using +gst_adapter_clear(). Data should also be cleared or processed on EOS and +when changing state from %GST_STATE_PAUSED to %GST_STATE_READY. + +Also check the GST_BUFFER_FLAG_DISCONT flag on the buffer. Some elements might +need to clear the adapter after a discontinuity. + +The adapter will keep track of the timestamps of the buffers +that were pushed. The last seen timestamp before the current position +can be queried with gst_adapter_prev_pts(). This function can +optionally return the number of bytes between the start of the buffer that +carried the timestamp and the current adapter position. The distance is +useful when dealing with, for example, raw audio samples because it allows +you to calculate the timestamp of the current adapter position by using the +last seen timestamp and the amount of bytes since. Additionally, the +gst_adapter_prev_pts_at_offset() can be used to determine the last +seen timestamp at a particular offset in the adapter. + +The adapter will also keep track of the offset of the buffers +(#GST_BUFFER_OFFSET) that were pushed. The last seen offset before the +current position can be queried with gst_adapter_prev_offset(). This function +can optionally return the number of bytes between the start of the buffer +that carried the offset and the current adapter position. + +Additionally the adapter also keeps track of the PTS, DTS and buffer offset +at the last discontinuity, which can be retrieved with +gst_adapter_pts_at_discont(), gst_adapter_dts_at_discont() and +gst_adapter_offset_at_discont(). The number of bytes that were consumed +since then can be queried with gst_adapter_distance_from_discont(). + +A last thing to note is that while #GstAdapter is pretty optimized, +merging buffers still might be an operation that requires a `malloc()` and +`memcpy()` operation, and these operations are not the fastest. Because of +this, some functions like gst_adapter_available_fast() are provided to help +speed up such cases should you want to. To avoid repeated memory allocations, +gst_adapter_copy() can be used to copy data into a (statically allocated) +user provided buffer. + +#GstAdapter is not MT safe. All operations on an adapter must be serialized by +the caller. This is not normally a problem, however, as the normal use case +of #GstAdapter is inside one pad's chain function, in which case access is +serialized via the pad's STREAM_LOCK. + +Note that gst_adapter_push() takes ownership of the buffer passed. Use +gst_buffer_ref() before pushing it into the adapter if you still want to +access the buffer later. The adapter will never modify the data in the +buffer pushed in it.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <constructor name="new" c:identifier="gst_adapter_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Creates a new #GstAdapter. Free with g_object_unref().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a new #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </return-value> + </constructor> + <method name="available" c:identifier="gst_adapter_available"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Gets the maximum amount of bytes available, that is it returns the maximum +value that can be supplied to gst_adapter_map() without that function +returning %NULL.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">number of bytes available in @adapter</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="available_fast" c:identifier="gst_adapter_available_fast"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Gets the maximum number of bytes that are immediately available without +requiring any expensive operations (like copying the data into a +temporary buffer).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">number of bytes that are available in @adapter without expensive +operations</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_adapter_clear"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Removes all buffers from @adapter.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_adapter_copy" shadowed-by="copy_bytes" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Copies @size bytes of data starting at @offset out of the buffers +contained in #GstAdapter into an array @dest provided by the caller. + +The array @dest should be large enough to contain @size bytes. +The user should check that the adapter has (@offset + @size) bytes +available before calling this function.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c"> + the memory to copy into</doc> + <array length="2" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the bytes offset in the adapter to start from</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to copy</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="copy_bytes" c:identifier="gst_adapter_copy_bytes" shadows="copy" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Similar to gst_adapter_copy, but more suitable for language bindings. @size +bytes of data starting at @offset will be copied out of the buffers contained +in @adapter and into a new #GBytes structure which is returned. Depending on +the value of the @size argument an empty #GBytes structure may be returned.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">A new #GBytes structure containing the copied data.</doc> + <type name="GLib.Bytes" c:type="GBytes*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the bytes offset in the adapter to start from</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to copy</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="distance_from_discont" c:identifier="gst_adapter_distance_from_discont" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Get the distance in bytes since the last buffer with the +%GST_BUFFER_FLAG_DISCONT flag. + +The distance will be reset to 0 for all buffers with +%GST_BUFFER_FLAG_DISCONT on them, and then calculated for all other +following buffers based on their size.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">The offset. Can be %GST_BUFFER_OFFSET_NONE.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="dts_at_discont" c:identifier="gst_adapter_dts_at_discont" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Get the DTS that was on the last buffer with the GST_BUFFER_FLAG_DISCONT +flag, or GST_CLOCK_TIME_NONE.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">The DTS at the last discont or GST_CLOCK_TIME_NONE.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="flush" c:identifier="gst_adapter_flush"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Flushes the first @flush bytes in the @adapter. The caller must ensure that +at least this many bytes are available. + +See also: gst_adapter_map(), gst_adapter_unmap()</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="flush" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to flush</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="get_buffer" c:identifier="gst_adapter_get_buffer" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Returns a #GstBuffer containing the first @nbytes of the @adapter, but +does not flush them from the adapter. See gst_adapter_take_buffer() +for details. + +Caller owns a reference to the returned buffer. gst_buffer_unref() after +usage. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstBuffer containing the first + @nbytes of the adapter, or %NULL if @nbytes bytes are not available. + gst_buffer_unref() when no longer needed.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to get</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="get_buffer_fast" c:identifier="gst_adapter_get_buffer_fast" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Returns a #GstBuffer containing the first @nbytes of the @adapter, but +does not flush them from the adapter. See gst_adapter_take_buffer_fast() +for details. + +Caller owns a reference to the returned buffer. gst_buffer_unref() after +usage. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstBuffer containing the first + @nbytes of the adapter, or %NULL if @nbytes bytes are not available. + gst_buffer_unref() when no longer needed.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to get</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="get_buffer_list" c:identifier="gst_adapter_get_buffer_list" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Returns a #GstBufferList of buffers containing the first @nbytes bytes of +the @adapter but does not flush them from the adapter. See +gst_adapter_take_buffer_list() for details. + +Caller owns the returned list. Call gst_buffer_list_unref() to free +the list after usage.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstBufferList of buffers containing + the first @nbytes of the adapter, or %NULL if @nbytes bytes are not + available</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to get</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="get_list" c:identifier="gst_adapter_get_list" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Returns a #GList of buffers containing the first @nbytes bytes of the +@adapter, but does not flush them from the adapter. See +gst_adapter_take_list() for details. + +Caller owns returned list and contained buffers. gst_buffer_unref() each +buffer in the list before freeing the list after usage.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GList of + buffers containing the first @nbytes of the adapter, or %NULL if @nbytes + bytes are not available</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Gst.Buffer"/> + </type> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to get</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="map" c:identifier="gst_adapter_map"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Gets the first @size bytes stored in the @adapter. The returned pointer is +valid until the next function is called on the adapter. + +Note that setting the returned pointer as the data of a #GstBuffer is +incorrect for general-purpose plugins. The reason is that if a downstream +element stores the buffer so that it has access to it outside of the bounds +of its chain function, the buffer will have an invalid data pointer after +your element flushes the bytes. In that case you should use +gst_adapter_take(), which returns a freshly-allocated buffer that you can set +as #GstBuffer memory or the potentially more performant +gst_adapter_take_buffer(). + +Returns %NULL if @size bytes are not available.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c"> + a pointer to the first @size bytes of data, or %NULL</doc> + <array length="0" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to map/peek</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="masked_scan_uint32" c:identifier="gst_adapter_masked_scan_uint32"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Scan for pattern @pattern with applied mask @mask in the adapter data, +starting from offset @offset. + +The bytes in @pattern and @mask are interpreted left-to-right, regardless +of endianness. All four bytes of the pattern must be present in the +adapter for it to match, even if the first or last bytes are masked out. + +It is an error to call this function without making sure that there is +enough data (offset+size bytes) in the adapter. + +This function calls gst_adapter_masked_scan_uint32_peek() passing %NULL +for value.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">offset of the first match, or -1 if no match was found. + +Example: +|[ +// Assume the adapter contains 0x00 0x01 0x02 ... 0xfe 0xff + +gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 0, 256); +// -> returns 0 +gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 1, 255); +// -> returns -1 +gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x01020304, 1, 255); +// -> returns 1 +gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0001, 0, 256); +// -> returns -1 +gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0203, 0, 256); +// -> returns 0 +gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 256); +// -> returns 2 +gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 4); +// -> returns -1 +]|</doc> + <type name="gssize" c:type="gssize"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="mask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">mask to apply to data before matching against @pattern</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="pattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">pattern to match (after mask is applied)</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">offset into the adapter data from which to start scanning, returns + the last scanned position.</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">number of bytes to scan from offset</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="masked_scan_uint32_peek" c:identifier="gst_adapter_masked_scan_uint32_peek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Scan for pattern @pattern with applied mask @mask in the adapter data, +starting from offset @offset. If a match is found, the value that matched +is returned through @value, otherwise @value is left untouched. + +The bytes in @pattern and @mask are interpreted left-to-right, regardless +of endianness. All four bytes of the pattern must be present in the +adapter for it to match, even if the first or last bytes are masked out. + +It is an error to call this function without making sure that there is +enough data (offset+size bytes) in the adapter.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">offset of the first match, or -1 if no match was found.</doc> + <type name="gssize" c:type="gssize"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="mask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">mask to apply to data before matching against @pattern</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="pattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">pattern to match (after mask is applied)</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">offset into the adapter data from which to start scanning, returns + the last scanned position.</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">number of bytes to scan from offset</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">pointer to uint32 to return matching data</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="offset_at_discont" c:identifier="gst_adapter_offset_at_discont" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Get the offset that was on the last buffer with the GST_BUFFER_FLAG_DISCONT +flag, or GST_BUFFER_OFFSET_NONE.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">The offset at the last discont or GST_BUFFER_OFFSET_NONE.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="prev_dts" c:identifier="gst_adapter_prev_dts"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Get the dts that was before the current byte in the adapter. When +@distance is given, the amount of bytes between the dts and the current +position is returned. + +The dts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when +the adapter is first created or when it is cleared. This also means that before +the first byte with a dts is removed from the adapter, the dts +and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">The previously seen dts.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">pointer to location for distance, or %NULL</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="prev_dts_at_offset" c:identifier="gst_adapter_prev_dts_at_offset" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Get the dts that was before the byte at offset @offset in the adapter. When +@distance is given, the amount of bytes between the dts and the current +position is returned. + +The dts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when +the adapter is first created or when it is cleared. This also means that before +the first byte with a dts is removed from the adapter, the dts +and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">The previously seen dts at given offset.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the offset in the adapter at which to get timestamp</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">pointer to location for distance, or %NULL</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="prev_offset" c:identifier="gst_adapter_prev_offset" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Get the offset that was before the current byte in the adapter. When +@distance is given, the amount of bytes between the offset and the current +position is returned. + +The offset is reset to GST_BUFFER_OFFSET_NONE and the distance is set to 0 +when the adapter is first created or when it is cleared. This also means that +before the first byte with an offset is removed from the adapter, the offset +and distance returned are GST_BUFFER_OFFSET_NONE and 0 respectively.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">The previous seen offset.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">pointer to a location for distance, or %NULL</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="prev_pts" c:identifier="gst_adapter_prev_pts"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Get the pts that was before the current byte in the adapter. When +@distance is given, the amount of bytes between the pts and the current +position is returned. + +The pts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when +the adapter is first created or when it is cleared. This also means that before +the first byte with a pts is removed from the adapter, the pts +and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">The previously seen pts.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">pointer to location for distance, or %NULL</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="prev_pts_at_offset" c:identifier="gst_adapter_prev_pts_at_offset" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Get the pts that was before the byte at offset @offset in the adapter. When +@distance is given, the amount of bytes between the pts and the current +position is returned. + +The pts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when +the adapter is first created or when it is cleared. This also means that before +the first byte with a pts is removed from the adapter, the pts +and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">The previously seen pts at given offset.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the offset in the adapter at which to get timestamp</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">pointer to location for distance, or %NULL</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="pts_at_discont" c:identifier="gst_adapter_pts_at_discont" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Get the PTS that was on the last buffer with the GST_BUFFER_FLAG_DISCONT +flag, or GST_CLOCK_TIME_NONE.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">The PTS at the last discont or GST_CLOCK_TIME_NONE.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_adapter_push"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Adds the data from @buf to the data stored inside @adapter and takes +ownership of the buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="buf" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstBuffer to add to queue in the adapter</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="take" c:identifier="gst_adapter_take"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Returns a freshly allocated buffer containing the first @nbytes bytes of the +@adapter. The returned bytes will be flushed from the adapter. + +Caller owns returned value. g_free after usage. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c"> + oven-fresh hot data, or %NULL if @nbytes bytes are not available</doc> + <array length="0" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="nbytes" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to take</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="take_buffer" c:identifier="gst_adapter_take_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Returns a #GstBuffer containing the first @nbytes bytes of the +@adapter. The returned bytes will be flushed from the adapter. +This function is potentially more performant than +gst_adapter_take() since it can reuse the memory in pushed buffers +by subbuffering or merging. This function will always return a +buffer with a single memory region. + +Note that no assumptions should be made as to whether certain buffer +flags such as the DISCONT flag are set on the returned buffer, or not. +The caller needs to explicitly set or unset flags that should be set or +unset. + +Since 1.6 this will also copy over all GstMeta of the input buffers except +for meta with the %GST_META_FLAG_POOLED flag or with the "memory" tag. + +Caller owns a reference to the returned buffer. gst_buffer_unref() after +usage. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstBuffer containing the first + @nbytes of the adapter, or %NULL if @nbytes bytes are not available. + gst_buffer_unref() when no longer needed.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to take</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="take_buffer_fast" c:identifier="gst_adapter_take_buffer_fast" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Returns a #GstBuffer containing the first @nbytes of the @adapter. +The returned bytes will be flushed from the adapter. This function +is potentially more performant than gst_adapter_take_buffer() since +it can reuse the memory in pushed buffers by subbuffering or +merging. Unlike gst_adapter_take_buffer(), the returned buffer may +be composed of multiple non-contiguous #GstMemory objects, no +copies are made. + +Note that no assumptions should be made as to whether certain buffer +flags such as the DISCONT flag are set on the returned buffer, or not. +The caller needs to explicitly set or unset flags that should be set or +unset. + +This will also copy over all GstMeta of the input buffers except +for meta with the %GST_META_FLAG_POOLED flag or with the "memory" tag. + +This function can return buffer up to the return value of +gst_adapter_available() without making copies if possible. + +Caller owns a reference to the returned buffer. gst_buffer_unref() after +usage. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstBuffer containing the first + @nbytes of the adapter, or %NULL if @nbytes bytes are not available. + gst_buffer_unref() when no longer needed.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to take</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="take_buffer_list" c:identifier="gst_adapter_take_buffer_list" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Returns a #GstBufferList of buffers containing the first @nbytes bytes of +the @adapter. The returned bytes will be flushed from the adapter. +When the caller can deal with individual buffers, this function is more +performant because no memory should be copied. + +Caller owns the returned list. Call gst_buffer_list_unref() to free +the list after usage.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstBufferList of buffers containing + the first @nbytes of the adapter, or %NULL if @nbytes bytes are not + available</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to take</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="take_list" c:identifier="gst_adapter_take_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Returns a #GList of buffers containing the first @nbytes bytes of the +@adapter. The returned bytes will be flushed from the adapter. +When the caller can deal with individual buffers, this function is more +performant because no memory should be copied. + +Caller owns returned list and contained buffers. gst_buffer_unref() each +buffer in the list before freeing the list after usage.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GList of + buffers containing the first @nbytes of the adapter, or %NULL if @nbytes + bytes are not available</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Gst.Buffer"/> + </type> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">the number of bytes to take</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="unmap" c:identifier="gst_adapter_unmap"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">Releases the memory obtained with the last gst_adapter_map().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstadapter.c">a #GstAdapter</doc> + <type name="Adapter" c:type="GstAdapter*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="AdapterClass" c:type="GstAdapterClass" disguised="1" glib:is-gtype-struct-for="Adapter"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + </record> + <class name="Aggregator" c:symbol-prefix="aggregator" c:type="GstAggregator" version="1.14" parent="Gst.Element" abstract="1" glib:type-name="GstAggregator" glib:get-type="gst_aggregator_get_type" glib:type-struct="AggregatorClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Manages a set of pads with the purpose of aggregating their buffers. +Control is given to the subclass when all pads have data. + + * Base class for mixers and muxers. Subclasses should at least implement + the #GstAggregatorClass::aggregate virtual method. + + * Installs a #GstPadChainFunction, a #GstPadEventFullFunction and a + #GstPadQueryFunction to queue all serialized data packets per sink pad. + Subclasses should not overwrite those, but instead implement + #GstAggregatorClass::sink_event and #GstAggregatorClass::sink_query as + needed. + + * When data is queued on all pads, the aggregate vmethod is called. + + * One can peek at the data on any given GstAggregatorPad with the + gst_aggregator_pad_peek_buffer() method, and remove it from the pad + with the gst_aggregator_pad_pop_buffer () method. When a buffer + has been taken with pop_buffer (), a new buffer can be queued + on that pad. + + * When gst_aggregator_pad_peek_buffer() or gst_aggregator_pad_has_buffer() + are called, a reference is taken to the returned buffer, which stays + valid until either: + + - gst_aggregator_pad_pop_buffer() is called, in which case the caller + is guaranteed that the buffer they receive is the same as the peeked + buffer. + - gst_aggregator_pad_drop_buffer() is called, in which case the caller + is guaranteed that the dropped buffer is the one that was peeked. + - the subclass implementation of #GstAggregatorClass.aggregate returns. + + Subsequent calls to gst_aggregator_pad_peek_buffer() or + gst_aggregator_pad_has_buffer() return / check the same buffer that was + returned / checked, until one of the conditions listed above is met. + + Subclasses are only allowed to call these methods from the aggregate + thread. + + * If the subclass wishes to push a buffer downstream in its aggregate + implementation, it should do so through the + gst_aggregator_finish_buffer() method. This method will take care + of sending and ordering mandatory events such as stream start, caps + and segment. Buffer lists can also be pushed out with + gst_aggregator_finish_buffer_list(). + + * Same goes for EOS events, which should not be pushed directly by the + subclass, it should instead return GST_FLOW_EOS in its aggregate + implementation. + + * Note that the aggregator logic regarding gap event handling is to turn + these into gap buffers with matching PTS and duration. It will also + flag these buffers with GST_BUFFER_FLAG_GAP and GST_BUFFER_FLAG_DROPPABLE + to ease their identification and subsequent processing. + In addition, if the gap event was flagged with GST_GAP_FLAG_MISSING_DATA, + a custom meta is added to the resulting gap buffer (GstAggregatorMissingDataMeta). + + * Subclasses must use (a subclass of) #GstAggregatorPad for both their + sink and source pads. + See gst_element_class_add_static_pad_template_with_gtype(). + +This class used to live in gst-plugins-bad and was moved to core.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <virtual-method name="aggregate"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="clip"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create_new_pad" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="templ" transfer-ownership="none"> + <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="req_name" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="decide_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="finish_buffer" invoker="finish_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">This method will push the provided output buffer downstream. If needed, +mandatory events such as stream-start, caps, and segment events will be +sent before pushing the buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the #GstBuffer to push.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="finish_buffer_list" invoker="finish_buffer_list" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">This method will push the provided output buffer list downstream. If needed, +mandatory events such as stream-start, caps, and segment events will be +sent before pushing the buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="bufferlist" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the #GstBufferList to push.</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="fixate_src_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="flush"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_next_time"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="negotiate" invoker="negotiate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Negotiates src pad caps with downstream elements. +Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in any case. But marks it again +if #GstAggregatorClass::negotiate fails.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">a #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="negotiated_src_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="peek_next_sample" invoker="peek_next_sample" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Use this function to determine what input buffers will be aggregated +to produce the next output buffer. This should only be called from +a #GstAggregator::samples-selected handler, and can be used to precisely +control aggregating parameters for a given set of input samples.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The sample that is about to be aggregated. It may hold a #GstBuffer + or a #GstBufferList. The contents of its info structure is subclass-dependent, + and documented on a subclass basis. The buffers held by the sample are + not writable.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="propose_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="decide_query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_event_pre_queue"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_query_pre_queue"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_activate"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <type name="Gst.PadMode" c:type="GstPadMode"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="update_src_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <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> + </virtual-method> + <method name="finish_buffer" c:identifier="gst_aggregator_finish_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">This method will push the provided output buffer downstream. If needed, +mandatory events such as stream-start, caps, and segment events will be +sent before pushing the buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the #GstBuffer to push.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="finish_buffer_list" c:identifier="gst_aggregator_finish_buffer_list" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">This method will push the provided output buffer list downstream. If needed, +mandatory events such as stream-start, caps, and segment events will be +sent before pushing the buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="aggregator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="bufferlist" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the #GstBufferList to push.</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </method> + <method name="get_allocator" c:identifier="gst_aggregator_get_allocator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Lets #GstAggregator sub-classes get the memory @allocator +acquired by the base class and its @params. + +Unref the @allocator after use it.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">a #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="allocator" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the #GstAllocator +used</doc> + <type name="Gst.Allocator" c:type="GstAllocator**"/> + </parameter> + <parameter name="params" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the +#GstAllocationParams of @allocator</doc> + <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="get_buffer_pool" c:identifier="gst_aggregator_get_buffer_pool"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the instance of the #GstBufferPool used +by @trans; free it after use it</doc> + <type name="Gst.BufferPool" c:type="GstBufferPool*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">a #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_force_live" c:identifier="gst_aggregator_get_force_live" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Subclasses may use the return value to inform whether they should return +%GST_FLOW_EOS from their aggregate implementation.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">whether live status was forced on @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ignore_inactive_pads" c:identifier="gst_aggregator_get_ignore_inactive_pads" version="1.20"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">whether inactive pads will not be waited on</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_latency" c:identifier="gst_aggregator_get_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Retrieves the latency values reported by @self in response to the latency +query, or %GST_CLOCK_TIME_NONE if there is not live source connected and the element +will not wait for the clock. + +Typically only called by subclasses.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The latency or %GST_CLOCK_TIME_NONE if the element does not sync</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">a #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </method> + <method name="negotiate" c:identifier="gst_aggregator_negotiate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Negotiates src pad caps with downstream elements. +Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in any case. But marks it again +if #GstAggregatorClass::negotiate fails.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">a #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek_next_sample" c:identifier="gst_aggregator_peek_next_sample" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Use this function to determine what input buffers will be aggregated +to produce the next output buffer. This should only be called from +a #GstAggregator::samples-selected handler, and can be used to precisely +control aggregating parameters for a given set of input samples.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The sample that is about to be aggregated. It may hold a #GstBuffer + or a #GstBufferList. The contents of its info structure is subclass-dependent, + and documented on a subclass basis. The buffers held by the sample are + not writable.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + </parameters> + </method> + <method name="selected_samples" c:identifier="gst_aggregator_selected_samples" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Subclasses should call this when they have prepared the +buffers they will aggregate for each of their sink pads, but +before using any of the properties of the pads that govern +*how* aggregation should be performed, for example z-index +for video aggregators. + +If gst_aggregator_update_segment() is used by the subclass, +it MUST be called before gst_aggregator_selected_samples(). + +This function MUST only be called from the #GstAggregatorClass::aggregate() +function.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="pts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The presentation timestamp of the next output buffer</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="dts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The decoding timestamp of the next output buffer</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The duration of the next output buffer</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="info" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">a #GstStructure containing additional information</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="set_force_live" c:identifier="gst_aggregator_set_force_live" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Subclasses should call this at construction time in order for @self to +aggregate on a timeout even when no live source is connected.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="force_live" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_ignore_inactive_pads" c:identifier="gst_aggregator_set_ignore_inactive_pads" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Subclasses should call this when they don't want to time out +waiting for a pad that hasn't yet received any buffers in live +mode. + +#GstAggregator will still wait once on each newly-added pad, making +sure upstream has had a fair chance to start up.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="ignore" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">whether inactive pads should not be waited on</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_latency" c:identifier="gst_aggregator_set_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Lets #GstAggregator sub-classes tell the baseclass what their internal +latency is. Will also post a LATENCY message on the bus so the pipeline +can reconfigure its global latency if the values changed.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">a #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="min_latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">minimum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="max_latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">maximum latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_src_caps" c:identifier="gst_aggregator_set_src_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Sets the caps to be used on the src pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The #GstCaps to set on the src pad.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="simple_get_next_time" c:identifier="gst_aggregator_simple_get_next_time" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">This is a simple #GstAggregatorClass::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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">A #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + </parameters> + </method> + <method name="update_segment" c:identifier="gst_aggregator_update_segment" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Subclasses should use this to update the segment on their +source pad, instead of directly pushing new segment events +downstream. + +Subclasses MUST call this before gst_aggregator_selected_samples(), +if it is used at all.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </instance-parameter> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="const GstSegment*"/> + </parameter> + </parameters> + </method> + <property name="emit-signals" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Enables the emission of signals such as #GstAggregator::samples-selected</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">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> + <property name="start-time-selection" writable="1" transfer-ownership="none"> + <type name="AggregatorStartTimeSelection"/> + </property> + <field name="parent"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="srcpad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">the aggregator's source pad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AggregatorPrivate" c:type="GstAggregatorPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="samples-selected" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Signals that the #GstAggregator subclass has selected the next set +of input samples it will aggregate. Handlers may call +gst_aggregator_peek_next_sample() at that point.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The #GstSegment the next output buffer is part of</doc> + <type name="Gst.Segment"/> + </parameter> + <parameter name="pts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The presentation timestamp of the next output buffer</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="dts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The decoding timestamp of the next output buffer</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The duration of the next output buffer</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="info" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">a #GstStructure containing additional information</doc> + <type name="Gst.Structure"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="AggregatorClass" c:type="GstAggregatorClass" glib:is-gtype-struct-for="Aggregator" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">The aggregator base class will handle in a thread-safe way all manners of +concurrent flushes, seeks, pad additions and removals, leaving to the +subclass the responsibility of clipping buffers, and aggregating buffers in +the way the implementor sees fit. + +It will also take care of event ordering (stream-start, segment, eos). + +Basically, a simple implementation will override @aggregate, and call +_finish_buffer from inside that function.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <field name="parent_class"> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="flush"> + <callback name="flush"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="clip"> + <callback name="clip"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="finish_buffer"> + <callback name="finish_buffer"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the #GstBuffer to push.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_event"> + <callback name="sink_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_query"> + <callback name="sink_query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_event"> + <callback name="src_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_query"> + <callback name="src_query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_activate"> + <callback name="src_activate"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <type name="Gst.PadMode" c:type="GstPadMode"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="aggregate"> + <callback name="aggregate"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_next_time"> + <callback name="get_next_time"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_new_pad" introspectable="0"> + <callback name="create_new_pad" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="templ" transfer-ownership="none"> + <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="req_name" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="update_src_caps"> + <callback name="update_src_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <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> + </callback> + </field> + <field name="fixate_src_caps"> + <callback name="fixate_src_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="negotiated_src_caps"> + <callback name="negotiated_src_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decide_allocation"> + <callback name="decide_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="propose_allocation"> + <callback name="propose_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="decide_query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="negotiate"> + <callback name="negotiate"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">a #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_event_pre_queue"> + <callback name="sink_event_pre_queue"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_query_pre_queue"> + <callback name="sink_query_pre_queue"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="finish_buffer_list"> + <callback name="finish_buffer_list"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The #GstAggregator</doc> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="bufferlist" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the #GstBufferList to push.</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="peek_next_sample"> + <callback name="peek_next_sample"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The sample that is about to be aggregated. It may hold a #GstBuffer + or a #GstBufferList. The contents of its info structure is subclass-dependent, + and documented on a subclass basis. The buffers held by the sample are + not writable.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="aggregator_pad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="15"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="AggregatorPad" c:symbol-prefix="aggregator_pad" c:type="GstAggregatorPad" version="1.14" parent="Gst.Pad" glib:type-name="GstAggregatorPad" glib:get-type="gst_aggregator_pad_get_type" glib:type-struct="AggregatorPadClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Pads managed by a #GstAggregator subclass. + +This class used to live in gst-plugins-bad and was moved to core.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <virtual-method name="flush"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="aggpad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </instance-parameter> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="skip_buffer"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="aggpad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </instance-parameter> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <method name="drop_buffer" c:identifier="gst_aggregator_pad_drop_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Drop the buffer currently queued in @pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">TRUE if there was a buffer queued in @pad, or FALSE if not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the pad where to drop any pending buffer</doc> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_buffer" c:identifier="gst_aggregator_pad_has_buffer" version="1.14.1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">%TRUE if the pad has a buffer available as the next thing.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the pad to check the buffer on</doc> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_eos" c:identifier="gst_aggregator_pad_is_eos"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">%TRUE if the pad is EOS, otherwise %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">an aggregator pad</doc> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_inactive" c:identifier="gst_aggregator_pad_is_inactive" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">It is only valid to call this method from #GstAggregatorClass::aggregate()</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">%TRUE if the pad is inactive, %FALSE otherwise. + See gst_aggregator_ignore_inactive_pads() for more info.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">an aggregator pad</doc> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek_buffer" c:identifier="gst_aggregator_pad_peek_buffer"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">A reference to the buffer in @pad or +NULL if no buffer was queued. You should unref the buffer after +usage.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the pad to get buffer from</doc> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </instance-parameter> + </parameters> + </method> + <method name="pop_buffer" c:identifier="gst_aggregator_pad_pop_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Steal the ref to the buffer currently queued in @pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The buffer in @pad or NULL if no buffer was + queued. You should unref the buffer after usage.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">the pad to get buffer from</doc> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </instance-parameter> + </parameters> + </method> + <property name="emit-signals" version="1.16" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Enables the emission of signals such as #GstAggregatorPad::buffer-consumed</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="parent"> + <type name="Gst.Pad" c:type="GstPad"/> + </field> + <field name="segment"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">last segment received.</doc> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AggregatorPadPrivate" c:type="GstAggregatorPadPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="buffer-consumed" when="first"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="Gst.Buffer"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="AggregatorPadClass" c:type="GstAggregatorPadClass" glib:is-gtype-struct-for="AggregatorPad" version="1.14"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <field name="parent_class"> + <type name="Gst.PadClass" c:type="GstPadClass"/> + </field> + <field name="flush"> + <callback name="flush"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="aggpad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="skip_buffer"> + <callback name="skip_buffer"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="aggpad" transfer-ownership="none"> + <type name="AggregatorPad" c:type="GstAggregatorPad*"/> + </parameter> + <parameter name="aggregator" transfer-ownership="none"> + <type name="Aggregator" c:type="GstAggregator*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AggregatorPadPrivate" c:type="GstAggregatorPadPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + </record> + <record name="AggregatorPrivate" c:type="GstAggregatorPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + </record> + <enumeration name="AggregatorStartTimeSelection" version="1.18" glib:type-name="GstAggregatorStartTimeSelection" glib:get-type="gst_aggregator_start_time_selection_get_type" c:type="GstAggregatorStartTimeSelection"> + <member name="zero" value="0" c:identifier="GST_AGGREGATOR_START_TIME_SELECTION_ZERO" glib:nick="zero"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">Start at running time 0.</doc> + </member> + <member name="first" value="1" c:identifier="GST_AGGREGATOR_START_TIME_SELECTION_FIRST" glib:nick="first"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">Start at the running time of +the first buffer that is received.</doc> + </member> + <member name="set" value="2" c:identifier="GST_AGGREGATOR_START_TIME_SELECTION_SET" glib:nick="set"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">Start at the running time +selected by the `start-time` property.</doc> + </member> + </enumeration> + <function-macro name="BASE_PARSE" c:identifier="GST_BASE_PARSE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_PARSE_CAST" c:identifier="GST_BASE_PARSE_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_PARSE_CLASS" c:identifier="GST_BASE_PARSE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_PARSE_DRAINING" c:identifier="GST_BASE_PARSE_DRAINING" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">Obtains current drain status (ie. whether EOS has been received and +the parser is now processing the frames at the end of the stream)</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="parse"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">base parse instance</doc> + </parameter> + </parameters> + </function-macro> + <constant name="BASE_PARSE_FLAG_DRAINING" value="2" c:type="GST_BASE_PARSE_FLAG_DRAINING"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="BASE_PARSE_FLAG_LOST_SYNC" value="1" c:type="GST_BASE_PARSE_FLAG_LOST_SYNC"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="BASE_PARSE_GET_CLASS" c:identifier="GST_BASE_PARSE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_PARSE_LOST_SYNC" c:identifier="GST_BASE_PARSE_LOST_SYNC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">Obtains current sync status.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="parse"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">base parse instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_PARSE_SINK_PAD" c:identifier="GST_BASE_PARSE_SINK_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">Gives the pointer to the sink #GstPad object of the element.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">base parse instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_PARSE_SRC_PAD" c:identifier="GST_BASE_PARSE_SRC_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">Gives the pointer to the source #GstPad object of the element.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">base parse instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK" c:identifier="GST_BASE_SINK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_CAST" c:identifier="GST_BASE_SINK_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_CLASS" c:identifier="GST_BASE_SINK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_GET_CLASS" c:identifier="GST_BASE_SINK_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_GET_PREROLL_COND" c:identifier="GST_BASE_SINK_GET_PREROLL_COND" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_GET_PREROLL_LOCK" c:identifier="GST_BASE_SINK_GET_PREROLL_LOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_PAD" c:identifier="GST_BASE_SINK_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">Gives the pointer to the #GstPad object of the element.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">base sink instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_PREROLL_BROADCAST" c:identifier="GST_BASE_SINK_PREROLL_BROADCAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_PREROLL_LOCK" c:identifier="GST_BASE_SINK_PREROLL_LOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_PREROLL_SIGNAL" c:identifier="GST_BASE_SINK_PREROLL_SIGNAL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_PREROLL_TRYLOCK" c:identifier="GST_BASE_SINK_PREROLL_TRYLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_PREROLL_UNLOCK" c:identifier="GST_BASE_SINK_PREROLL_UNLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_PREROLL_WAIT" c:identifier="GST_BASE_SINK_PREROLL_WAIT" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SINK_PREROLL_WAIT_UNTIL" c:identifier="GST_BASE_SINK_PREROLL_WAIT_UNTIL" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + <parameter name="end_time"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SRC" c:identifier="GST_BASE_SRC" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SRC_CAST" c:identifier="GST_BASE_SRC_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SRC_CLASS" c:identifier="GST_BASE_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SRC_GET_CLASS" c:identifier="GST_BASE_SRC_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SRC_IS_STARTED" c:identifier="GST_BASE_SRC_IS_STARTED" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SRC_IS_STARTING" c:identifier="GST_BASE_SRC_IS_STARTING" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_SRC_PAD" c:identifier="GST_BASE_SRC_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">Gives the pointer to the #GstPad object of the element.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">base source instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_TRANSFORM" c:identifier="GST_BASE_TRANSFORM" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_TRANSFORM_CAST" c:identifier="GST_BASE_TRANSFORM_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_TRANSFORM_CLASS" c:identifier="GST_BASE_TRANSFORM_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BASE_TRANSFORM_GET_CLASS" c:identifier="GST_BASE_TRANSFORM_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="BASE_TRANSFORM_SINK_NAME" value="sink" c:type="GST_BASE_TRANSFORM_SINK_NAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">The name of the templates for the sink pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="BASE_TRANSFORM_SINK_PAD" c:identifier="GST_BASE_TRANSFORM_SINK_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">Gives the pointer to the sink #GstPad object of the element.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">base transform instance</doc> + </parameter> + </parameters> + </function-macro> + <constant name="BASE_TRANSFORM_SRC_NAME" value="src" c:type="GST_BASE_TRANSFORM_SRC_NAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">The name of the templates for the source pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="BASE_TRANSFORM_SRC_PAD" c:identifier="GST_BASE_TRANSFORM_SRC_PAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">Gives the pointer to the source #GstPad object of the element.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">base transform instance</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIT_READER" c:identifier="GST_BIT_READER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <parameters> + <parameter name="reader"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIT_READER_INIT" c:identifier="GST_BIT_READER_INIT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h">A #GstBitReader must be initialized with this macro, before it can be +used. This macro can used be to initialize a variable, but it cannot +be assigned to a variable. In that case you have to use +gst_bit_reader_init().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h">Data from which the #GstBitReader should read</doc> + </parameter> + <parameter name="size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h">Size of @data in bytes</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIT_WRITER" c:identifier="GST_BIT_WRITER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <parameters> + <parameter name="writer"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIT_WRITER_BIT_SIZE" c:identifier="GST_BIT_WRITER_BIT_SIZE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <parameters> + <parameter name="writer"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BIT_WRITER_DATA" c:identifier="GST_BIT_WRITER_DATA" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <parameters> + <parameter name="writer"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BYTE_READER" c:identifier="GST_BYTE_READER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <parameters> + <parameter name="reader"> + </parameter> + </parameters> + </function-macro> + <function-macro name="BYTE_READER_INIT" c:identifier="GST_BYTE_READER_INIT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h">A #GstByteReader must be initialized with this macro, before it can be +used. This macro can used be to initialize a variable, but it cannot +be assigned to a variable. In that case you have to use +gst_byte_reader_init().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h">Data from which the #GstByteReader should read</doc> + </parameter> + <parameter name="size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h">Size of @data in bytes</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="BYTE_WRITER" c:identifier="GST_BYTE_WRITER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <parameters> + <parameter name="writer"> + </parameter> + </parameters> + </function-macro> + <class name="BaseParse" c:symbol-prefix="base_parse" c:type="GstBaseParse" parent="Gst.Element" abstract="1" glib:type-name="GstBaseParse" glib:get-type="gst_base_parse_get_type" glib:type-struct="BaseParseClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">This base class is for parser elements that process data and splits it +into separate audio/video/whatever frames. + +It provides for: + + * provides one sink pad and one source pad + * handles state changes + * can operate in pull mode or push mode + * handles seeking in both modes + * handles events (SEGMENT/EOS/FLUSH) + * handles queries (POSITION/DURATION/SEEKING/FORMAT/CONVERT) + * handles flushing + +The purpose of this base class is to provide the basic functionality of +a parser and share a lot of rather complex code. + +# Description of the parsing mechanism: + +## Set-up phase + + * #GstBaseParse calls #GstBaseParseClass::start to inform subclass + that data processing is about to start now. + + * #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 (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. + +## Parsing phase + + * #GstBaseParse gathers at least min_frame_size bytes of data either + 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 #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 + (e.g. buffer timestamp and duration, or keyframe if applicable). + (although the latter can also be done by #GstBaseParse if it is + appropriately configured, see below). Frame is provided with + timestamp derived from upstream (as much as generally possible), + duration obtained from configuration (see below), and offset + if meaningful (in pull mode). + + 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 + #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 + #GstBaseParseClass::sink_event or #GstBaseParseClass::src_event + implementations have been provided. + +## Shutdown phase + +* #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' #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 +%GST_FORMAT_TIME to %GST_FORMAT_DEFAULT must return the +frame number that can be found from the given byte position. + +#GstBaseParse uses subclasses conversion methods also for seeking (or +otherwise uses its own default one, see also below). + +Subclass @start and @stop functions will be called to inform the beginning +and end of data processing. + +Things that subclass need to take care of: + +* Provide pad templates +* 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 + #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() +* Configure various baseparse parameters using + gst_base_parse_set_average_bitrate(), gst_base_parse_set_syncable() + and gst_base_parse_set_frame_rate(). + +* 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 + possible). Internally keeping track of frame durations and respective + sizes that have been pushed provides #GstBaseParse with an estimated + 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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <virtual-method name="convert"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="src_format" transfer-ownership="none"> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_value" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_format" transfer-ownership="none"> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_value" transfer-ownership="none"> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="detect"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_sink_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_frame"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">Parses the input data into valid frames as defined by subclass +which should be passed to gst_base_parse_finish_frame(). +The frame's input buffer is guaranteed writable, +whereas the input frame ownership is held by caller +(so subclass should make a copy if it needs to hang on). +Input buffer (data) is provided by baseclass with as much +metadata set as possible by baseclass according to upstream +information and/or subclass settings, +though subclass may still set buffer timestamp and duration +if desired.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="BaseParseFrame" c:type="GstBaseParseFrame*"/> + </parameter> + <parameter name="skipsize" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_push_frame"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="BaseParseFrame" c:type="GstBaseParseFrame*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_sink_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="add_index_entry" c:identifier="gst_base_parse_add_index_entry"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Adds an entry to the index associating @offset to @ts. It is recommended +to only add keyframe entries. @force allows to bypass checks, such as +whether the stream is (upstream) seekable, another entry is already "close" +to the new entry, etc.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#gboolean indicating whether entry was added</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstBaseParse.</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">offset of entry</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="ts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">timestamp associated with offset</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">whether entry refers to keyframe</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="force" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">add entry disregarding sanity checks</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="convert_default" c:identifier="gst_base_parse_convert_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Default implementation of #GstBaseParseClass::convert.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">%TRUE if conversion was successful.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstBaseParse.</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="src_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstFormat describing the source format.</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Source value to be converted.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstFormat defining the converted format.</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Pointer where the conversion result will be put.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="drain" c:identifier="gst_base_parse_drain" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Drains the adapter until it is empty. It decreases the min_frame_size to +match the current adapter size and calls chain method until the adapter +is emptied or chain returns with error.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + </parameters> + </method> + <method name="finish_frame" c:identifier="gst_base_parse_finish_frame"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Collects parsed data and pushes this downstream. +Source pad caps must be set when this is called. + +If @frame's out_buffer is set, that will be used as subsequent frame data. +Otherwise, @size samples will be taken from the input and used for output, +and the output's metadata (timestamps etc) will be taken as (optionally) +set by the subclass on @frame's (input) buffer (which is otherwise +ignored for any but the above purpose/information). + +Note that the latter buffer is invalidated by this call, whereas the +caller retains ownership of @frame.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstFlowReturn that should be escalated to caller (of caller)</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParseFrame</doc> + <type name="BaseParseFrame" c:type="GstBaseParseFrame*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">consumed input data represented by frame</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="merge_tags" c:identifier="gst_base_parse_merge_tags" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Sets the parser subclass's tags and how they should be merged with any +upstream stream tags. This will override any tags previously-set +with gst_base_parse_merge_tags(). + +Note that this is provided for convenience, and the subclass is +not required to use this and can still do tag handling on its own.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="tags" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstTagList to merge, or NULL to unset + previously-set tags</doc> + <type name="Gst.TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">the #GstTagMergeMode to use, usually #GST_TAG_MERGE_REPLACE</doc> + <type name="Gst.TagMergeMode" c:type="GstTagMergeMode"/> + </parameter> + </parameters> + </method> + <method name="push_frame" c:identifier="gst_base_parse_push_frame"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Pushes the frame's buffer downstream, sends any pending events and +does some timestamp and segment handling. Takes ownership of +frame's buffer, though caller retains ownership of @frame. + +This must be called with sinkpad STREAM_LOCK held.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstBaseParse.</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParseFrame</doc> + <type name="BaseParseFrame" c:type="GstBaseParseFrame*"/> + </parameter> + </parameters> + </method> + <method name="set_average_bitrate" c:identifier="gst_base_parse_set_average_bitrate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Optionally sets the average bitrate detected in media (if non-zero), +e.g. based on metadata, as it will be posted to the application. + +By default, announced average bitrate is estimated. The average bitrate +is used to estimate the total duration of the stream and to estimate +a seek position, if there's no index and the format is syncable +(see gst_base_parse_set_syncable()).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstBaseParse.</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="bitrate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">average bitrate in bits/second</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_duration" c:identifier="gst_base_parse_set_duration"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Sets the duration of the currently playing media. Subclass can use this +when it is able to determine duration and/or notices a change in the media +duration. Alternatively, if @interval is non-zero (default), then stream +duration is determined based on estimated bitrate, and updated every @interval +frames.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstBaseParse.</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="fmt" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstFormat.</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">duration value.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">how often to update the duration estimate based on bitrate, or 0.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_frame_rate" c:identifier="gst_base_parse_set_frame_rate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">If frames per second is configured, parser can take care of buffer duration +and timestamping. When performing segment clipping, or seeking to a specific +location, a corresponding decoder might need an initial @lead_in and a +following @lead_out number of frames to ensure the desired segment is +entirely filled upon decoding.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">the #GstBaseParse to set</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="fps_num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">frames per second (numerator).</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="fps_den" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">frames per second (denominator).</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="lead_in" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">frames needed before a segment for subsequent decode</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="lead_out" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">frames needed after a segment</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_has_timing_info" c:identifier="gst_base_parse_set_has_timing_info"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Set if frames carry timing information which the subclass can (generally) +parse and provide. In particular, intrinsic (rather than estimated) time +can be obtained following a seek.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="has_timing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">whether frames carry timing information</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_infer_ts" c:identifier="gst_base_parse_set_infer_ts"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">By default, the base class might try to infer PTS from DTS and vice +versa. While this is generally correct for audio data, it may not +be otherwise. Sub-classes implementing such formats should disable +timestamp inferring.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="infer_ts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">%TRUE if parser should infer DTS/PTS from each other</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_latency" c:identifier="gst_base_parse_set_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Sets the minimum and maximum (which may likely be equal) latency introduced +by the parsing process. If there is such a latency, which depends on the +particular parsing of the format, it typically corresponds to 1 frame duration. + +If the provided values changed from previously provided ones, this will +also post a LATENCY message on the bus so the pipeline can reconfigure its +global latency.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="min_latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">minimum parse latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="max_latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">maximum parse latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_min_frame_size" c:identifier="gst_base_parse_set_min_frame_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Subclass can use this function to tell the base class that it needs to +be given buffers of at least @min_size bytes.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstBaseParse.</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="min_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Minimum size in bytes of the data that this base class should + give to subclass.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_passthrough" c:identifier="gst_base_parse_set_passthrough"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">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 #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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="passthrough" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">%TRUE if parser should run in passthrough mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_pts_interpolation" c:identifier="gst_base_parse_set_pts_interpolation"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">By default, the base class will guess PTS timestamps using a simple +interpolation (previous timestamp + duration), which is incorrect for +data streams with reordering, where PTS can go backward. Sub-classes +implementing such formats should disable PTS interpolation.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="pts_interpolate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">%TRUE if parser should interpolate PTS timestamps</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_syncable" c:identifier="gst_base_parse_set_syncable"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Set if frame starts can be identified. This is set by default and +determines whether seeking based on bitrate averages +is possible for a format/stream.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="syncable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">set if frame starts can be identified</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_ts_at_offset" c:identifier="gst_base_parse_set_ts_at_offset" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">This function should only be called from a @handle_frame implementation. + +#GstBaseParse creates initial timestamps for frames by using the last +timestamp seen in the stream before the frame starts. In certain +cases, the correct timestamps will occur in the stream after the +start of the frame, but before the start of the actual picture data. +This function can be used to set the timestamps based on the offset +into the frame data that the picture starts.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="parse" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBaseParse</doc> + <type name="BaseParse" c:type="GstBaseParse*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">offset into current buffer</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <property name="disable-passthrough" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">If set to %TRUE, baseparse will unconditionally force parsing of the +incoming data. This can be required in the rare cases where the incoming +side-data (caps, pts, dts, ...) is not trusted by the user and wants to +force validation and parsing of the incoming data. +If set to %FALSE, decision of whether to parse the data or not is up to +the implementation (standard behaviour).</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">the parent element.</doc> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="flags"> + <type name="guint" c:type="guint"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseParsePrivate" c:type="GstBaseParsePrivate*"/> + </field> + </class> + <record name="BaseParseClass" c:type="GstBaseParseClass" glib:is-gtype-struct-for="BaseParse"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">Subclasses can override any of the available virtual methods or not, as +needed. At minimum @handle_frame needs to be overridden.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">the parent class</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_sink_caps"> + <callback name="set_sink_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_frame"> + <callback name="handle_frame"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="BaseParseFrame" c:type="GstBaseParseFrame*"/> + </parameter> + <parameter name="skipsize" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_push_frame"> + <callback name="pre_push_frame"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="BaseParseFrame" c:type="GstBaseParseFrame*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="convert"> + <callback name="convert"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="src_format" transfer-ownership="none"> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_value" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="dest_format" transfer-ownership="none"> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_value" transfer-ownership="none"> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_event"> + <callback name="sink_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_event"> + <callback name="src_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_sink_caps"> + <callback name="get_sink_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="detect"> + <callback name="detect"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_query"> + <callback name="sink_query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_query"> + <callback name="src_query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="parse" transfer-ownership="none"> + <type name="BaseParse" c:type="GstBaseParse*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="18"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BaseParseFrame" c:type="GstBaseParseFrame" glib:type-name="GstBaseParseFrame" glib:get-type="gst_base_parse_frame_get_type" c:symbol-prefix="base_parse_frame"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">Frame (context) data passed to each frame parsing virtual methods. In +addition to providing the data to be checked for a valid frame or an already +identified frame, it conveys additional metadata or control information +from and to the subclass w.r.t. the particular frame in question (rather +than global parameters). Some of these may apply to each parsing stage, others +only to some a particular one. These parameters are effectively zeroed at start +of each frame's processing, i.e. parsing virtual method invocation sequence.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <field name="buffer" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">input data to be parsed for frames.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="out_buffer" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">output data.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">a combination of input and output #GstBaseParseFrameFlags that + convey additional context to subclass or allow subclass to tune + subsequent #GstBaseParse actions.</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="offset" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">media specific offset of input frame + Note that a converter may have a different one on the frame's buffer.</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="overhead" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">subclass can set this to indicates the metadata overhead + for the given frame, which is then used to enable more accurate bitrate + computations. If this is -1, it is assumed that this frame should be + skipped in bitrate calculation.</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="size" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="_gst_reserved_i" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="guint" c:type="guint"/> + </array> + </field> + <field name="_gst_reserved_p" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="_private_flags" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <constructor name="new" c:identifier="gst_base_parse_frame_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Allocates a new #GstBaseParseFrame. This function is mainly for bindings, +elements written in C should usually allocate the frame on the stack and +then use gst_base_parse_frame_init() to initialise it.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a newly-allocated #GstBaseParseFrame. Free with + gst_base_parse_frame_free() when no longer needed.</doc> + <type name="BaseParseFrame" c:type="GstBaseParseFrame*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">the flags</doc> + <type name="BaseParseFrameFlags" c:type="GstBaseParseFrameFlags"/> + </parameter> + <parameter name="overhead" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">number of bytes in this frame which should be counted as + metadata overhead, ie. not used to calculate the average bitrate. + Set to -1 to mark the entire frame as metadata. If in doubt, set to 0.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </constructor> + <method name="copy" c:identifier="gst_base_parse_frame_copy" version="1.12.1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Copies a #GstBaseParseFrame.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Frees the provided @frame.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">A #GstBaseParseFrame</doc> + <type name="BaseParseFrame" c:type="GstBaseParseFrame*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_base_parse_frame_init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Sets a #GstBaseParseFrame to initial state. Currently this means +all public fields are zero-ed and a private flag is set to make +sure gst_base_parse_frame_free() only frees the contents but not +the actual frame. Use this function to initialise a #GstBaseParseFrame +allocated on the stack.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">#GstBaseParseFrame.</doc> + <type name="BaseParseFrame" c:type="GstBaseParseFrame*"/> + </instance-parameter> + </parameters> + </method> + </record> + <bitfield name="BaseParseFrameFlags" c:type="GstBaseParseFrameFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">Flags to be used in a #GstBaseParseFrame.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <member name="none" value="0" c:identifier="GST_BASE_PARSE_FRAME_FLAG_NONE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">no flag</doc> + </member> + <member name="new_frame" value="1" c:identifier="GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">set by baseclass if current frame + is passed for processing to the subclass for the first time + (and not set on subsequent calls with same data).</doc> + </member> + <member name="no_frame" value="2" c:identifier="GST_BASE_PARSE_FRAME_FLAG_NO_FRAME"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">set to indicate this buffer should not be + counted as frame, e.g. if this frame is dependent on a previous one. + As it is not counted as a frame, bitrate increases but frame to time + conversions are maintained.</doc> + </member> + <member name="clip" value="4" c:identifier="GST_BASE_PARSE_FRAME_FLAG_CLIP"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">@pre_push_frame can set this to indicate + that regular segment clipping can still be performed (as opposed to + any custom one having been done).</doc> + </member> + <member name="drop" value="8" c:identifier="GST_BASE_PARSE_FRAME_FLAG_DROP"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">indicates to @finish_frame that the + the frame should be dropped (and might be handled internally by subclass)</doc> + </member> + <member name="queue" value="16" c:identifier="GST_BASE_PARSE_FRAME_FLAG_QUEUE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h">indicates to @finish_frame that the + the frame should be queued for now and processed fully later + when the first non-queued frame is finished</doc> + </member> + </bitfield> + <record name="BaseParsePrivate" c:type="GstBaseParsePrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + </record> + <class name="BaseSink" c:symbol-prefix="base_sink" c:type="GstBaseSink" parent="Gst.Element" abstract="1" glib:type-name="GstBaseSink" glib:get-type="gst_base_sink_get_type" glib:type-struct="BaseSinkClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">#GstBaseSink is the base class for sink elements in GStreamer, such as +xvimagesink or filesink. It is a layer on top of #GstElement that provides a +simplified interface to plugin writers. #GstBaseSink handles many details +for you, for example: preroll, clock synchronization, state changes, +activation in push or pull mode, and queries. + +In most cases, when writing sink elements, there is no need to implement +class methods from #GstElement or to set functions on pads, because the +#GstBaseSink infrastructure should be sufficient. + +#GstBaseSink provides support for exactly one sink pad, which should be +named "sink". A sink implementation (subclass of #GstBaseSink) should +install a pad template in its class_init function, like so: +|[<!-- language="C" --> +static void +my_element_class_init (GstMyElementClass *klass) +{ + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + + // sinktemplate should be a #GstStaticPadTemplate with direction + // %GST_PAD_SINK and name "sink" + gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate); + + gst_element_class_set_static_metadata (gstelement_class, + "Sink name", + "Sink", + "My Sink element", + "The author <my.sink@my.email>"); +} +]| + +#GstBaseSink will handle the prerolling correctly. This means that it will +return %GST_STATE_CHANGE_ASYNC from a state change to PAUSED until the first +buffer arrives in this element. The base class will call the +#GstBaseSinkClass::preroll vmethod with this preroll buffer and will then +commit the state change to the next asynchronously pending state. + +When the element is set to PLAYING, #GstBaseSink will synchronise on the +clock using the times returned from #GstBaseSinkClass::get_times. If this +function returns %GST_CLOCK_TIME_NONE for the start time, no synchronisation +will be done. Synchronisation can be disabled entirely by setting the object +#GstBaseSink:sync property to %FALSE. + +After synchronisation the virtual method #GstBaseSinkClass::render will be +called. Subclasses should minimally implement this method. + +Subclasses that synchronise on the clock in the #GstBaseSinkClass::render +method are supported as well. These classes typically receive a buffer in +the render method and can then potentially block on the clock while +rendering. A typical example is an audiosink. +These subclasses can use gst_base_sink_wait_preroll() to perform the +blocking wait. + +Upon receiving the EOS event in the PLAYING state, #GstBaseSink will wait +for the clock to reach the time indicated by the stop time of the last +#GstBaseSinkClass::get_times call before posting an EOS message. When the +element receives EOS in PAUSED, preroll completes, the event is queued and an +EOS message is posted when going to PLAYING. + +#GstBaseSink will internally use the %GST_EVENT_SEGMENT events to schedule +synchronisation and clipping of buffers. Buffers that fall completely outside +of the current segment are dropped. Buffers that fall partially in the +segment are rendered (and prerolled). Subclasses should do any subbuffer +clipping themselves when needed. + +#GstBaseSink will by default report the current playback position in +%GST_FORMAT_TIME based on the current clock time and segment information. +If no clock has been set on the element, the query will be forwarded +upstream. + +The #GstBaseSinkClass::set_caps function will be called when the subclass +should configure itself to process a specific media type. + +The #GstBaseSinkClass::start and #GstBaseSinkClass::stop virtual methods +will be called when resources should be allocated. Any +#GstBaseSinkClass::preroll, #GstBaseSinkClass::render and +#GstBaseSinkClass::set_caps function will be called between the +#GstBaseSinkClass::start and #GstBaseSinkClass::stop calls. + +The #GstBaseSinkClass::event virtual method will be called when an event is +received by #GstBaseSink. Normally this method should only be overridden by +very specific elements (such as file sinks) which need to handle the +newsegment event specially. + +The #GstBaseSinkClass::unlock method is called when the elements should +unblock any blocking operations they perform in the +#GstBaseSinkClass::render method. This is mostly useful when the +#GstBaseSinkClass::render method performs a blocking write on a file +descriptor, for example. + +The #GstBaseSink:max-lateness property affects how the sink deals with +buffers that arrive too late in the sink. A buffer arrives too late in the +sink when the presentation time (as a combination of the last segment, buffer +timestamp and element base_time) plus the duration is before the current +time of the clock. +If the frame is later than max-lateness, the sink will drop the buffer +without calling the render method. +This feature is disabled if sync is disabled, the +#GstBaseSinkClass::get_times method does not return a valid start time or +max-lateness is set to -1 (the default). +Subclasses can use gst_base_sink_set_max_lateness() to configure the +max-lateness value. + +The #GstBaseSink:qos property will enable the quality-of-service features of +the basesink which gather statistics about the real-time performance of the +clock synchronisation. For each buffer received in the sink, statistics are +gathered and a QOS event is sent upstream with these numbers. This +information can then be used by upstream elements to reduce their processing +rate, for example. + +The #GstBaseSink:async property can be used to instruct the sink to never +perform an ASYNC state change. This feature is mostly usable when dealing +with non-synchronized streams or sparse streams.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <virtual-method name="activate_pull"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="fixate"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">Called to get sink pad caps from the subclass.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_times"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">Get the start and end times for syncing on this buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="start" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">the start #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="end" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">the end #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="prepare"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="prepare_list"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="buffer_list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="preroll"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="propose_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="render"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="render_list"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="buffer_list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="unlock"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="unlock_stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="wait_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <method name="do_preroll" c:identifier="gst_base_sink_do_preroll"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">If the @sink spawns its own thread for pulling buffers from upstream it +should call this method after it has pulled a buffer. If the element needed +to preroll, this function will perform the preroll and will then block +until the element state is changed. + +This function should be called with the PREROLL_LOCK held.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">%GST_FLOW_OK if the preroll completed and processing can +continue. Any other return value should be returned from the render vmethod.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="obj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the mini object that caused the preroll</doc> + <type name="Gst.MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </method> + <method name="get_blocksize" c:identifier="gst_base_sink_get_blocksize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Get the number of bytes that the sink will pull when it is operating in pull +mode.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the number of bytes @sink will pull in pull mode.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_drop_out_of_segment" c:identifier="gst_base_sink_get_drop_out_of_segment" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Checks if @sink is currently configured to drop buffers which are outside +the current segment</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">%TRUE if the sink is configured to drop buffers outside the +current segment.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_last_sample" c:identifier="gst_base_sink_get_last_sample"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Get the last sample that arrived in the sink and was used for preroll or for +rendering. This property can be used to generate thumbnails. + +The #GstCaps on the sample can be used to determine the type of the buffer. + +Free-function: gst_sample_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstSample. gst_sample_unref() after + usage. This function returns %NULL when no buffer has arrived in the + sink yet or when the sink is not in PAUSED or PLAYING.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_latency" c:identifier="gst_base_sink_get_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Get the currently configured latency.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">The configured latency.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_bitrate" c:identifier="gst_base_sink_get_max_bitrate" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Get the maximum amount of bits per second that the sink will render.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the maximum number of bits per second @sink will render.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_lateness" c:identifier="gst_base_sink_get_max_lateness"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Gets the max lateness value. See gst_base_sink_set_max_lateness() for +more details.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">The maximum time in nanoseconds that a buffer can be late +before it is dropped and not rendered. A value of -1 means an +unlimited time.</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_processing_deadline" c:identifier="gst_base_sink_get_processing_deadline" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Get the processing deadline of @sink. see +gst_base_sink_set_processing_deadline() for more information about +the processing deadline.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Get the render delay of @sink. see gst_base_sink_set_render_delay() for more +information about the render delay.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the render delay of @sink.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stats" c:identifier="gst_base_sink_get_stats" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Return various #GstBaseSink statistics. This function returns a #GstStructure +with name `application/x-gst-base-sink-stats` with the following fields: + +- "average-rate" G_TYPE_DOUBLE average frame rate +- "dropped" G_TYPE_UINT64 Number of dropped frames +- "rendered" G_TYPE_UINT64 Number of rendered frames</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">pointer to #GstStructure</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">#GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_sync" c:identifier="gst_base_sink_get_sync"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Checks if @sink is currently configured to synchronize against the +clock.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">%TRUE if the sink is configured to synchronize against the clock.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_throttle_time" c:identifier="gst_base_sink_get_throttle_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Get the time that will be inserted between frames to control the +maximum buffers per second.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the number of nanoseconds @sink will put between frames.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ts_offset" c:identifier="gst_base_sink_get_ts_offset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Get the synchronisation offset of @sink.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">The synchronisation offset.</doc> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_async_enabled" c:identifier="gst_base_sink_is_async_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Checks if @sink is currently configured to perform asynchronous state +changes to PAUSED.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">%TRUE if the sink is configured to perform asynchronous state +changes.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_last_sample_enabled" c:identifier="gst_base_sink_is_last_sample_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Checks if @sink is currently configured to store the last received sample in +the last-sample property.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">%TRUE if the sink is configured to store the last received sample.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_qos_enabled" c:identifier="gst_base_sink_is_qos_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Checks if @sink is currently configured to send Quality-of-Service events +upstream.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">%TRUE if the sink is configured to perform Quality-of-Service.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <method name="query_latency" c:identifier="gst_base_sink_query_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Query the sink for the latency parameters. The latency will be queried from +the upstream elements. @live will be %TRUE if @sink is configured to +synchronize against the clock. @upstream_live will be %TRUE if an upstream +element is live. + +If both @live and @upstream_live are %TRUE, the sink will want to compensate +for the latency introduced by the upstream elements by setting the +@min_latency to a strictly positive value. + +This function is mostly used by subclasses.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">%TRUE if the query succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="live" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">if the sink is live</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="upstream_live" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">if an upstream element is live</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="min_latency" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the min latency of the upstream elements</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="max_latency" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the max latency of the upstream elements</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="set_async_enabled" c:identifier="gst_base_sink_set_async_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Configures @sink to perform all state changes asynchronously. When async is +disabled, the sink will immediately go to PAUSED instead of waiting for a +preroll buffer. This feature is useful if the sink does not synchronize +against the clock or when it is dealing with sparse streams.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the new async value.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_blocksize" c:identifier="gst_base_sink_set_blocksize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Set the number of bytes that the sink will pull when it is operating in pull +mode.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="blocksize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the blocksize in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_drop_out_of_segment" c:identifier="gst_base_sink_set_drop_out_of_segment" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Configure @sink to drop buffers which are outside the current segment</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="drop_out_of_segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">drop buffers outside the segment</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_last_sample_enabled" c:identifier="gst_base_sink_set_last_sample_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Configures @sink to store the last received sample in the last-sample +property.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the new enable-last-sample value.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_max_bitrate" c:identifier="gst_base_sink_set_max_bitrate" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Set the maximum amount of bits per second that the sink will render.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="max_bitrate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the max_bitrate in bits per second</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="set_max_lateness" c:identifier="gst_base_sink_set_max_lateness"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Sets the new max lateness value to @max_lateness. This value is +used to decide if a buffer should be dropped or not based on the +buffer timestamp and the current clock time. A value of -1 means +an unlimited time.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="max_lateness" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the new max lateness value.</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_processing_deadline" c:identifier="gst_base_sink_set_processing_deadline" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="processing_deadline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Configures @sink to send Quality-of-Service events upstream.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the new qos value.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_render_delay" c:identifier="gst_base_sink_set_render_delay"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Set the render delay in @sink to @delay. The render delay is the time +between actual rendering of a buffer and its synchronisation time. Some +devices might delay media rendering which can be compensated for with this +function. + +After calling this function, this sink will report additional latency and +other sinks will adjust their latency to delay the rendering of their media. + +This function is usually called by subclasses.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="delay" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the new delay</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_sync" c:identifier="gst_base_sink_set_sync"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Configures @sink to synchronize on the clock or not. When +@sync is %FALSE, incoming samples will be played as fast as +possible. If @sync is %TRUE, the timestamps of the incoming +buffers will be used to schedule the exact render time of its +contents.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="sync" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the new sync value.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_throttle_time" c:identifier="gst_base_sink_set_throttle_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Set the time that will be inserted between rendered buffers. This +can be used to control the maximum buffers per second that the sink +will render.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">a #GstBaseSink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="throttle" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the throttle time in nanoseconds</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="set_ts_offset" c:identifier="gst_base_sink_set_ts_offset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Adjust the synchronisation of @sink with @offset. A negative value will +render buffers earlier than their timestamp. A positive value will delay +rendering. This function can be used to fix playback of badly timestamped +buffers.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the new offset</doc> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </parameter> + </parameters> + </method> + <method name="wait" c:identifier="gst_base_sink_wait"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">This function will wait for preroll to complete and will then block until @time +is reached. It is usually called by subclasses that use their own internal +synchronisation but want to let some synchronization (like EOS) be handled +by the base class. + +This function should only be called with the PREROLL_LOCK held (like when +receiving an EOS event in the ::event vmethod or when handling buffers in +::render). + +The @time argument should be the running_time of when the timeout should happen +and will be adjusted with any latency and offset configured in the sink.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">#GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the running_time to be reached</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="jitter" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the jitter to be filled with time diff, or %NULL</doc> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/> + </parameter> + </parameters> + </method> + <method name="wait_clock" c:identifier="gst_base_sink_wait_clock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">This function will block until @time is reached. It is usually called by +subclasses that use their own internal synchronisation. + +If @time is not valid, no synchronisation is done and %GST_CLOCK_BADTIME is +returned. Likewise, if synchronisation is disabled in the element or there +is no clock, no synchronisation is done and %GST_CLOCK_BADTIME is returned. + +This function should only be called with the PREROLL_LOCK held, like when +receiving an EOS event in the #GstBaseSinkClass::event vmethod or when +receiving a buffer in +the #GstBaseSinkClass::render vmethod. + +The @time argument should be the running_time of when this method should +return and is not adjusted with any latency or offset configured in the +sink.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">#GstClockReturn</doc> + <type name="Gst.ClockReturn" c:type="GstClockReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the running_time to be reached</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="jitter" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the jitter to be filled with time diff, or %NULL</doc> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/> + </parameter> + </parameters> + </method> + <method name="wait_preroll" c:identifier="gst_base_sink_wait_preroll"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">If the #GstBaseSinkClass::render method performs its own synchronisation +against the clock it must unblock when going from PLAYING to the PAUSED state +and call this method before continuing to render the remaining data. + +If the #GstBaseSinkClass::render method can block on something else than +the clock, it must also be ready to unblock immediately on +the #GstBaseSinkClass::unlock method and cause the +#GstBaseSinkClass::render method to immediately call this function. +In this case, the subclass must be prepared to continue rendering where it +left off if this function returns %GST_FLOW_OK. + +This function will block until a state change to PLAYING happens (in which +case this function returns %GST_FLOW_OK) or the processing must be stopped due +to a state change to READY or a FLUSH event (in which case this function +returns %GST_FLOW_FLUSHING). + +This function should only be called with the PREROLL_LOCK held, like in the +render function.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">%GST_FLOW_OK if the preroll completed and processing can +continue. Any other return value should be returned from the render vmethod.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">the sink</doc> + <type name="BaseSink" c:type="GstBaseSink*"/> + </instance-parameter> + </parameters> + </method> + <property name="async" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">If set to %TRUE, the basesink will perform asynchronous state changes. +When set to %FALSE, the sink will not signal the parent when it prerolls. +Use this option when dealing with sparse streams or when synchronisation is +not required.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="blocksize" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">The amount of bytes to pull when operating in pull mode.</doc> + <type name="guint" c:type="guint"/> + </property> + <property name="enable-last-sample" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Enable the last-sample property. If %FALSE, basesink doesn't keep a +reference to the last buffer arrived and the last-sample property is always +set to %NULL. This can be useful if you need buffers to be released as soon +as possible, eg. if you're using a buffer pool.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="last-sample" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">The last buffer that arrived in the sink and was used for preroll or for +rendering. This property can be used to generate thumbnails. This property +can be %NULL when the sink has not yet received a buffer.</doc> + <type name="Gst.Sample"/> + </property> + <property name="max-bitrate" version="1.2" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Control the maximum amount of bits that will be rendered per second. +Setting this property to a value bigger than 0 will make the sink delay +rendering of the buffers when it would exceed to max-bitrate.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">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> + <property name="render-delay" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">The additional delay between synchronisation and actual rendering of the +media. This property will add additional latency to the device in order to +make other sinks compensate for the delay.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="stats" version="1.18" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Various #GstBaseSink statistics. This property returns a #GstStructure +with name `application/x-gst-base-sink-stats` with the following fields: + +- "average-rate" G_TYPE_DOUBLE average frame rate +- "dropped" G_TYPE_UINT64 Number of dropped frames +- "rendered" G_TYPE_UINT64 Number of rendered frames</doc> + <type name="Gst.Structure"/> + </property> + <property name="sync" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="throttle-time" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">The time to insert between buffers. This property can be used to control +the maximum amount of buffers per second to render. Setting this property +to a value bigger than 0 will make the sink create THROTTLE QoS events.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="ts-offset" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.c">Controls the final synchronisation, a negative value will render the buffer +earlier while a positive value delays playback. This property can be +used to fix synchronisation in bad files.</doc> + <type name="gint64" c:type="gint64"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="pad_mode"> + <type name="Gst.PadMode" c:type="GstPadMode"/> + </field> + <field name="offset"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="can_activate_pull"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="can_activate_push"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="preroll_lock"> + <type name="GLib.Mutex" c:type="GMutex"/> + </field> + <field name="preroll_cond"> + <type name="GLib.Cond" c:type="GCond"/> + </field> + <field name="eos"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="need_preroll"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="have_preroll"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="playing_async"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="have_newsegment"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="clock_id" readable="0" private="1"> + <type name="Gst.ClockID" c:type="GstClockID"/> + </field> + <field name="sync" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="flushing" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="running" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="max_lateness" readable="0" private="1"> + <type name="gint64" c:type="gint64"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseSinkPrivate" c:type="GstBaseSinkPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseSinkClass" c:type="GstBaseSinkClass" glib:is-gtype-struct-for="BaseSink"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">Subclasses can override any of the available virtual methods or not, as +needed. At the minimum, the @render method should be overridden to +output/present buffers.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">Element parent class</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="get_caps"> + <callback name="get_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_caps"> + <callback name="set_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="fixate"> + <callback name="fixate"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="activate_pull"> + <callback name="activate_pull"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_times"> + <callback name="get_times"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="start" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">the start #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="end" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h">the end #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="propose_allocation"> + <callback name="propose_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unlock"> + <callback name="unlock"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unlock_stop"> + <callback name="unlock_stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="query"> + <callback name="query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="event"> + <callback name="event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="wait_event"> + <callback name="wait_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare"> + <callback name="prepare"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare_list"> + <callback name="prepare_list"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer_list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="preroll"> + <callback name="preroll"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="render"> + <callback name="render"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="render_list"> + <callback name="render_list"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer_list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BaseSinkPrivate" c:type="GstBaseSinkPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + </record> + <class name="BaseSrc" c:symbol-prefix="base_src" c:type="GstBaseSrc" parent="Gst.Element" abstract="1" glib:type-name="GstBaseSrc" glib:get-type="gst_base_src_get_type" glib:type-struct="BaseSrcClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">This is a generic base class for source elements. The following +types of sources are supported: + + * random access sources like files + * seekable sources + * live sources + +The source can be configured to operate in any #GstFormat with the +gst_base_src_set_format() method. The currently set format determines +the format of the internal #GstSegment and any %GST_EVENT_SEGMENT +events. The default format for #GstBaseSrc is %GST_FORMAT_BYTES. + +#GstBaseSrc always supports push mode scheduling. If the following +conditions are met, it also supports pull mode scheduling: + + * The format is set to %GST_FORMAT_BYTES (default). + * #GstBaseSrcClass::is_seekable returns %TRUE. + +If all the conditions are met for operating in pull mode, #GstBaseSrc is +automatically seekable in push mode as well. The following conditions must +be met to make the element seekable in push mode when the format is not +%GST_FORMAT_BYTES: + +* #GstBaseSrcClass::is_seekable returns %TRUE. +* #GstBaseSrcClass::query can convert all supported seek formats to the + internal format as set with gst_base_src_set_format(). +* #GstBaseSrcClass::do_seek is implemented, performs the seek and returns + %TRUE. + +When the element does not meet the requirements to operate in pull mode, the +offset and length in the #GstBaseSrcClass::create method should be ignored. +It is recommended to subclass #GstPushSrc instead, in this situation. If the +element can operate in pull mode but only with specific offsets and +lengths, it is allowed to generate an error when the wrong values are passed +to the #GstBaseSrcClass::create function. + +#GstBaseSrc has support for live sources. Live sources are sources that when +paused discard data, such as audio or video capture devices. A typical live +source also produces data at a fixed rate and thus provides a clock to publish +this rate. +Use gst_base_src_set_live() to activate the live source mode. + +A live source does not produce data in the PAUSED state. This means that the +#GstBaseSrcClass::create method will not be called in PAUSED but only in +PLAYING. To signal the pipeline that the element will not produce data, the +return value from the READY to PAUSED state will be +%GST_STATE_CHANGE_NO_PREROLL. + +A typical live source will timestamp the buffers it creates with the +current running time of the pipeline. This is one reason why a live source +can only produce data in the PLAYING state, when the clock is actually +distributed and running. + +Live sources that synchronize and block on the clock (an audio source, for +example) can use gst_base_src_wait_playing() when the +#GstBaseSrcClass::create function was interrupted by a state change to +PAUSED. + +The #GstBaseSrcClass::get_times method can be used to implement pseudo-live +sources. It only makes sense to implement the #GstBaseSrcClass::get_times +function if the source is a live source. The #GstBaseSrcClass::get_times +function should return timestamps starting from 0, as if it were a non-live +source. The base class will make sure that the timestamps are transformed +into the current running_time. The base source will then wait for the +calculated running_time before pushing out the buffer. + +For live sources, the base class will by default report a latency of 0. +For pseudo live sources, the base class will by default measure the difference +between the first buffer timestamp and the start time of get_times and will +report this value as the latency. +Subclasses should override the query function when this behaviour is not +acceptable. + +There is only support in #GstBaseSrc for exactly one source pad, which +should be named "src". A source implementation (subclass of #GstBaseSrc) +should install a pad template in its class_init function, like so: +|[<!-- language="C" --> +static void +my_element_class_init (GstMyElementClass *klass) +{ + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + // srctemplate should be a #GstStaticPadTemplate with direction + // %GST_PAD_SRC and name "src" + gst_element_class_add_static_pad_template (gstelement_class, &srctemplate); + + gst_element_class_set_static_metadata (gstelement_class, + "Source name", + "Source", + "My Source element", + "The author <my.sink@my.email>"); +} +]| + +## Controlled shutdown of live sources in applications + +Applications that record from a live source may want to stop recording +in a controlled way, so that the recording is stopped, but the data +already in the pipeline is processed to the end (remember that many live +sources would go on recording forever otherwise). For that to happen the +application needs to make the source stop recording and send an EOS +event down the pipeline. The application would then wait for an +EOS message posted on the pipeline's bus to know when all data has +been processed and the pipeline can safely be stopped. + +An application may send an EOS event to a source element to make it +perform the EOS logic (send EOS event downstream or post a +%GST_MESSAGE_SEGMENT_DONE on the bus). This can typically be done +with the gst_element_send_event() function on the element or its parent bin. + +After the EOS has been sent to the element, the application should wait for +an EOS message to be posted on the pipeline's bus. Once this EOS message is +received, it may safely shut down the entire pipeline.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <virtual-method name="alloc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">Ask the subclass to allocate an output buffer with @offset and @size, the default +implementation will use the negotiated allocator.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buf" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">Ask the subclass to create a buffer with @offset and @size, the default +implementation will call alloc if no allocated @buf is provided and then call fill.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buf" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="decide_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="do_seek"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="fill"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="fixate"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">Called if, in negotiation, caps need fixating.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">the fixated caps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">Called to get the caps to report.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">Get the total size of the resource in the format set by +gst_base_src_set_format().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">%TRUE if the size is available and has been set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_times"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">Given @buffer, return @start and @end time when it should be pushed +out. The base class will sync on the clock using these times.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="start" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="end" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="is_seekable"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="negotiate" invoker="negotiate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Negotiates src pad caps with downstream elements. +Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in any case. But marks it again +if #GstBaseSrcClass::negotiate fails. + +Do not call this in the #GstBaseSrcClass::fill vmethod. Call this in +#GstBaseSrcClass::create or in #GstBaseSrcClass::alloc, _before_ any +buffer is allocated.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="prepare_seek_segment"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="seek" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_caps" invoker="set_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Set new caps on the basesrc source pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if the caps could be set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstBaseSrc</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="unlock"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="unlock_stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="get_allocator" c:identifier="gst_base_src_get_allocator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Lets #GstBaseSrc sub-classes to know the memory @allocator +used by the base class and its @params. + +Unref the @allocator after usage.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstBaseSrc</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="allocator" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the #GstAllocator +used</doc> + <type name="Gst.Allocator" c:type="GstAllocator**"/> + </parameter> + <parameter name="params" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the #GstAllocationParams of @allocator</doc> + <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="get_blocksize" c:identifier="gst_base_src_get_blocksize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Get the number of bytes that @src will push out with each buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the number of bytes pushed with each buffer.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the source</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_buffer_pool" c:identifier="gst_base_src_get_buffer_pool"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the instance of the #GstBufferPool used +by the src; unref it after usage.</doc> + <type name="Gst.BufferPool" c:type="GstBufferPool*"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstBaseSrc</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_do_timestamp" c:identifier="gst_base_src_get_do_timestamp"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Query if @src timestamps outgoing buffers based on the current running_time.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if the base class will automatically timestamp outgoing buffers.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the source</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_async" c:identifier="gst_base_src_is_async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Get the current async behaviour of @src. See also gst_base_src_set_async().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if @src is operating in async mode.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_live" c:identifier="gst_base_src_is_live"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Check if an element is in live mode.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if element is in live mode.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="negotiate" c:identifier="gst_base_src_negotiate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Negotiates src pad caps with downstream elements. +Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in any case. But marks it again +if #GstBaseSrcClass::negotiate fails. + +Do not call this in the #GstBaseSrcClass::fill vmethod. Call this in +#GstBaseSrcClass::create or in #GstBaseSrcClass::alloc, _before_ any +buffer is allocated.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="new_seamless_segment" c:identifier="gst_base_src_new_seamless_segment" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Prepare a new seamless segment for emission downstream. This function must +only be called by derived sub-classes, and only from the #GstBaseSrcClass::create function, +as the stream-lock needs to be held. + +The format for the new segment will be the current format of the source, as +configured with gst_base_src_set_format()</doc> + <doc-deprecated xml:space="preserve">Use gst_base_src_new_segment()</doc-deprecated> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if preparation of the seamless segment succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">The source</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">The new start value for the segment</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Stop value for the new segment</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">The new time value for the start of the new segment</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="new_segment" c:identifier="gst_base_src_new_segment" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Prepare a new segment for emission downstream. This function must +only be called by derived sub-classes, and only from the #GstBaseSrcClass::create function, +as the stream-lock needs to be held. + +The format for the @segment must be identical with the current format +of the source, as configured with gst_base_src_set_format(). + +The format of @src must not be %GST_FORMAT_UNDEFINED and the format +should be configured via gst_base_src_set_format() before calling this method.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if preparation of new segment succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstBaseSrc</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a pointer to a #GstSegment</doc> + <type name="Gst.Segment" c:type="const GstSegment*"/> + </parameter> + </parameters> + </method> + <method name="push_segment" c:identifier="gst_base_src_push_segment" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Send a new segment downstream. This function must +only be called by derived sub-classes, and only from the #GstBaseSrcClass::create function, +as the stream-lock needs to be held. +This method also requires that an out caps has been configured, so +gst_base_src_set_caps() needs to have been called before. + +The format for the @segment must be identical with the current format +of the source, as configured with gst_base_src_set_format(). + +The format of @src must not be %GST_FORMAT_UNDEFINED and the format +should be configured via gst_base_src_set_format() before calling this method. + +This is a variant of gst_base_src_new_segment() sending the segment right away, +which can be useful to ensure events ordering.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if sending of new segment succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstBaseSrc</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a pointer to a #GstSegment</doc> + <type name="Gst.Segment" c:type="const GstSegment*"/> + </parameter> + </parameters> + </method> + <method name="query_latency" c:identifier="gst_base_src_query_latency"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Query the source for the latency parameters. @live will be %TRUE when @src is +configured as a live source. @min_latency and @max_latency will be set +to the difference between the running time and the timestamp of the first +buffer. + +This function is mostly used by subclasses.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if the query succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the source</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="live" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">if the source is live</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="min_latency" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the min latency of the source</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="max_latency" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the max latency of the source</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="set_async" c:identifier="gst_base_src_set_async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Configure async behaviour in @src, no state change will block. The open, +close, start, stop, play and pause virtual methods will be executed in a +different thread and are thus allowed to perform blocking operations. Any +blocking operation should be unblocked with the unlock vmethod.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="async" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">new async mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_automatic_eos" c:identifier="gst_base_src_set_automatic_eos" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">If @automatic_eos is %TRUE, @src will automatically go EOS if a buffer +after the total size is returned. By default this is %TRUE but sources +that can't return an authoritative size and only know that they're EOS +when trying to read more should set this to %FALSE. + +When @src operates in %GST_FORMAT_TIME, #GstBaseSrc will send an EOS +when a buffer outside of the currently configured segment is pushed if +@automatic_eos is %TRUE. Since 1.16, if @automatic_eos is %FALSE an +EOS will be pushed only when the #GstBaseSrcClass::create implementation +returns %GST_FLOW_EOS.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="automatic_eos" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">automatic eos</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_blocksize" c:identifier="gst_base_src_set_blocksize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Set the number of bytes that @src will push out with each buffer. When +@blocksize is set to -1, a default length will be used.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the source</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="blocksize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the new blocksize in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_caps" c:identifier="gst_base_src_set_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Set new caps on the basesrc source pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if the caps could be set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstBaseSrc</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_do_timestamp" c:identifier="gst_base_src_set_do_timestamp"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Configure @src to automatically timestamp outgoing buffers based on the +current running_time of the pipeline. This property is mostly useful for live +sources.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the source</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">enable or disable timestamping</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_dynamic_size" c:identifier="gst_base_src_set_dynamic_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">If not @dynamic, size is only updated when needed, such as when trying to +read past current tracked size. Otherwise, size is checked for upon each +read.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="dynamic" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">new dynamic size mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_format" c:identifier="gst_base_src_set_format"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Sets the default format of the source. This will be the format used +for sending SEGMENT events and for performing seeks. + +If a format of GST_FORMAT_BYTES is set, the element will be able to +operate in pull mode if the #GstBaseSrcClass::is_seekable returns %TRUE. + +This function must only be called in states < %GST_STATE_PAUSED.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the format to use</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + </parameters> + </method> + <method name="set_live" c:identifier="gst_base_src_set_live"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">If the element listens to a live source, @live should +be set to %TRUE. + +A live source will not produce data in the PAUSED state and +will therefore not be able to participate in the PREROLL phase +of a pipeline. To signal this fact to the application and the +pipeline, the state change return value of the live source will +be GST_STATE_CHANGE_NO_PREROLL.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">new live-mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="start_complete" c:identifier="gst_base_src_start_complete"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Complete an asynchronous start operation. When the subclass overrides the +start method, it should call gst_base_src_start_complete() when the start +operation completes either from the same thread or from an asynchronous +helper thread.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="basesrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </parameter> + </parameters> + </method> + <method name="start_wait" c:identifier="gst_base_src_start_wait"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Wait until the start operation completes.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstFlowReturn.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="basesrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <method name="submit_buffer_list" c:identifier="gst_base_src_submit_buffer_list" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">Subclasses can call this from their create virtual method implementation +to submit a buffer list to be pushed out later. This is useful in +cases where the create function wants to produce multiple buffers to be +pushed out in one go in form of a #GstBufferList, which can reduce overhead +drastically, especially for packetised inputs (for data streams where +the packetisation/chunking is not important it is usually more efficient +to return larger buffers instead). + +Subclasses that use this function from their create function must return +%GST_FLOW_OK and no buffer from their create virtual method implementation. +If a buffer is returned after a buffer list has also been submitted via this +function the behaviour is undefined. + +Subclasses must only call this function once per create function call and +subclasses must only call this function when the source operates in push +mode.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstBaseSrc</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + <parameter name="buffer_list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstBufferList</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </method> + <method name="wait_playing" c:identifier="gst_base_src_wait_playing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">If the #GstBaseSrcClass::create method performs its own synchronisation +against the clock it must unblock when going from PLAYING to the PAUSED state +and call this method before continuing to produce the remaining data. + +This function will block until a state change to PLAYING happens (in which +case this function returns %GST_FLOW_OK) or the processing must be stopped due +to a state change to READY or a FLUSH event (in which case this function +returns %GST_FLOW_FLUSHING).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%GST_FLOW_OK if @src is PLAYING and processing can +continue. Any other return value should be returned from the create vmethod.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">the src</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </instance-parameter> + </parameters> + </method> + <property name="blocksize" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="do-timestamp" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="num-buffers" writable="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <property name="typefind" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="live_lock"> + <type name="GLib.Mutex" c:type="GMutex"/> + </field> + <field name="live_cond"> + <type name="GLib.Cond" c:type="GCond"/> + </field> + <field name="is_live"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="live_running"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="blocksize"> + <type name="guint" c:type="guint"/> + </field> + <field name="can_activate_push"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="random_access"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="clock_id"> + <type name="Gst.ClockID" c:type="GstClockID"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="need_newsegment"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="num_buffers"> + <type name="gint" c:type="gint"/> + </field> + <field name="num_buffers_left"> + <type name="gint" c:type="gint"/> + </field> + <field name="typefind"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="running"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="pending_seek"> + <type name="Gst.Event" c:type="GstEvent*"/> + </field> + <field name="priv"> + <type name="BaseSrcPrivate" c:type="GstBaseSrcPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseSrcClass" c:type="GstBaseSrcClass" glib:is-gtype-struct-for="BaseSrc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">Subclasses can override any of the available virtual methods or not, as +needed. At the minimum, the @create method should be overridden to produce +buffers.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">Element parent class</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="get_caps"> + <callback name="get_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="negotiate"> + <callback name="negotiate"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">base source instance</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="fixate"> + <callback name="fixate"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">the fixated caps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="caps" transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_caps"> + <callback name="set_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">%TRUE if the caps could be set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstBaseSrc</doc> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.c">a #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decide_allocation"> + <callback name="decide_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_times"> + <callback name="get_times"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="start" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="end" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_size"> + <callback name="get_size"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">%TRUE if the size is available and has been set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="is_seekable"> + <callback name="is_seekable"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare_seek_segment"> + <callback name="prepare_seek_segment"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="seek" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="do_seek"> + <callback name="do_seek"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unlock"> + <callback name="unlock"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unlock_stop"> + <callback name="unlock_stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="query"> + <callback name="query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="event"> + <callback name="event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create"> + <callback name="create"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buf" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="alloc"> + <callback name="alloc"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buf" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="fill"> + <callback name="fill"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="BaseSrcFlags" c:type="GstBaseSrcFlags"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">The #GstElement flags that a basesrc element may have.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <member name="starting" value="16384" c:identifier="GST_BASE_SRC_FLAG_STARTING"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">has source is starting</doc> + </member> + <member name="started" value="32768" c:identifier="GST_BASE_SRC_FLAG_STARTED"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">has source been started</doc> + </member> + <member name="last" value="1048576" c:identifier="GST_BASE_SRC_FLAG_LAST"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h">offset to define more flags</doc> + </member> + </bitfield> + <record name="BaseSrcPrivate" c:type="GstBaseSrcPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + </record> + <class name="BaseTransform" c:symbol-prefix="base_transform" c:type="GstBaseTransform" parent="Gst.Element" abstract="1" glib:type-name="GstBaseTransform" glib:get-type="gst_base_transform_get_type" glib:type-struct="BaseTransformClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">This base class is for filter elements that process data. Elements +that are suitable for implementation using #GstBaseTransform are ones +where the size and caps of the output is known entirely from the input +caps and buffer sizes. These include elements that directly transform +one buffer into another, modify the contents of a buffer in-place, as +well as elements that collate multiple input buffers into one output buffer, +or that expand one input buffer into multiple output buffers. See below +for more concrete use cases. + +It provides for: + +* one sinkpad and one srcpad +* Possible formats on sink and source pad implemented + with custom transform_caps function. By default uses + same format on sink and source. + +* Handles state changes +* Does flushing +* Push mode +* Pull mode if the sub-class transform can operate on arbitrary data + +# Use Cases + +## Passthrough mode + + * Element has no interest in modifying the buffer. It may want to inspect it, + in which case the element should have a transform_ip function. If there + is no transform_ip function in passthrough mode, the buffer is pushed + intact. + + * The #GstBaseTransformClass.passthrough_on_same_caps variable + will automatically set/unset passthrough based on whether the + element negotiates the same caps on both pads. + + * #GstBaseTransformClass.passthrough_on_same_caps on an element that + doesn't implement a transform_caps function is useful for elements that + only inspect data (such as level) + + * Example elements + + * Level + * Videoscale, audioconvert, videoconvert, audioresample in certain modes. + +## Modifications in-place - input buffer and output buffer are the same thing. + +* The element must implement a transform_ip function. +* Output buffer size must <= input buffer size +* If the always_in_place flag is set, non-writable buffers will be copied + and passed to the transform_ip function, otherwise a new buffer will be + created and the transform function called. + +* Incoming writable buffers will be passed to the transform_ip function + immediately. +* only implementing transform_ip and not transform implies always_in_place = %TRUE + + * Example elements: + * Volume + * Audioconvert in certain modes (signed/unsigned conversion) + * videoconvert in certain modes (endianness swapping) + +## Modifications only to the caps/metadata of a buffer + +* The element does not require writable data, but non-writable buffers + should be subbuffered so that the meta-information can be replaced. + +* Elements wishing to operate in this mode should replace the + prepare_output_buffer method to create subbuffers of the input buffer + and set always_in_place to %TRUE + +* Example elements + * Capsfilter when setting caps on outgoing buffers that have + none. + * identity when it is going to re-timestamp buffers by + datarate. + +## Normal mode + * always_in_place flag is not set, or there is no transform_ip function + * Element will receive an input buffer and output buffer to operate on. + * Output buffer is allocated by calling the prepare_output_buffer function. + * Example elements: + * Videoscale, videoconvert, audioconvert when doing + scaling/conversions + +## Special output buffer allocations + * Elements which need to do special allocation of their output buffers + beyond allocating output buffers via the negotiated allocator or + buffer pool should implement the prepare_output_buffer method. + + * Example elements: + * efence + +# Sub-class settable flags on GstBaseTransform + +* passthrough + + * Implies that in the current configuration, the sub-class is not interested in modifying the buffers. + * Elements which are always in passthrough mode whenever the same caps has been negotiated on both pads can set the class variable passthrough_on_same_caps to have this behaviour automatically. + +* always_in_place + * Determines whether a non-writable buffer will be copied before passing + to the transform_ip function. + + * Implied %TRUE if no transform function is implemented. + * Implied %FALSE if ONLY transform function is implemented.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <virtual-method name="accept_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="before_transform"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="copy_metadata"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="input" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="decide_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="filter_meta"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="api" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="params" transfer-ownership="none"> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="fixate_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="othercaps" transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="generate_output"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="outbuf" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_unit_size"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="prepare_output_buffer"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="input" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="propose_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="decide_query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="incaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="outcaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="full"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="full"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="submit_input_buffer"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="is_discont" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="input" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="transform"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="transform_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="transform_ip"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="transform_meta"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="meta" transfer-ownership="none"> + <type name="Gst.Meta" c:type="GstMeta*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="transform_size"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="othercaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="othersize" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_allocator" c:identifier="gst_base_transform_get_allocator"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Lets #GstBaseTransform sub-classes know the memory @allocator +used by the base class and its @params. + +Unref the @allocator after use.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="allocator" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the #GstAllocator +used</doc> + <type name="Gst.Allocator" c:type="GstAllocator**"/> + </parameter> + <parameter name="params" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the #GstAllocationParams of @allocator</doc> + <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="get_buffer_pool" c:identifier="gst_base_transform_get_buffer_pool"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the instance of the #GstBufferPool used +by @trans; free it after use</doc> + <type name="Gst.BufferPool" c:type="GstBufferPool*"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_in_place" c:identifier="gst_base_transform_is_in_place"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">See if @trans is configured as a in_place transform.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">%TRUE if the transform is configured in in_place mode. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the #GstBaseTransform to query</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_passthrough" c:identifier="gst_base_transform_is_passthrough"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">See if @trans is configured as a passthrough transform.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">%TRUE if the transform is configured in passthrough mode. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the #GstBaseTransform to query</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_qos_enabled" c:identifier="gst_base_transform_is_qos_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Queries if the transform will handle QoS.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">%TRUE if QoS is enabled. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + </parameters> + </method> + <method name="reconfigure" c:identifier="gst_base_transform_reconfigure" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Negotiates src pad caps with downstream elements if the source pad is +marked as needing reconfiguring. Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in +any case. But marks it again if negotiation fails. + +Do not call this in the #GstBaseTransformClass::transform or +#GstBaseTransformClass::transform_ip vmethod. Call this in +#GstBaseTransformClass::submit_input_buffer, +#GstBaseTransformClass::prepare_output_buffer or in +#GstBaseTransformClass::generate_output _before_ any output buffer is +allocated. + +It will be default be called when handling an ALLOCATION query or at the +very beginning of the default #GstBaseTransformClass::submit_input_buffer +implementation.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">%TRUE if the negotiation succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the #GstBaseTransform to set</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + </parameters> + </method> + <method name="reconfigure_sink" c:identifier="gst_base_transform_reconfigure_sink"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Instructs @trans to request renegotiation upstream. This function is +typically called after properties on the transform were set that +influence the input format.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + </parameters> + </method> + <method name="reconfigure_src" c:identifier="gst_base_transform_reconfigure_src"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Instructs @trans to renegotiate a new downstream transform on the next +buffer. This function is typically called after properties on the transform +were set that influence the output format.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_gap_aware" c:identifier="gst_base_transform_set_gap_aware"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">If @gap_aware is %FALSE (the default), output buffers will have the +%GST_BUFFER_FLAG_GAP flag unset. + +If set to %TRUE, the element must handle output buffers with this flag set +correctly, i.e. it can assume that the buffer contains neutral data but must +unset the flag if the output is no neutral data. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="gap_aware" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">New state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_in_place" c:identifier="gst_base_transform_set_in_place"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Determines whether a non-writable buffer will be copied before passing +to the transform_ip function. + + * Always %TRUE if no transform function is implemented. + * Always %FALSE if ONLY transform function is implemented. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the #GstBaseTransform to modify</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="in_place" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Boolean value indicating that we would like to operate +on in_place buffers.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_passthrough" c:identifier="gst_base_transform_set_passthrough"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Set passthrough mode for this filter by default. This is mostly +useful for filters that do not care about negotiation. + +Always %TRUE for filters which don't implement either a transform +or transform_ip or generate_output method. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the #GstBaseTransform to set</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="passthrough" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">boolean indicating passthrough mode.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_prefer_passthrough" c:identifier="gst_base_transform_set_prefer_passthrough" version="1.0.1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">If @prefer_passthrough is %TRUE (the default), @trans will check and +prefer passthrough caps from the list of caps returned by the +transform_caps vmethod. + +If set to %FALSE, the element must order the caps returned from the +transform_caps function in such a way that the preferred format is +first in the list. This can be interesting for transforms that can do +passthrough transforms but prefer to do something else, like a +capsfilter. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="prefer_passthrough" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">New state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_qos_enabled" c:identifier="gst_base_transform_set_qos_enabled"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Enable or disable QoS handling in the transform. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="update_qos" c:identifier="gst_base_transform_update_qos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Set the QoS parameters in the transform. This function is called internally +when a QOS event is received but subclasses can provide custom information +when needed. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="proportion" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the proportion</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="diff" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the diff against the clock</doc> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">the timestamp of the buffer generating the QoS expressed in +running_time.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="update_src_caps" c:identifier="gst_base_transform_update_src_caps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">Updates the srcpad caps and sends 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 information). This way, +they can notify downstream about that change without losing any +buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">%TRUE if the caps could be sent downstream %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">a #GstBaseTransform</doc> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </instance-parameter> + <parameter name="updated_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.c">An updated version of the srcpad caps to be pushed +downstream</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <property name="qos" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="have_segment"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="queued_buf"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseTransformPrivate" c:type="GstBaseTransformPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="19"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseTransformClass" c:type="GstBaseTransformClass" glib:is-gtype-struct-for="BaseTransform"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">Subclasses can override any of the available virtual methods or not, as +needed. At minimum either @transform or @transform_ip need to be overridden. +If the element can overwrite the input data with the results (data is of the +same type and quantity) it should provide @transform_ip.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">Element parent class</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="passthrough_on_same_caps"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">If set to %TRUE, passthrough mode will be + automatically enabled if the caps are the same. + Set to %FALSE by default.</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="transform_ip_on_passthrough"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h">If set to %TRUE, @transform_ip will be called in + passthrough mode. The passed buffer might not be + writable. When %FALSE, neither @transform nor + @transform_ip will be called in passthrough mode. + Set to %TRUE by default.</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="transform_caps"> + <callback name="transform_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="fixate_caps"> + <callback name="fixate_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="othercaps" transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="accept_caps"> + <callback name="accept_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_caps"> + <callback name="set_caps"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="incaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="outcaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="query"> + <callback name="query"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decide_allocation"> + <callback name="decide_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="filter_meta"> + <callback name="filter_meta"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="api" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="params" transfer-ownership="none"> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="propose_allocation"> + <callback name="propose_allocation"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="decide_query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform_size"> + <callback name="transform_size"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="othercaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="othersize" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_unit_size"> + <callback name="get_unit_size"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_event"> + <callback name="sink_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="event" transfer-ownership="full"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_event"> + <callback name="src_event"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="event" transfer-ownership="full"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare_output_buffer"> + <callback name="prepare_output_buffer"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="input" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="copy_metadata"> + <callback name="copy_metadata"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="input" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform_meta"> + <callback name="transform_meta"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="meta" transfer-ownership="none"> + <type name="Gst.Meta" c:type="GstMeta*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="before_transform"> + <callback name="before_transform"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform"> + <callback name="transform"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform_ip"> + <callback name="transform_ip"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="submit_input_buffer"> + <callback name="submit_input_buffer"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="is_discont" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="input" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="generate_output"> + <callback name="generate_output"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="outbuf" direction="out" caller-allocates="0" transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="18"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BaseTransformPrivate" c:type="GstBaseTransformPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + </record> + <record name="BitReader" c:type="GstBitReader"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">#GstBitReader provides a bit reader that can read any number of bits +from a memory buffer. It provides functions for reading any number of bits +into 8, 16, 32 and 64 bit variables.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <field name="data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h">Data from which the bit reader will + read</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="byte" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h">Current byte position</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="bit" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h">Bit position in the current byte</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="free" c:identifier="gst_bit_reader_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Frees a #GstBitReader instance, which was previously allocated by +gst_bit_reader_new().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_bits_uint16" c:identifier="gst_bit_reader_get_bits_uint16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Read @nbits bits into @val and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Pointer to a #guint16 to store the result</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">number of bits to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_bits_uint32" c:identifier="gst_bit_reader_get_bits_uint32"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Read @nbits bits into @val and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">number of bits to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_bits_uint64" c:identifier="gst_bit_reader_get_bits_uint64"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Read @nbits bits into @val and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Pointer to a #guint64 to store the result</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">number of bits to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_bits_uint8" c:identifier="gst_bit_reader_get_bits_uint8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Read @nbits bits into @val and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Pointer to a #guint8 to store the result</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">number of bits to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_pos" c:identifier="gst_bit_reader_get_pos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Returns the current position of a #GstBitReader instance in bits.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">The current position of @reader in bits.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="const GstBitReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_remaining" c:identifier="gst_bit_reader_get_remaining"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Returns the remaining number of bits of a #GstBitReader instance.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">The remaining number of bits of @reader instance.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="const GstBitReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_size" c:identifier="gst_bit_reader_get_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Returns the total number of bits of a #GstBitReader instance.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">The total number of bits of @reader instance.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="const GstBitReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_bit_reader_init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Initializes a #GstBitReader instance to read from @data. This function +can be called on already initialized instances.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">data from which the bit reader should read</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_bits_uint16" c:identifier="gst_bit_reader_peek_bits_uint16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Read @nbits bits into @val but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="const GstBitReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Pointer to a #guint16 to store the result</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">number of bits to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_bits_uint32" c:identifier="gst_bit_reader_peek_bits_uint32"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Read @nbits bits into @val but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="const GstBitReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">number of bits to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_bits_uint64" c:identifier="gst_bit_reader_peek_bits_uint64"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Read @nbits bits into @val but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="const GstBitReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Pointer to a #guint64 to store the result</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">number of bits to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_bits_uint8" c:identifier="gst_bit_reader_peek_bits_uint8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Read @nbits bits into @val but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="const GstBitReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Pointer to a #guint8 to store the result</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">number of bits to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_pos" c:identifier="gst_bit_reader_set_pos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Sets the new position of a #GstBitReader instance to @pos in bits.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if the position could be set successfully, %FALSE +otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </instance-parameter> + <parameter name="pos" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">The new position in bits</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="skip" c:identifier="gst_bit_reader_skip"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Skips @nbits bits of the #GstBitReader instance.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if @nbits bits could be skipped, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </instance-parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">the number of bits to skip</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="skip_to_byte" c:identifier="gst_bit_reader_skip_to_byte"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Skips until the next byte.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_bit_reader_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Create a new #GstBitReader instance, which will read from @data. + +Free-function: gst_bit_reader_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a new #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Data from which the #GstBitReader + should read</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + </record> + <record name="BitWriter" c:type="GstBitWriter" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">#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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <field name="data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h">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" 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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Write trailing bit to align last byte of @data. @trailing_bit can +only be 1 or 0.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">%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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </instance-parameter> + <parameter name="trailing_bit" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Frees @bitwriter and the allocated data inside.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">#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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Frees @bitwriter without destroying the internal data, which is +returned as #GstBuffer. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">#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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Frees @bitwriter without destroying the internal data, which is +returned. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">#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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Get written data pointer</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">data pointer</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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Get size of written @data</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a #GstBitWriter instance</doc> + <type name="BitWriter" c:type="const GstBitWriter*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_bit_writer_init" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Initializes @bitwriter to an empty instance.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">#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" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">#GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Initializes a #GstBitWriter instance and allocates the given data +@size.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">#GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Write @nbits bits of @value to #GstBitWriter.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">%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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </instance-parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">value of #guint16 to write</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Write @nbits bits of @value to #GstBitWriter.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">%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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </instance-parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">value of #guint32 to write</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Write @nbits bits of @value to #GstBitWriter.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">%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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </instance-parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">value of #guint64 to write</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Write @nbits bits of @value to #GstBitWriter.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">%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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </instance-parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">value of #guint8 to write</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Write @nbytes bytes of @data to #GstBitWriter.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">%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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">pointer of data to write</doc> + <array zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Resets @bitwriter and frees the data if it's owned by @bitwriter.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">#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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Resets @bitwriter and returns the current data as #GstBuffer. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Resets @bitwriter and returns the current data. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Creates a new, empty #GstBitWriter instance. + +Free-function: gst_bit_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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 beginning. + +Free-function: gst_bit_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a new #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Creates a #GstBitWriter instance with the given initial data size. + +Free-function: gst_bit_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a new #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Initial size of data in bytes</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="fixed" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">If %TRUE the data can't be reallocated</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + </record> + <record name="ByteReader" c:type="GstByteReader"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">#GstByteReader provides a byte reader that can read different integer and +floating point types from a memory buffer. It provides functions for reading +signed/unsigned, little/big endian integers of 8, 16, 24, 32 and 64 bits +and functions for reading little/big endian floating points numbers of +32 and 64 bits. It also provides functions to read NUL-terminated strings +in various character encodings.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <field name="data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h">Data from which the bit reader will + read</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="byte" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h">Current byte position</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="dup_data" c:identifier="gst_byte_reader_dup_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Free-function: g_free + +Returns a newly-allocated copy of the current data +position if at least @size bytes are left and +updates the current position. Free with g_free() when no longer needed.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Size in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">address of a + #guint8 pointer variable in which to store the result</doc> + <array length="0" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + </parameters> + </method> + <method name="dup_string_utf16" c:identifier="gst_byte_reader_dup_string_utf16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Free-function: g_free + +Returns a newly-allocated copy of the current data position if there is +a NUL-terminated UTF-16 string in the data (this could be an empty string +as well), and advances the current position. + +No input checking for valid UTF-16 is done. This function is endianness +agnostic - you should not assume the UTF-16 characters are in host +endianness. + +This function will fail if no NUL-terminator was found in in the data. + +Note: there is no peek or get variant of this function to ensure correct +byte alignment of the UTF-16 string.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if a string could be read, %FALSE otherwise. The + string put into @str must be freed with g_free() when no longer needed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="str" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">address of a + #guint16 pointer variable in which to store the result</doc> + <array c:type="guint16**"> + <type name="guint16" c:type="guint16*"/> + </array> + </parameter> + </parameters> + </method> + <method name="dup_string_utf32" c:identifier="gst_byte_reader_dup_string_utf32"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Free-function: g_free + +Returns a newly-allocated copy of the current data position if there is +a NUL-terminated UTF-32 string in the data (this could be an empty string +as well), and advances the current position. + +No input checking for valid UTF-32 is done. This function is endianness +agnostic - you should not assume the UTF-32 characters are in host +endianness. + +This function will fail if no NUL-terminator was found in in the data. + +Note: there is no peek or get variant of this function to ensure correct +byte alignment of the UTF-32 string.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if a string could be read, %FALSE otherwise. The + string put into @str must be freed with g_free() when no longer needed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="str" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">address of a + #guint32 pointer variable in which to store the result</doc> + <array c:type="guint32**"> + <type name="guint32" c:type="guint32*"/> + </array> + </parameter> + </parameters> + </method> + <method name="dup_string_utf8" c:identifier="gst_byte_reader_dup_string_utf8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Free-function: g_free + +FIXME:Reads (copies) a NUL-terminated string in the #GstByteReader instance, +advancing the current position to the byte after the string. This will work +for any NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done. + +This function will fail if no NUL-terminator was found in in the data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if a string could be read into @str, %FALSE otherwise. The + string put into @str must be freed with g_free() when no longer needed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="str" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">address of a + #gchar pointer variable in which to store the result</doc> + <array c:type="gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_byte_reader_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Frees a #GstByteReader instance, which was previously allocated by +gst_byte_reader_new().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_data" c:identifier="gst_byte_reader_get_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Returns a constant pointer to the current data +position if at least @size bytes are left and +updates the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Size in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">address of a + #guint8 pointer variable in which to store the result</doc> + <array length="0" zero-terminated="0" c:type="const guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + </parameters> + </method> + <method name="get_float32_be" c:identifier="gst_byte_reader_get_float32_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a 32 bit big endian floating point value into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gfloat to store the result</doc> + <type name="gfloat" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="get_float32_le" c:identifier="gst_byte_reader_get_float32_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a 32 bit little endian floating point value into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gfloat to store the result</doc> + <type name="gfloat" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="get_float64_be" c:identifier="gst_byte_reader_get_float64_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a 64 bit big endian floating point value into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gdouble to store the result</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="get_float64_le" c:identifier="gst_byte_reader_get_float64_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a 64 bit little endian floating point value into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gdouble to store the result</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="get_int16_be" c:identifier="gst_byte_reader_get_int16_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 16 bit big endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint16 to store the result</doc> + <type name="gint16" c:type="gint16*"/> + </parameter> + </parameters> + </method> + <method name="get_int16_le" c:identifier="gst_byte_reader_get_int16_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 16 bit little endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint16 to store the result</doc> + <type name="gint16" c:type="gint16*"/> + </parameter> + </parameters> + </method> + <method name="get_int24_be" c:identifier="gst_byte_reader_get_int24_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 24 bit big endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint32 to store the result</doc> + <type name="gint32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="get_int24_le" c:identifier="gst_byte_reader_get_int24_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 24 bit little endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint32 to store the result</doc> + <type name="gint32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="get_int32_be" c:identifier="gst_byte_reader_get_int32_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 32 bit big endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint32 to store the result</doc> + <type name="gint32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="get_int32_le" c:identifier="gst_byte_reader_get_int32_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 32 bit little endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint32 to store the result</doc> + <type name="gint32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="get_int64_be" c:identifier="gst_byte_reader_get_int64_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 64 bit big endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint64 to store the result</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_int64_le" c:identifier="gst_byte_reader_get_int64_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 64 bit little endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint64 to store the result</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_int8" c:identifier="gst_byte_reader_get_int8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 8 bit integer into @val and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint8 to store the result</doc> + <type name="gint8" c:type="gint8*"/> + </parameter> + </parameters> + </method> + <method name="get_pos" c:identifier="gst_byte_reader_get_pos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Returns the current position of a #GstByteReader instance in bytes.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">The current position of @reader in bytes.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_remaining" c:identifier="gst_byte_reader_get_remaining"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Returns the remaining number of bytes of a #GstByteReader instance.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">The remaining number of bytes of @reader instance.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_size" c:identifier="gst_byte_reader_get_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Returns the total number of bytes of a #GstByteReader instance.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">The total number of bytes of @reader instance.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_string_utf8" c:identifier="gst_byte_reader_get_string_utf8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Returns a constant pointer to the current data position if there is +a NUL-terminated string in the data (this could be just a NUL terminator), +advancing the current position to the byte after the string. This will work +for any NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. + +No input checking for valid UTF-8 is done. + +This function will fail if no NUL-terminator was found in in the data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if a string could be found, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="str" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">address of a + #gchar pointer variable in which to store the result</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </method> + <method name="get_sub_reader" c:identifier="gst_byte_reader_get_sub_reader" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Initializes a #GstByteReader sub-reader instance to contain @size bytes of +data from the current position of @reader. This is useful to read chunked +formats and make sure that one doesn't read beyond the size of the sub-chunk. + +Unlike gst_byte_reader_peek_sub_reader(), this function also modifies the +position of @reader and moves it forward by @size bytes.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">FALSE on error or if @reader does not contain @size more bytes from + the current position, and otherwise TRUE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">an existing and initialized #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="sub_reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance to initialize as sub-reader</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">size of @sub_reader in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_uint16_be" c:identifier="gst_byte_reader_get_uint16_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 16 bit big endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint16 to store the result</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="get_uint16_le" c:identifier="gst_byte_reader_get_uint16_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 16 bit little endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint16 to store the result</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="get_uint24_be" c:identifier="gst_byte_reader_get_uint24_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 24 bit big endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="get_uint24_le" c:identifier="gst_byte_reader_get_uint24_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 24 bit little endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="get_uint32_be" c:identifier="gst_byte_reader_get_uint32_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 32 bit big endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="get_uint32_le" c:identifier="gst_byte_reader_get_uint32_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 32 bit little endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="get_uint64_be" c:identifier="gst_byte_reader_get_uint64_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 64 bit big endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint64 to store the result</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="get_uint64_le" c:identifier="gst_byte_reader_get_uint64_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 64 bit little endian integer into @val +and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint64 to store the result</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="get_uint8" c:identifier="gst_byte_reader_get_uint8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 8 bit integer into @val and update the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint8 to store the result</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_byte_reader_init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Initializes a #GstByteReader instance to read from @data. This function +can be called on already initialized instances.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">data from which + the #GstByteReader should read</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="masked_scan_uint32" c:identifier="gst_byte_reader_masked_scan_uint32"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Scan for pattern @pattern with applied mask @mask in the byte reader data, +starting from offset @offset relative to the current position. + +The bytes in @pattern and @mask are interpreted left-to-right, regardless +of endianness. All four bytes of the pattern must be present in the +byte reader data for it to match, even if the first or last bytes are masked +out. + +It is an error to call this function without making sure that there is +enough data (offset+size bytes) in the byte reader.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">offset of the first match, or -1 if no match was found. + +Example: +|[ +// Assume the reader contains 0x00 0x01 0x02 ... 0xfe 0xff + +gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 0, 256); +// -> returns 0 +gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 1, 255); +// -> returns -1 +gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x01020304, 1, 255); +// -> returns 1 +gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0001, 0, 256); +// -> returns -1 +gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0203, 0, 256); +// -> returns 0 +gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 256); +// -> returns 2 +gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 4); +// -> returns -1 +]|</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="mask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">mask to apply to data before matching against @pattern</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="pattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">pattern to match (after mask is applied)</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">offset from which to start scanning, relative to the current + position</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">number of bytes to scan from offset</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="masked_scan_uint32_peek" c:identifier="gst_byte_reader_masked_scan_uint32_peek" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Scan for pattern @pattern with applied mask @mask in the byte reader data, +starting from offset @offset relative to the current position. + +The bytes in @pattern and @mask are interpreted left-to-right, regardless +of endianness. All four bytes of the pattern must be present in the +byte reader data for it to match, even if the first or last bytes are masked +out. + +It is an error to call this function without making sure that there is +enough data (offset+size bytes) in the byte reader.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">offset of the first match, or -1 if no match was found.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="mask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">mask to apply to data before matching against @pattern</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="pattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">pattern to match (after mask is applied)</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">offset from which to start scanning, relative to the current + position</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">number of bytes to scan from offset</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">pointer to uint32 to return matching data</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_data" c:identifier="gst_byte_reader_peek_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Returns a constant pointer to the current data +position if at least @size bytes are left and +keeps the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Size in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">address of a + #guint8 pointer variable in which to store the result</doc> + <array length="0" zero-terminated="0" c:type="const guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + </parameters> + </method> + <method name="peek_float32_be" c:identifier="gst_byte_reader_peek_float32_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a 32 bit big endian floating point value into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gfloat to store the result</doc> + <type name="gfloat" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="peek_float32_le" c:identifier="gst_byte_reader_peek_float32_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a 32 bit little endian floating point value into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gfloat to store the result</doc> + <type name="gfloat" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="peek_float64_be" c:identifier="gst_byte_reader_peek_float64_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a 64 bit big endian floating point value into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gdouble to store the result</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="peek_float64_le" c:identifier="gst_byte_reader_peek_float64_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a 64 bit little endian floating point value into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gdouble to store the result</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="peek_int16_be" c:identifier="gst_byte_reader_peek_int16_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 16 bit big endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint16 to store the result</doc> + <type name="gint16" c:type="gint16*"/> + </parameter> + </parameters> + </method> + <method name="peek_int16_le" c:identifier="gst_byte_reader_peek_int16_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 16 bit little endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint16 to store the result</doc> + <type name="gint16" c:type="gint16*"/> + </parameter> + </parameters> + </method> + <method name="peek_int24_be" c:identifier="gst_byte_reader_peek_int24_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 24 bit big endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint32 to store the result</doc> + <type name="gint32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_int24_le" c:identifier="gst_byte_reader_peek_int24_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 24 bit little endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint32 to store the result</doc> + <type name="gint32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_int32_be" c:identifier="gst_byte_reader_peek_int32_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 32 bit big endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint32 to store the result</doc> + <type name="gint32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_int32_le" c:identifier="gst_byte_reader_peek_int32_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 32 bit little endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint32 to store the result</doc> + <type name="gint32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_int64_be" c:identifier="gst_byte_reader_peek_int64_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 64 bit big endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint64 to store the result</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="peek_int64_le" c:identifier="gst_byte_reader_peek_int64_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 64 bit little endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint64 to store the result</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="peek_int8" c:identifier="gst_byte_reader_peek_int8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read a signed 8 bit integer into @val but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #gint8 to store the result</doc> + <type name="gint8" c:type="gint8*"/> + </parameter> + </parameters> + </method> + <method name="peek_string_utf8" c:identifier="gst_byte_reader_peek_string_utf8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Returns a constant pointer to the current data position if there is +a NUL-terminated string in the data (this could be just a NUL terminator). +The current position will be maintained. This will work for any +NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. + +No input checking for valid UTF-8 is done. + +This function will fail if no NUL-terminator was found in in the data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if a string could be skipped, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="str" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">address of a + #gchar pointer variable in which to store the result</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </method> + <method name="peek_sub_reader" c:identifier="gst_byte_reader_peek_sub_reader" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Initializes a #GstByteReader sub-reader instance to contain @size bytes of +data from the current position of @reader. This is useful to read chunked +formats and make sure that one doesn't read beyond the size of the sub-chunk. + +Unlike gst_byte_reader_get_sub_reader(), this function does not modify the +current position of @reader.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">FALSE on error or if @reader does not contain @size more bytes from + the current position, and otherwise TRUE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">an existing and initialized #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="sub_reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance to initialize as sub-reader</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">size of @sub_reader in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_uint16_be" c:identifier="gst_byte_reader_peek_uint16_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 16 bit big endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint16 to store the result</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint16_le" c:identifier="gst_byte_reader_peek_uint16_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 16 bit little endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint16 to store the result</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint24_be" c:identifier="gst_byte_reader_peek_uint24_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 24 bit big endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint24_le" c:identifier="gst_byte_reader_peek_uint24_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 24 bit little endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint32_be" c:identifier="gst_byte_reader_peek_uint32_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 32 bit big endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint32_le" c:identifier="gst_byte_reader_peek_uint32_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 32 bit little endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint32 to store the result</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint64_be" c:identifier="gst_byte_reader_peek_uint64_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 64 bit big endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint64 to store the result</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint64_le" c:identifier="gst_byte_reader_peek_uint64_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 64 bit little endian integer into @val +but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint64 to store the result</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint8" c:identifier="gst_byte_reader_peek_uint8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Read an unsigned 8 bit integer into @val but keep the current position.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="const GstByteReader*"/> + </instance-parameter> + <parameter name="val" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Pointer to a #guint8 to store the result</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + </parameters> + </method> + <method name="set_pos" c:identifier="gst_byte_reader_set_pos"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Sets the new position of a #GstByteReader instance to @pos in bytes.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if the position could be set successfully, %FALSE +otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="pos" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">The new position in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="skip" c:identifier="gst_byte_reader_skip"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Skips @nbytes bytes of the #GstByteReader instance.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if @nbytes bytes could be skipped, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + <parameter name="nbytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">the number of bytes to skip</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="skip_string_utf16" c:identifier="gst_byte_reader_skip_string_utf16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Skips a NUL-terminated UTF-16 string in the #GstByteReader instance, +advancing the current position to the byte after the string. + +No input checking for valid UTF-16 is done. + +This function will fail if no NUL-terminator was found in in the data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if a string could be skipped, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="skip_string_utf32" c:identifier="gst_byte_reader_skip_string_utf32"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Skips a NUL-terminated UTF-32 string in the #GstByteReader instance, +advancing the current position to the byte after the string. + +No input checking for valid UTF-32 is done. + +This function will fail if no NUL-terminator was found in in the data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if a string could be skipped, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + </parameters> + </method> + <method name="skip_string_utf8" c:identifier="gst_byte_reader_skip_string_utf8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Skips a NUL-terminated string in the #GstByteReader instance, advancing +the current position to the byte after the string. This will work for +any NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done. + +This function will fail if no NUL-terminator was found in in the data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">%TRUE if a string could be skipped, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="reader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_byte_reader_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Create a new #GstByteReader instance, which will read from @data. + +Free-function: gst_byte_reader_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a new #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">data from which the + #GstByteReader should read</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + </record> + <record name="ByteWriter" c:type="GstByteWriter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter provides a byte writer and reader that can write/read different +integer and floating point types to/from a memory buffer. It provides functions +for writing/reading signed/unsigned, little/big endian integers of 8, 16, 24, +32 and 64 bits and functions for reading little/big endian floating points numbers of +32 and 64 bits. It also provides functions to write/read NUL-terminated strings +in various character encodings.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <field name="parent" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h">#GstByteReader parent</doc> + <type name="ByteReader" c:type="GstByteReader"/> + </field> + <field name="alloc_size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h">Allocation size of the data</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="fixed" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h">If %TRUE no reallocations are allowed</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="owned" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h">If %FALSE no reallocations are allowed and copies of data are returned</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="ensure_free_space" c:identifier="gst_byte_writer_ensure_free_space"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Checks if enough free space from the current write cursor is +available and reallocates if necessary.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if at least @size bytes are still available</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Number of bytes that should be available</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="fill" c:identifier="gst_byte_writer_fill"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes @size bytes containing @value to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to be written</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Number of bytes to be written</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_byte_writer_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Frees @writer and all memory allocated by it.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + </parameters> + </method> + <method name="free_and_get_buffer" c:identifier="gst_byte_writer_free_and_get_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Frees @writer and all memory allocated by it except +the current data, which is returned as #GstBuffer. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">the current data as buffer. gst_buffer_unref() + after usage.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + </parameters> + </method> + <method name="free_and_get_data" c:identifier="gst_byte_writer_free_and_get_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Frees @writer and all memory allocated by it except +the current data, which is returned. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">the current data. g_free() after usage.</doc> + <type name="guint8" c:type="guint8*"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_remaining" c:identifier="gst_byte_writer_get_remaining"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Returns the remaining size of data that can still be written. If +-1 is returned the remaining size is only limited by system resources.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">the remaining size of data that can still be written</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="const GstByteWriter*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_byte_writer_init"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Initializes @writer to an empty instance</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + </parameters> + </method> + <method name="init_with_data" c:identifier="gst_byte_writer_init_with_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Initializes @writer with the given +memory area. If @initialized is %TRUE it is possible to +read @size bytes from the #GstByteWriter from the beginning.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">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_byte_writer_init_with_size"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Initializes @writer with the given initial data size.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Initial size of data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="fixed" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">If %TRUE the data can't be reallocated</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="put_buffer" c:identifier="gst_byte_writer_put_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes @size bytes of @data to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the data could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">source #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">offset to copy from</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">total size to copy. If -1, all data is copied</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </method> + <method name="put_data" c:identifier="gst_byte_writer_put_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes @size bytes of @data to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Data to write</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="put_float32_be" c:identifier="gst_byte_writer_put_float32_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a big endian 32 bit float to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="put_float32_le" c:identifier="gst_byte_writer_put_float32_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a little endian 32 bit float to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="put_float64_be" c:identifier="gst_byte_writer_put_float64_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a big endian 64 bit float to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="put_float64_le" c:identifier="gst_byte_writer_put_float64_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a little endian 64 bit float to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="put_int16_be" c:identifier="gst_byte_writer_put_int16_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a signed big endian 16 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gint16" c:type="gint16"/> + </parameter> + </parameters> + </method> + <method name="put_int16_le" c:identifier="gst_byte_writer_put_int16_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a signed little endian 16 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gint16" c:type="gint16"/> + </parameter> + </parameters> + </method> + <method name="put_int24_be" c:identifier="gst_byte_writer_put_int24_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a signed big endian 24 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gint32" c:type="gint32"/> + </parameter> + </parameters> + </method> + <method name="put_int24_le" c:identifier="gst_byte_writer_put_int24_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a signed little endian 24 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gint32" c:type="gint32"/> + </parameter> + </parameters> + </method> + <method name="put_int32_be" c:identifier="gst_byte_writer_put_int32_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a signed big endian 32 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gint32" c:type="gint32"/> + </parameter> + </parameters> + </method> + <method name="put_int32_le" c:identifier="gst_byte_writer_put_int32_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a signed little endian 32 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gint32" c:type="gint32"/> + </parameter> + </parameters> + </method> + <method name="put_int64_be" c:identifier="gst_byte_writer_put_int64_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a signed big endian 64 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="put_int64_le" c:identifier="gst_byte_writer_put_int64_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a signed little endian 64 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="put_int8" c:identifier="gst_byte_writer_put_int8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a signed 8 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="gint8" c:type="gint8"/> + </parameter> + </parameters> + </method> + <method name="put_string_utf16" c:identifier="gst_byte_writer_put_string_utf16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a NUL-terminated UTF16 string to @writer (including the terminator).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">UTF16 string to write</doc> + <array c:type="const guint16*"> + <type name="guint16" c:type="guint16"/> + </array> + </parameter> + </parameters> + </method> + <method name="put_string_utf32" c:identifier="gst_byte_writer_put_string_utf32"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a NUL-terminated UTF32 string to @writer (including the terminator).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">UTF32 string to write</doc> + <array c:type="const guint32*"> + <type name="guint32" c:type="guint32"/> + </array> + </parameter> + </parameters> + </method> + <method name="put_string_utf8" c:identifier="gst_byte_writer_put_string_utf8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a NUL-terminated UTF8 string to @writer (including the terminator).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">UTF8 string to write</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="put_uint16_be" c:identifier="gst_byte_writer_put_uint16_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a unsigned big endian 16 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="put_uint16_le" c:identifier="gst_byte_writer_put_uint16_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a unsigned little endian 16 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="put_uint24_be" c:identifier="gst_byte_writer_put_uint24_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a unsigned big endian 24 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="put_uint24_le" c:identifier="gst_byte_writer_put_uint24_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a unsigned little endian 24 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="put_uint32_be" c:identifier="gst_byte_writer_put_uint32_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a unsigned big endian 32 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="put_uint32_le" c:identifier="gst_byte_writer_put_uint32_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a unsigned little endian 32 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="put_uint64_be" c:identifier="gst_byte_writer_put_uint64_be"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a unsigned big endian 64 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="put_uint64_le" c:identifier="gst_byte_writer_put_uint64_le"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a unsigned little endian 64 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="put_uint8" c:identifier="gst_byte_writer_put_uint8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Writes a unsigned 8 bit integer to @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">%TRUE if the value could be written</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Value to write</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="reset" c:identifier="gst_byte_writer_reset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Resets @writer and frees the data if it's +owned by @writer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + </parameters> + </method> + <method name="reset_and_get_buffer" c:identifier="gst_byte_writer_reset_and_get_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Resets @writer and returns the current data as buffer. + +Free-function: gst_buffer_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">the current data as buffer. gst_buffer_unref() + after usage.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + </parameters> + </method> + <method name="reset_and_get_data" c:identifier="gst_byte_writer_reset_and_get_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Resets @writer and returns the current data. + +Free-function: g_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">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="writer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">#GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_byte_writer_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Creates a new, empty #GstByteWriter instance + +Free-function: gst_byte_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">a new, empty #GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + </function> + <function name="new_with_data" c:identifier="gst_byte_writer_new_with_data" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Creates a new #GstByteWriter instance with the given +memory area. If @initialized is %TRUE it is possible to +read @size bytes from the #GstByteWriter from the beginning. + +Free-function: gst_byte_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">a new #GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Memory area for writing</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">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_byte_writer_new_with_size" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Creates a new #GstByteWriter instance with the given +initial data size. + +Free-function: gst_byte_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">a new #GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Initial size of data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="fixed" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">If %TRUE the data can't be reallocated</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + </record> + <function-macro name="COLLECT_PADS" c:identifier="GST_COLLECT_PADS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_CLASS" c:identifier="GST_COLLECT_PADS_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_DTS" c:identifier="GST_COLLECT_PADS_DTS" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Returns the DTS that has been converted to running time when using +gst_collect_pads_clip_running_time(). Unlike the value saved into +the buffer, this value is of type gint64 and may be negative. This allow +properly handling streams with frame reordering where the first DTS may +be negative. If the initial DTS was not set, this value will be +set to %G_MININT64.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A #GstCollectData.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_DTS_IS_VALID" c:identifier="GST_COLLECT_PADS_DTS_IS_VALID" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Check if running DTS value store is valid.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A #GstCollectData.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_GET_CLASS" c:identifier="GST_COLLECT_PADS_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_GET_STREAM_LOCK" c:identifier="GST_COLLECT_PADS_GET_STREAM_LOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Get the stream lock of @pads. The stream lock is used to coordinate and +serialize execution among the various streams being collected, and in +protecting the resources used to accomplish this.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectPads</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_STATE" c:identifier="GST_COLLECT_PADS_STATE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A flags word containing #GstCollectPadsStateFlags flags set +on this collected pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectData.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_STATE_IS_SET" c:identifier="GST_COLLECT_PADS_STATE_IS_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Gives the status of a specific flag on a collected pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectData.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectPadsStateFlags to check.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_STATE_SET" c:identifier="GST_COLLECT_PADS_STATE_SET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Sets a state flag on a collected pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectData.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectPadsStateFlags to set.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_STATE_UNSET" c:identifier="GST_COLLECT_PADS_STATE_UNSET" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Clears a state flag on a collected pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectData.</doc> + </parameter> + <parameter name="flag"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectPadsStateFlags to clear.</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_STREAM_LOCK" c:identifier="GST_COLLECT_PADS_STREAM_LOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Lock the stream lock of @pads.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectPads</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="COLLECT_PADS_STREAM_UNLOCK" c:identifier="GST_COLLECT_PADS_STREAM_UNLOCK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Unlock the stream lock of @pads.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="pads"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectPads</doc> + </parameter> + </parameters> + </function-macro> + <record name="CollectData" c:type="GstCollectData"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Structure used by the collect_pads.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <field name="collect" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">owner #GstCollectPads</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </field> + <field name="pad" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">#GstPad managed by this data</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="buffer" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">currently queued buffer.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="pos" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">position in the buffer</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="segment" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">last segment received.</doc> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="state" readable="0" private="1"> + <type name="CollectPadsStateFlags" c:type="GstCollectPadsStateFlags"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="CollectDataPrivate" c:type="GstCollectDataPrivate*"/> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <field name="dts" writable="1"> + <type name="gint64" c:type="gint64"/> + </field> + </record> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </union> + </record> + <callback name="CollectDataDestroyNotify" c:type="GstCollectDataDestroyNotify"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A function that will be called when the #GstCollectData will be freed. +It is passed the pointer to the structure and should free any custom +memory and resources allocated for it.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectData that will be freed</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + </parameters> + </callback> + <record name="CollectDataPrivate" c:type="GstCollectDataPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + </record> + <class name="CollectPads" c:symbol-prefix="collect_pads" c:type="GstCollectPads" parent="Gst.Object" glib:type-name="GstCollectPads" glib:get-type="gst_collect_pads_get_type" glib:type-struct="CollectPadsClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Manages a set of pads that operate in collect mode. This means that control +is given to the manager of this object when all pads have data. + + * Collectpads are created with gst_collect_pads_new(). A callback should then + be installed with gst_collect_pads_set_function (). + + * Pads are added to the collection with gst_collect_pads_add_pad()/ + gst_collect_pads_remove_pad(). The pad has to be a sinkpad. When added, + the chain, event and query functions of the pad are overridden. The + element_private of the pad is used to store private information for the + collectpads. + + * For each pad, data is queued in the _chain function or by + performing a pull_range. + + * When data is queued on all pads in waiting mode, the callback function is called. + + * Data can be dequeued from the pad with the gst_collect_pads_pop() method. + One can peek at the data with the gst_collect_pads_peek() function. + These functions will return %NULL if the pad received an EOS event. When all + pads return %NULL from a gst_collect_pads_peek(), the element can emit an EOS + event itself. + + * Data can also be dequeued in byte units using the gst_collect_pads_available(), + gst_collect_pads_read_buffer() and gst_collect_pads_flush() calls. + + * Elements should call gst_collect_pads_start() and gst_collect_pads_stop() in + their state change functions to start and stop the processing of the collectpads. + The gst_collect_pads_stop() call should be called before calling the parent + element state change function in the PAUSED_TO_READY state change to ensure + no pad is blocked and the element can finish streaming. + + * gst_collect_pads_set_waiting() sets a pad to waiting or non-waiting mode. + CollectPads element is not waiting for data to be collected on non-waiting pads. + Thus these pads may but need not have data when the callback is called. + All pads are in waiting mode by default.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <constructor name="new" c:identifier="gst_collect_pads_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Create a new instance of #GstCollectPads. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">a new #GstCollectPads, or %NULL in case of an error.</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </return-value> + </constructor> + <method name="add_pad" c:identifier="gst_collect_pads_add_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Add a pad to the collection of collect pads. The pad has to be +a sinkpad. The refcount of the pad is incremented. Use +gst_collect_pads_remove_pad() to remove the pad from the collection +again. + +You specify a size for the returned #GstCollectData structure +so that you can use it to store additional information. + +You can also specify a #GstCollectDataDestroyNotify that will be called +just before the #GstCollectData structure is freed. It is passed the +pointer to the structure and should free any custom memory and resources +allocated for it. + +Keeping a pad locked in waiting state is only relevant when using +the default collection algorithm (providing the oldest buffer). +It ensures a buffer must be available on this pad for a collection +to take place. This is of typical use to a muxer element where +non-subtitle streams should always be in waiting state, +e.g. to assure that caps information is available on all these streams +when initial headers have to be written. + +The pad will be automatically activated in push mode when @pads is +started. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">a new #GstCollectData to identify the + new pad. Or %NULL if wrong parameters are supplied.</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the pad to add</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the size of the returned #GstCollectData structure</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="destroy_notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">function to be called before the returned + #GstCollectData structure is freed</doc> + <type name="CollectDataDestroyNotify" c:type="GstCollectDataDestroyNotify"/> + </parameter> + <parameter name="lock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">whether to lock this pad in usual waiting state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="available" c:identifier="gst_collect_pads_available"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Query how much bytes can be read from each queued buffer. This means +that the result of this call is the maximum number of bytes that can +be read from each of the pads. + +This function should be called with @pads STREAM_LOCK held, such as +in the callback. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">The maximum number of bytes queued on all pads. This function +returns 0 if a pad has no queued buffer.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to query</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + </parameters> + </method> + <method name="clip_running_time" c:identifier="gst_collect_pads_clip_running_time"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Convenience clipping function that converts incoming buffer's timestamp +to running time, or clips the buffer if outside configured segment. + +Since 1.6, this clipping function also sets the DTS parameter of the +GstCollectData structure. This version of the running time DTS can be +negative. G_MININT64 is used to indicate invalid value.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="cdata" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">collect data of corresponding pad</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">buffer being clipped</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">output buffer with running time, or NULL if clipped</doc> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">user data (unused)</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="event_default" c:identifier="gst_collect_pads_event_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Default #GstCollectPads event handling that elements should always +chain up to to ensure proper operation. Element might however indicate +event should not be forwarded downstream.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">collect data of corresponding pad</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">event being processed</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="discard" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">process but do not send event downstream</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="flush" c:identifier="gst_collect_pads_flush"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Flush @size bytes from the pad @data. + +This function should be called with @pads STREAM_LOCK held, such as +in the callback. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">The number of bytes flushed This can be less than @size and +is 0 if the pad was end-of-stream.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to query</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the data to use</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the number of bytes to flush</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek" c:identifier="gst_collect_pads_peek"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Peek at the buffer currently queued in @data. This function +should be called with the @pads STREAM_LOCK held, such as in the callback +handler. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">The buffer in @data or %NULL if no +buffer is queued. should unref the buffer after usage.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to peek</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the data to use</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + </parameters> + </method> + <method name="pop" c:identifier="gst_collect_pads_pop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Pop the buffer currently queued in @data. This function +should be called with the @pads STREAM_LOCK held, such as in the callback +handler. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">The buffer in @data or %NULL if no +buffer was queued. You should unref the buffer after usage.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to pop</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the data to use</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + </parameters> + </method> + <method name="query_default" c:identifier="gst_collect_pads_query_default"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Default #GstCollectPads query handling that elements should always +chain up to to ensure proper operation. Element might however indicate +query should not be forwarded downstream.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">collect data of corresponding pad</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">query being processed</doc> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="discard" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">process but do not send event downstream</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="read_buffer" c:identifier="gst_collect_pads_read_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Get a subbuffer of @size bytes from the given pad @data. + +This function should be called with @pads STREAM_LOCK held, such as in the +callback. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">A sub buffer. The size of the buffer can +be less that requested. A return of %NULL signals that the pad is +end-of-stream. Unref the buffer after use.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to query</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the data to use</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the number of bytes to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="remove_pad" c:identifier="gst_collect_pads_remove_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Remove a pad from the collection of collect pads. This function will also +free the #GstCollectData and all the resources that were allocated with +gst_collect_pads_add_pad(). + +The pad will be deactivated automatically when @pads is stopped. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">%TRUE if the pad could be removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the pad to remove</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="set_buffer_function" c:identifier="gst_collect_pads_set_buffer_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Set the callback function and user data that will be called with +the oldest buffer when all pads have been collected, or %NULL on EOS. +If a buffer is passed, the callback owns a reference and must unref +it. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the function to set</doc> + <type name="CollectPadsBufferFunction" c:type="GstCollectPadsBufferFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">user data passed to the function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_clip_function" c:identifier="gst_collect_pads_set_clip_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Install a clipping function that is called right after a buffer is received +on a pad managed by @pads. See #GstCollectPadsClipFunction for more info.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="clipfunc" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">clip function to install</doc> + <type name="CollectPadsClipFunction" c:type="GstCollectPadsClipFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">user data to pass to @clip_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_compare_function" c:identifier="gst_collect_pads_set_compare_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Set the timestamp comparison function. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the pads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the function to set</doc> + <type name="CollectPadsCompareFunction" c:type="GstCollectPadsCompareFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">user data passed to the function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_event_function" c:identifier="gst_collect_pads_set_event_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Set the event callback function and user data that will be called when +collectpads has received an event originating from one of the collected +pads. If the event being processed is a serialized one, this callback is +called with @pads STREAM_LOCK held, otherwise not. As this lock should be +held when calling a number of CollectPads functions, it should be acquired +if so (unusually) needed. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the function to set</doc> + <type name="CollectPadsEventFunction" c:type="GstCollectPadsEventFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">user data passed to the function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_flush_function" c:identifier="gst_collect_pads_set_flush_function" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Install a flush function that is called when the internal +state of all pads should be flushed as part of flushing seek +handling. See #GstCollectPadsFlushFunction for more info.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">flush function to install</doc> + <type name="CollectPadsFlushFunction" c:type="GstCollectPadsFlushFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">user data to pass to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_flushing" c:identifier="gst_collect_pads_set_flushing"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Change the flushing state of all the pads in the collection. No pad +is able to accept anymore data when @flushing is %TRUE. Calling this +function with @flushing %FALSE makes @pads accept data again. +Caller must ensure that downstream streaming (thread) is not blocked, +e.g. by sending a FLUSH_START downstream. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="flushing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">desired state of the pads</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_function" c:identifier="gst_collect_pads_set_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">CollectPads provides a default collection algorithm that will determine +the oldest buffer available on all of its pads, and then delegate +to a configured callback. +However, if circumstances are more complicated and/or more control +is desired, this sets a callback that will be invoked instead when +all the pads added to the collection have buffers queued. +Evidently, this callback is not compatible with +gst_collect_pads_set_buffer_function() callback. +If this callback is set, the former will be unset. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the function to set</doc> + <type name="CollectPadsFunction" c:type="GstCollectPadsFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">user data passed to the function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_query_function" c:identifier="gst_collect_pads_set_query_function"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Set the query callback function and user data that will be called after +collectpads has received a query originating from one of the collected +pads. If the query being processed is a serialized one, this callback is +called with @pads STREAM_LOCK held, otherwise not. As this lock should be +held when calling a number of CollectPads functions, it should be acquired +if so (unusually) needed. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the function to set</doc> + <type name="CollectPadsQueryFunction" c:type="GstCollectPadsQueryFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">user data passed to the function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_waiting" c:identifier="gst_collect_pads_set_waiting"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Sets a pad to waiting or non-waiting mode, if at least this pad +has not been created with locked waiting state, +in which case nothing happens. + +This function should be called with @pads STREAM_LOCK held, such as +in the callback. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the data to use</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="waiting" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">boolean indicating whether this pad should operate + in waiting or non-waiting mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="src_event_default" c:identifier="gst_collect_pads_src_event_default" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Default #GstCollectPads event handling for the src pad of elements. +Elements can chain up to this to let flushing seek event handling +be done by #GstCollectPads.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the #GstCollectPads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">src #GstPad that received the event</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">event being processed</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </method> + <method name="start" c:identifier="gst_collect_pads_start"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Starts the processing of data in the collect_pads. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + </parameters> + </method> + <method name="stop" c:identifier="gst_collect_pads_stop"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Stops the processing of data in the collect_pads. this function +will also unblock any blocking operations. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to use</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + </parameters> + </method> + <method name="take_buffer" c:identifier="gst_collect_pads_take_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">Get a subbuffer of @size bytes from the given pad @data. Flushes the amount +of read bytes. + +This function should be called with @pads STREAM_LOCK held, such as in the +callback. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">A sub buffer. The size of the buffer can +be less that requested. A return of %NULL signals that the pad is +end-of-stream. Unref the buffer after use.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the collectpads to query</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the data to use</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.c">the number of bytes to read</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <field name="object"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">#GList of #GstCollectData managed + by this #GstCollectPads.</doc> + <type name="GLib.SList" c:type="GSList*"> + <type name="CollectData"/> + </type> + </field> + <field name="stream_lock" readable="0" private="1"> + <type name="GLib.RecMutex" c:type="GRecMutex"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="CollectPadsPrivate" c:type="GstCollectPadsPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <callback name="CollectPadsBufferFunction" c:type="GstCollectPadsBufferFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A function that will be called when a (considered oldest) buffer can be muxed. +If all pads have reached EOS, this function is called with %NULL @buffer +and %NULL @data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">%GST_FLOW_OK for success</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectPads that triggered the callback</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectData of pad that has received the buffer</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">user data passed to gst_collect_pads_set_buffer_function()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="CollectPadsClass" c:type="GstCollectPadsClass" glib:is-gtype-struct-for="CollectPads"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <field name="parent_class"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="CollectPadsClipFunction" c:type="GstCollectPadsClipFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A function that will be called when @inbuffer is received on the pad managed +by @data in the collectpad object @pads. + +The function should use the segment of @data and the negotiated media type on +the pad to perform clipping of @inbuffer. + +This function takes ownership of @inbuffer and should output a buffer in +@outbuffer or return %NULL in @outbuffer if the buffer should be dropped.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstFlowReturn that corresponds to the result of clipping.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectPads</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectData</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="inbuffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the input #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuffer" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the output #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="CollectPadsCompareFunction" c:type="GstCollectPadsCompareFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A function for comparing two timestamps of buffers or newsegments collected on one pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Integer less than zero when first timestamp is deemed older than the second one. + Zero if the timestamps are deemed equally old. + Integer greater than zero when second timestamp is deemed older than the first one.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectPads that is comparing the timestamps</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </parameter> + <parameter name="data1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the first #GstCollectData</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="timestamp1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the first timestamp</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="data2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the second #GstCollectData</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="timestamp2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the second timestamp</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="5"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">user data passed to gst_collect_pads_set_compare_function()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="CollectPadsEventFunction" c:type="GstCollectPadsEventFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A function that will be called while processing an event. It takes +ownership of the event and is responsible for chaining up (to +gst_collect_pads_event_default()) or dropping events (such typical cases +being handled by the default handler).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">%TRUE if the pad could handle the event</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectPads that triggered the callback</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstPad that received an event</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstEvent received</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">user data passed to gst_collect_pads_set_event_function()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="CollectPadsFlushFunction" c:type="GstCollectPadsFlushFunction" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A function that will be called while processing a flushing seek event. + +The function should flush any internal state of the element and the state of +all the pads. It should clear only the state not directly managed by the +@pads object. It is therefore not necessary to call +gst_collect_pads_set_flushing nor gst_collect_pads_clear from this function.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">a #GstCollectPads</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="CollectPadsFunction" c:type="GstCollectPadsFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A function that will be called when all pads have received data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">%GST_FLOW_OK for success</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectPads that triggered the callback</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">user data passed to gst_collect_pads_set_function()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="CollectPadsPrivate" c:type="GstCollectPadsPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + </record> + <callback name="CollectPadsQueryFunction" c:type="GstCollectPadsQueryFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">A function that will be called while processing a query. It takes +ownership of the query and is responsible for chaining up (to +events downstream (with gst_pad_event_default()).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">%TRUE if the pad could handle the event</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pads" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstCollectPads that triggered the callback</doc> + <type name="CollectPads" c:type="GstCollectPads*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstPad that received an event</doc> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">the #GstEvent received</doc> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">user data passed to gst_collect_pads_set_query_function()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <bitfield name="CollectPadsStateFlags" c:type="GstCollectPadsStateFlags"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <member name="eos" value="1" c:identifier="GST_COLLECT_PADS_STATE_EOS"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Set if collectdata's pad is EOS.</doc> + </member> + <member name="flushing" value="2" c:identifier="GST_COLLECT_PADS_STATE_FLUSHING"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Set if collectdata's pad is flushing.</doc> + </member> + <member name="new_segment" value="4" c:identifier="GST_COLLECT_PADS_STATE_NEW_SEGMENT"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Set if collectdata's pad received a + new_segment event.</doc> + </member> + <member name="waiting" value="8" c:identifier="GST_COLLECT_PADS_STATE_WAITING"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Set if collectdata's pad must be waited + for when collecting.</doc> + </member> + <member name="locked" value="16" c:identifier="GST_COLLECT_PADS_STATE_LOCKED"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h">Set collectdata's pad WAITING state must + not be changed. +#GstCollectPadsStateFlags indicate private state of a collectdata('s pad).</doc> + </member> + </bitfield> + <function-macro name="DATA_QUEUE" c:identifier="GST_DATA_QUEUE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DATA_QUEUE_CLASS" c:identifier="GST_DATA_QUEUE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <class name="DataQueue" c:symbol-prefix="data_queue" c:type="GstDataQueue" parent="GObject.Object" glib:type-name="GstDataQueue" glib:get-type="gst_data_queue_get_type" glib:type-struct="DataQueueClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">#GstDataQueue is an object that handles threadsafe queueing of objects. It +also provides size-related functionality. This object should be used for +any #GstElement that wishes to provide some sort of queueing functionality.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <constructor name="new" c:identifier="gst_data_queue_new" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Creates a new #GstDataQueue. If @fullcallback or @emptycallback are supplied, then +the #GstDataQueue will call the respective callback to signal full or empty condition. +If the callbacks are NULL the #GstDataQueue will instead emit 'full' and 'empty' +signals.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a new #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </return-value> + <parameters> + <parameter name="checkfull" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">the callback used to tell if the element considers the queue full +or not.</doc> + <type name="DataQueueCheckFullFunction" c:type="GstDataQueueCheckFullFunction"/> + </parameter> + <parameter name="fullcallback" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">the callback which will be called when the queue is considered full.</doc> + <type name="DataQueueFullCallback" c:type="GstDataQueueFullCallback"/> + </parameter> + <parameter name="emptycallback" transfer-ownership="none" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">the callback which will be called when the queue is considered empty.</doc> + <type name="DataQueueEmptyCallback" c:type="GstDataQueueEmptyCallback"/> + </parameter> + <parameter name="checkdata" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #gpointer that will be passed to the @checkfull, @fullcallback, + and @emptycallback callbacks.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="empty"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="full"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="drop_head" c:identifier="gst_data_queue_drop_head" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Pop and unref the head-most #GstMiniObject with the given #GType.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">%TRUE if an element was removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">The #GstDataQueue to drop an item from.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">The #GType of the item to drop.</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="flush" c:identifier="gst_data_queue_flush" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Flushes all the contents of the @queue. Any call to #gst_data_queue_push and +#gst_data_queue_pop will be released. +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_level" c:identifier="gst_data_queue_get_level" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Get the current level of the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">The #GstDataQueue</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + <parameter name="level" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">the location to store the result</doc> + <type name="DataQueueSize" c:type="GstDataQueueSize*"/> + </parameter> + </parameters> + </method> + <method name="is_empty" c:identifier="gst_data_queue_is_empty" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Queries if there are any items in the @queue. +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">%TRUE if @queue is empty.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_full" c:identifier="gst_data_queue_is_full" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Queries if @queue is full. This check will be done using the +#GstDataQueueCheckFullFunction registered with @queue. +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">%TRUE if @queue is full.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + </parameters> + </method> + <method name="limits_changed" c:identifier="gst_data_queue_limits_changed" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Inform the queue that the limits for the fullness check have changed and that +any blocking gst_data_queue_push() should be unblocked to recheck the limits.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">The #GstDataQueue</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek" c:identifier="gst_data_queue_peek" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Retrieves the first @item available on the @queue without removing it. +If the queue is currently empty, the call will block until at least +one item is available, OR the @queue is set to the flushing state. +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">%TRUE if an @item was successfully retrieved from the @queue.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + <parameter name="item" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">pointer to store the returned #GstDataQueueItem.</doc> + <type name="DataQueueItem" c:type="GstDataQueueItem**"/> + </parameter> + </parameters> + </method> + <method name="pop" c:identifier="gst_data_queue_pop" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Retrieves the first @item available on the @queue. If the queue is currently +empty, the call will block until at least one item is available, OR the +@queue is set to the flushing state. +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">%TRUE if an @item was successfully retrieved from the @queue.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + <parameter name="item" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">pointer to store the returned #GstDataQueueItem.</doc> + <type name="DataQueueItem" c:type="GstDataQueueItem**"/> + </parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_data_queue_push" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Pushes a #GstDataQueueItem (or a structure that begins with the same fields) +on the @queue. If the @queue is full, the call will block until space is +available, OR the @queue is set to flushing state. +MT safe. + +Note that this function has slightly different semantics than gst_pad_push() +and gst_pad_push_event(): this function only takes ownership of @item and +the #GstMiniObject contained in @item if the push was successful. If %FALSE +is returned, the caller is responsible for freeing @item and its contents.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">%TRUE if the @item was successfully pushed on the @queue.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + <parameter name="item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueueItem.</doc> + <type name="DataQueueItem" c:type="GstDataQueueItem*"/> + </parameter> + </parameters> + </method> + <method name="push_force" c:identifier="gst_data_queue_push_force" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Pushes a #GstDataQueueItem (or a structure that begins with the same fields) +on the @queue. It ignores if the @queue is full or not and forces the @item +to be pushed anyway. +MT safe. + +Note that this function has slightly different semantics than gst_pad_push() +and gst_pad_push_event(): this function only takes ownership of @item and +the #GstMiniObject contained in @item if the push was successful. If %FALSE +is returned, the caller is responsible for freeing @item and its contents.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">%TRUE if the @item was successfully pushed on the @queue.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + <parameter name="item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueueItem.</doc> + <type name="DataQueueItem" c:type="GstDataQueueItem*"/> + </parameter> + </parameters> + </method> + <method name="set_flushing" c:identifier="gst_data_queue_set_flushing" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Sets the queue to flushing state if @flushing is %TRUE. If set to flushing +state, any incoming data on the @queue will be discarded. Any call currently +blocking on #gst_data_queue_push or #gst_data_queue_pop will return straight +away with a return value of %FALSE. While the @queue is in flushing state, +all calls to those two functions will return %FALSE. + +MT Safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </instance-parameter> + <parameter name="flushing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">a #gboolean stating if the queue will be flushing or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="current-level-bytes" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="current-level-time" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="current-level-visible" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <field name="object"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">the parent structure</doc> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="DataQueuePrivate" c:type="GstDataQueuePrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="empty" when="first" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Reports that the queue became empty (empty). +A queue is empty if the total amount of visible items inside it (num-visible, time, +size) is lower than the boundary values which can be set through the GObject +properties.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="full" when="first" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.c">Reports that the queue became full (full). +A queue is full if the total amount of data inside it (num-visible, time, +size) is higher than the boundary values which can be set through the GObject +properties.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + </class> + <callback name="DataQueueCheckFullFunction" c:type="GstDataQueueCheckFullFunction" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">The prototype of the function used to inform the queue that it should be +considered as full.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">%TRUE if the queue should be considered full.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">a #GstDataQueue.</doc> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + <parameter name="visible" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">The number of visible items currently in the queue.</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="bytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">The amount of bytes currently in the queue.</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">The accumulated duration of the items currently in the queue.</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="checkdata" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">The #gpointer registered when the #GstDataQueue was created.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="DataQueueClass" c:type="GstDataQueueClass" glib:is-gtype-struct-for="DataQueue"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="empty"> + <callback name="empty"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="full"> + <callback name="full"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="DataQueueEmptyCallback" c:type="GstDataQueueEmptyCallback"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + <parameter name="checkdata" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="DataQueueFullCallback" c:type="GstDataQueueFullCallback"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + <parameter name="checkdata" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="DataQueueItem" c:type="GstDataQueueItem" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">Structure used by #GstDataQueue. You can supply a different structure, as +long as the top of the structure is identical to this structure.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <field name="object" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">the #GstMiniObject to queue.</doc> + <type name="Gst.MiniObject" c:type="GstMiniObject*"/> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">the size in bytes of the miniobject.</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="duration" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">the duration in #GstClockTime of the miniobject. Can not be +%GST_CLOCK_TIME_NONE.</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="visible" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">%TRUE if @object should be considered as a visible object.</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="destroy" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">The #GDestroyNotify function to use to free the #GstDataQueueItem. +This function should also drop the reference to @object the owner of the +#GstDataQueueItem is assumed to hold.</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="DataQueuePrivate" c:type="GstDataQueuePrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + </record> + <record name="DataQueueSize" c:type="GstDataQueueSize" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">Structure describing the size of a queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <field name="visible" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">number of buffers</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="bytes" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">number of bytes</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h">amount of time</doc> + <type name="guint64" c:type="guint64"/> + </field> + </record> + <record name="FlowCombiner" c:type="GstFlowCombiner" version="1.4" glib:type-name="GstFlowCombiner" glib:get-type="gst_flow_combiner_get_type" c:symbol-prefix="flow_combiner"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Utility struct to help handling #GstFlowReturn combination. Useful for +#GstElement<!-- -->s that have multiple source pads and need to combine +the different #GstFlowReturn for those pads. + +#GstFlowCombiner works by using the last #GstFlowReturn for all #GstPad +it has in its list and computes the combined return value and provides +it to the caller. + +To add a new pad to the #GstFlowCombiner use gst_flow_combiner_add_pad(). +The new #GstPad is stored with a default value of %GST_FLOW_OK. + +In case you want a #GstPad to be removed, use gst_flow_combiner_remove_pad(). + +Please be aware that this struct isn't thread safe as its designed to be + used by demuxers, those usually will have a single thread operating it. + +These functions will take refs on the passed #GstPad<!-- -->s. + +Aside from reducing the user's code size, the main advantage of using this +helper struct is to follow the standard rules for #GstFlowReturn combination. +These rules are: + +* %GST_FLOW_EOS: only if all returns are EOS too +* %GST_FLOW_NOT_LINKED: only if all returns are NOT_LINKED too +* %GST_FLOW_ERROR or below: if at least one returns an error return +* %GST_FLOW_NOT_NEGOTIATED: if at least one returns a not-negotiated return +* %GST_FLOW_FLUSHING: if at least one returns flushing +* %GST_FLOW_OK: otherwise + +%GST_FLOW_ERROR or below, GST_FLOW_NOT_NEGOTIATED and GST_FLOW_FLUSHING are +returned immediately from the gst_flow_combiner_update_flow() function.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <constructor name="new" c:identifier="gst_flow_combiner_new" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Creates a new #GstFlowCombiner, use gst_flow_combiner_free() to free it.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">A new #GstFlowCombiner</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </return-value> + </constructor> + <method name="add_pad" c:identifier="gst_flow_combiner_add_pad" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Adds a new #GstPad to the #GstFlowCombiner.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="combiner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstPad that is being added</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_flow_combiner_clear" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Removes all pads from a #GstFlowCombiner and resets it to its initial state.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="combiner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner to clear</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_flow_combiner_free" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Frees a #GstFlowCombiner struct and all its internal data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="combiner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner to free</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </instance-parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_flow_combiner_ref" version="1.12.1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Increments the reference count on the #GstFlowCombiner.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner.</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </return-value> + <parameters> + <instance-parameter name="combiner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner to add a reference to.</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_pad" c:identifier="gst_flow_combiner_remove_pad" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Removes a #GstPad from the #GstFlowCombiner.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="combiner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstPad to remove</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="reset" c:identifier="gst_flow_combiner_reset" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Reset flow combiner and all pads to their initial state without removing pads.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="combiner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner to clear</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </instance-parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_flow_combiner_unref" version="1.12.1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Decrements the reference count on the #GstFlowCombiner.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="combiner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner to unreference.</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </instance-parameter> + </parameters> + </method> + <method name="update_flow" c:identifier="gst_flow_combiner_update_flow" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Computes the combined flow return for the pads in it. + +The #GstFlowReturn parameter should be the last flow return update for a pad +in this #GstFlowCombiner. It will use this value to be able to shortcut some +combinations and avoid looking over all pads again. e.g. The last combined +return is the same as the latest obtained #GstFlowReturn.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">The combined #GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="combiner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </instance-parameter> + <parameter name="fret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the latest #GstFlowReturn received for a pad in this #GstFlowCombiner</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </parameter> + </parameters> + </method> + <method name="update_pad_flow" c:identifier="gst_flow_combiner_update_pad_flow" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">Sets the provided pad's last flow return to provided value and computes +the combined flow return for the pads in it. + +The #GstFlowReturn parameter should be the last flow return update for a pad +in this #GstFlowCombiner. It will use this value to be able to shortcut some +combinations and avoid looking over all pads again. e.g. The last combined +return is the same as the latest obtained #GstFlowReturn.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">The combined #GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="combiner" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstFlowCombiner</doc> + <type name="FlowCombiner" c:type="GstFlowCombiner*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the #GstPad whose #GstFlowReturn to update</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="fret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstflowcombiner.c">the latest #GstFlowReturn received for a pad in this #GstFlowCombiner</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </parameter> + </parameters> + </method> + </record> + <function-macro name="IS_ADAPTER" c:identifier="GST_IS_ADAPTER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ADAPTER_CLASS" c:identifier="GST_IS_ADAPTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstadapter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AGGREGATOR" c:identifier="GST_IS_AGGREGATOR" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AGGREGATOR_CLASS" c:identifier="GST_IS_AGGREGATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AGGREGATOR_PAD" c:identifier="GST_IS_AGGREGATOR_PAD" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AGGREGATOR_PAD_CLASS" c:identifier="GST_IS_AGGREGATOR_PAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BASE_PARSE" c:identifier="GST_IS_BASE_PARSE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BASE_PARSE_CLASS" c:identifier="GST_IS_BASE_PARSE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BASE_SINK" c:identifier="GST_IS_BASE_SINK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BASE_SINK_CLASS" c:identifier="GST_IS_BASE_SINK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesink.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BASE_SRC" c:identifier="GST_IS_BASE_SRC" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BASE_SRC_CLASS" c:identifier="GST_IS_BASE_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasesrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BASE_TRANSFORM" c:identifier="GST_IS_BASE_TRANSFORM" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_BASE_TRANSFORM_CLASS" c:identifier="GST_IS_BASE_TRANSFORM_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbasetransform.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_COLLECT_PADS" c:identifier="GST_IS_COLLECT_PADS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_COLLECT_PADS_CLASS" c:identifier="GST_IS_COLLECT_PADS_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstcollectpads.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DATA_QUEUE" c:identifier="GST_IS_DATA_QUEUE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DATA_QUEUE_CLASS" c:identifier="GST_IS_DATA_QUEUE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstdataqueue.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PUSH_SRC" c:identifier="GST_IS_PUSH_SRC" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PUSH_SRC_CLASS" c:identifier="GST_IS_PUSH_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PUSH_SRC" c:identifier="GST_PUSH_SRC" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PUSH_SRC_CLASS" c:identifier="GST_PUSH_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PUSH_SRC_GET_CLASS" c:identifier="GST_PUSH_SRC_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="PushSrc" c:symbol-prefix="push_src" c:type="GstPushSrc" parent="BaseSrc" glib:type-name="GstPushSrc" glib:get-type="gst_push_src_get_type" glib:type-struct="PushSrcClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.c">This class is mostly useful for elements that cannot do +random access, or at least very slowly. The source usually +prefers to push out a fixed size buffer. + +Subclasses usually operate in a format that is different from the +default GST_FORMAT_BYTES format of #GstBaseSrc. + +Classes extending this base class will usually be scheduled +in a push based mode. If the peer accepts to operate without +offsets and within the limits of the allowed block size, this +class can operate in getrange based mode automatically. To make +this possible, the subclass should implement and override the +SCHEDULING query. + +The subclass should extend the methods from the baseclass in +addition to the ::create method. + +Seeking, flushing, scheduling and sync is all handled by this +base class.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <virtual-method name="alloc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h">Allocate memory for a buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="PushSrc" c:type="GstPushSrc*"/> + </instance-parameter> + <parameter name="buf" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h">Ask the subclass to create a buffer, the default implementation will call alloc if +no allocated @buf is provided and then call fill.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="PushSrc" c:type="GstPushSrc*"/> + </instance-parameter> + <parameter name="buf" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="fill"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="PushSrc" c:type="GstPushSrc*"/> + </instance-parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <field name="parent"> + <type name="BaseSrc" c:type="GstBaseSrc"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="PushSrcClass" c:type="GstPushSrcClass" glib:is-gtype-struct-for="PushSrc"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h">Subclasses can override any of the available virtual methods or not, as +needed. At the minimum, the @fill method should be overridden to produce +buffers.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h">Element parent class</doc> + <type name="BaseSrcClass" c:type="GstBaseSrcClass"/> + </field> + <field name="create"> + <callback name="create"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="PushSrc" c:type="GstPushSrc*"/> + </parameter> + <parameter name="buf" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="alloc"> + <callback name="alloc"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="PushSrc" c:type="GstPushSrc*"/> + </parameter> + <parameter name="buf" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="fill"> + <callback name="fill"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstpushsrc.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="PushSrc" c:type="GstPushSrc*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="QueueArray" c:type="GstQueueArray" disguised="1" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">#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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <method name="clear" c:identifier="gst_queue_array_clear" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Clears queue @array and frees all memory associated to it.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">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" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Drops the queue element at position @idx from queue @array.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">the dropped element</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">index to drop</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="drop_struct" c:identifier="gst_queue_array_drop_struct" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Drops the queue element at position @idx from queue @array and copies the +data of the element or structure that was removed into @p_struct if +@p_struct is set (not NULL).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">TRUE on success, or FALSE on error</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">index to drop</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="p_struct" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">address into which to store the data of the dropped structure, or NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="find" c:identifier="gst_queue_array_find" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">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.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Index of the found element or -1 if nothing was found.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">comparison function, or %NULL to find @data by value</doc> + <type name="GLib.CompareFunc" c:type="GCompareFunc"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">data for comparison function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_queue_array_free" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Frees queue @array and all memory associated to it.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_length" c:identifier="gst_queue_array_get_length" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the length of the queue @array</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">the length of the queue @array.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_empty" c:identifier="gst_queue_array_is_empty" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Checks if the queue @array is empty.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">%TRUE if the queue @array is empty</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek_head" c:identifier="gst_queue_array_peek_head" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the head of the queue @array and does not +remove it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">The head of the queue</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek_head_struct" c:identifier="gst_queue_array_peek_head_struct" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the head of the queue @array without removing it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">pointer to element or struct, or NULL if @array was empty. The + data pointed to by the returned pointer stays valid only as long as + the queue array is not modified further!</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek_nth" c:identifier="gst_queue_array_peek_nth" version="1.16" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the item at @idx in @array, but does not remove it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the item at @idx in @array, but does not remove it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">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" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the tail of the queue @array, but does not remove it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">The tail of the queue</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek_tail_struct" c:identifier="gst_queue_array_peek_tail_struct" version="1.14" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the tail of the queue @array, but does not remove it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">The tail of the queue</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="pop_head" c:identifier="gst_queue_array_pop_head" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns and head of the queue @array and removes +it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">The head of the queue</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="pop_head_struct" c:identifier="gst_queue_array_pop_head_struct" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the head of the queue @array and removes it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">pointer to element or struct, or NULL if @array was empty. The + data pointed to by the returned pointer stays valid only as long as + the queue array is not modified further!</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="pop_tail" c:identifier="gst_queue_array_pop_tail" version="1.14" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the tail of the queue @array and removes +it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">The tail of the queue</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="pop_tail_struct" c:identifier="gst_queue_array_pop_tail_struct" version="1.14" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Returns the tail of the queue @array and removes +it from the queue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">The tail of the queue</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + </parameters> + </method> + <method name="push_tail" c:identifier="gst_queue_array_push_tail" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Pushes @data to the tail of the queue @array.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">object to push</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="push_tail_struct" c:identifier="gst_queue_array_push_tail_struct"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="array" transfer-ownership="none"> + <type name="QueueArray" c:type="GstQueueArray*"/> + </instance-parameter> + <parameter name="p_struct" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </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" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <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" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">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" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Allocates a new #GstQueueArray object with an initial +queue size of @initial_size.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a new #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </return-value> + <parameters> + <parameter name="initial_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Initial size of the new queue</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="new_for_struct" c:identifier="gst_queue_array_new_for_struct" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Allocates a new #GstQueueArray object for elements (e.g. structures) +of size @struct_size, with an initial queue size of @initial_size.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a new #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </return-value> + <parameters> + <parameter name="struct_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Size of each element (e.g. structure) in the array</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="initial_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Initial size of the new queue</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + </record> + <record name="TypeFindData" c:type="GstTypeFindData" disguised="1" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">The opaque #GstTypeFindData structure.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <method name="free" c:identifier="gst_type_find_data_free" version="1.22" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">GstTypeFindData * to free</doc> + <type name="TypeFindData" c:type="GstTypeFindData*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_caps" c:identifier="gst_type_find_data_get_caps" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Returns #GstCaps associated with #GstTypeFindData</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">#GstCaps.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">GstTypeFindData *</doc> + <type name="TypeFindData" c:type="GstTypeFindData*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_probability" c:identifier="gst_type_find_data_get_probability" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Returns #GstTypeFindProbability associated with #GstTypeFindData</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">#GstTypeFindProbability.</doc> + <type name="Gst.TypeFindProbability" c:type="GstTypeFindProbability"/> + </return-value> + <parameters> + <instance-parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">GstTypeFindData *</doc> + <type name="TypeFindData" c:type="GstTypeFindData*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_typefind" c:identifier="gst_type_find_data_get_typefind" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Returns #GstTypeFind associated with #GstTypeFindData</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">#GstTypeFind.</doc> + <type name="Gst.TypeFind" c:type="GstTypeFind*"/> + </return-value> + <parameters> + <instance-parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">GstTypeFindData *</doc> + <type name="TypeFindData" c:type="GstTypeFindData*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_type_find_data_new" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Free-function: gst_type_find_data_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the #GstTypeFindData. The caller should free + the returned #GstTypeFindData with gst_type_find_data_free().</doc> + <type name="TypeFindData" c:type="GstTypeFindData*"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">a pointer with data to typefind</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + </record> + <callback name="TypeFindHelperGetRangeFunction" c:type="GstTypeFindHelperGetRangeFunction"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h">This function will be called by gst_type_find_helper_get_range() when +typefinding functions request to peek at the data of a stream at certain +offsets. If this function returns GST_FLOW_OK, the result buffer will be +stored in @buffer. The contents of @buffer is invalid for any other +return value. + +This function is supposed to behave exactly like a #GstPadGetRangeFunction.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h">GST_FLOW_OK for success</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h">a #GstObject that will handle the getrange request</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h">the parent of @obj or %NULL</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h">the offset of the range</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h">the length of the range</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h">a memory location to hold the result buffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + <function name="bit_reader_new" c:identifier="gst_bit_reader_new" moved-to="BitReader.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Create a new #GstBitReader instance, which will read from @data. + +Free-function: gst_bit_reader_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">a new #GstBitReader instance</doc> + <type name="BitReader" c:type="GstBitReader*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Data from which the #GstBitReader + should read</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitreader.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="bit_writer_new" c:identifier="gst_bit_writer_new" moved-to="BitWriter.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Creates a new, empty #GstBitWriter instance. + +Free-function: gst_bit_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a new, empty #GstByteWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </return-value> + </function> + <function name="bit_writer_new_with_data" c:identifier="gst_bit_writer_new_with_data" moved-to="BitWriter.new_with_data" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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 beginning. + +Free-function: gst_bit_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a new #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">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" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">if %TRUE the complete data can be read from the beginning</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="bit_writer_new_with_size" c:identifier="gst_bit_writer_new_with_size" moved-to="BitWriter.new_with_size" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Creates a #GstBitWriter instance with the given initial data size. + +Free-function: gst_bit_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">a new #GstBitWriter instance</doc> + <type name="BitWriter" c:type="GstBitWriter*"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">Initial size of data in bytes</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="fixed" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbitwriter.c">If %TRUE the data can't be reallocated</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function-macro name="byte_reader_dup_string" c:identifier="gst_byte_reader_dup_string" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <parameters> + <parameter name="reader"> + </parameter> + <parameter name="str"> + </parameter> + </parameters> + </function-macro> + <function-macro name="byte_reader_get_string" c:identifier="gst_byte_reader_get_string" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <parameters> + <parameter name="reader"> + </parameter> + <parameter name="str"> + </parameter> + </parameters> + </function-macro> + <function name="byte_reader_new" c:identifier="gst_byte_reader_new" moved-to="ByteReader.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Create a new #GstByteReader instance, which will read from @data. + +Free-function: gst_byte_reader_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a new #GstByteReader instance</doc> + <type name="ByteReader" c:type="GstByteReader*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">data from which the + #GstByteReader should read</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function-macro name="byte_reader_peek_string" c:identifier="gst_byte_reader_peek_string" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Returns a constant pointer to the current data position if there is +a NUL-terminated string in the data (this could be just a NUL terminator). +The current position will be maintained. This will work for any +NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. + +This function will fail if no NUL-terminator was found in in the data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <parameters> + <parameter name="reader"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + </parameter> + <parameter name="str"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">address of a + #gchar pointer variable in which to store the result</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="byte_reader_skip_string" c:identifier="gst_byte_reader_skip_string" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">Skips a NUL-terminated string in the #GstByteReader instance, advancing +the current position to the byte after the string. This will work for +any NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. + +This function will fail if no NUL-terminator was found in in the data.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.h"/> + <parameters> + <parameter name="reader"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytereader.c">a #GstByteReader instance</doc> + </parameter> + </parameters> + </function-macro> + <function name="byte_writer_new" c:identifier="gst_byte_writer_new" moved-to="ByteWriter.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Creates a new, empty #GstByteWriter instance + +Free-function: gst_byte_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">a new, empty #GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + </function> + <function name="byte_writer_new_with_data" c:identifier="gst_byte_writer_new_with_data" moved-to="ByteWriter.new_with_data" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Creates a new #GstByteWriter instance with the given +memory area. If @initialized is %TRUE it is possible to +read @size bytes from the #GstByteWriter from the beginning. + +Free-function: gst_byte_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">a new #GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Memory area for writing</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Size of @data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">If %TRUE the complete data can be read from the beginning</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="byte_writer_new_with_size" c:identifier="gst_byte_writer_new_with_size" moved-to="ByteWriter.new_with_size" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Creates a new #GstByteWriter instance with the given +initial data size. + +Free-function: gst_byte_writer_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">a new #GstByteWriter instance</doc> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">Initial size of data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="fixed" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.c">If %TRUE the data can't be reallocated</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function-macro name="byte_writer_put_string" c:identifier="gst_byte_writer_put_string" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h">Write a NUL-terminated string to @writer (including the terminator). The +string is assumed to be in an 8-bit encoding (e.g. ASCII,UTF-8 or +ISO-8859-1).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h"/> + <parameters> + <parameter name="writer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h">#GstByteWriter instance</doc> + </parameter> + <parameter name="data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbytewriter.h">Null terminated string</doc> + </parameter> + </parameters> + </function-macro> + <function name="queue_array_new" c:identifier="gst_queue_array_new" moved-to="QueueArray.new" version="1.2" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Allocates a new #GstQueueArray object with an initial +queue size of @initial_size.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a new #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </return-value> + <parameters> + <parameter name="initial_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Initial size of the new queue</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="queue_array_new_for_struct" c:identifier="gst_queue_array_new_for_struct" moved-to="QueueArray.new_for_struct" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Allocates a new #GstQueueArray object for elements (e.g. structures) +of size @struct_size, with an initial queue size of @initial_size.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">a new #GstQueueArray object</doc> + <type name="QueueArray" c:type="GstQueueArray*"/> + </return-value> + <parameters> + <parameter name="struct_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Size of each element (e.g. structure) in the array</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="initial_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstqueuearray.c">Initial size of the new queue</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="type_find_data_new" c:identifier="gst_type_find_data_new" moved-to="TypeFindData.new" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Free-function: gst_type_find_data_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the #GstTypeFindData. The caller should free + the returned #GstTypeFindData with gst_type_find_data_free().</doc> + <type name="TypeFindData" c:type="GstTypeFindData*"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">a pointer with data to typefind</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="type_find_helper" c:identifier="gst_type_find_helper"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Tries to find what type of data is flowing from the given source #GstPad. + +Free-function: gst_caps_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the #GstCaps corresponding to the data + stream. Returns %NULL if no #GstCaps matches the data stream.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">A source #GstPad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">The length in bytes</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="type_find_helper_for_buffer" c:identifier="gst_type_find_helper_for_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Tries to find what type of data is contained in the given #GstBuffer, the +assumption being that the buffer represents the beginning of the stream or +file. + +All available typefinders will be called on the data in order of rank. If +a typefinding function returns a probability of %GST_TYPE_FIND_MAXIMUM, +typefinding is stopped immediately and the found caps will be returned +right away. Otherwise, all available typefind functions will the tried, +and the caps with the highest probability will be returned, or %NULL if +the content of the buffer could not be identified. + +Free-function: gst_caps_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">a #GstBuffer with data to typefind</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="prob" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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_buffer_with_caps" c:identifier="gst_type_find_helper_for_buffer_with_caps" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Tries to find if type of media contained in the given #GstBuffer, matches +@caps specified, assumption being that the buffer represents the beginning +of the stream or file. + +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. + +Only the typefinder matching the given caps will be called, if found. The +caps with the highest probability will be returned, or %NULL if the content +of the @data could not be identified. + +Free-function: gst_caps_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">a #GstBuffer with data to typefind</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">caps of the media</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="prob" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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_buffer_with_extension" c:identifier="gst_type_find_helper_for_buffer_with_extension" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Tries to find what type of data is contained in the given @data, the +assumption being that the data represents the beginning of the stream or +file. + +All available typefinders will be called on the data in order of rank. If +a typefinding function returns a probability of %GST_TYPE_FIND_MAXIMUM, +typefinding is stopped immediately and the found caps will be returned +right away. Otherwise, all available typefind functions will the tried, +and the caps with the highest probability will be returned, or %NULL if +the content of @data could not be identified. + +Free-function: gst_caps_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">* a pointer with data to typefind</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="prob" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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_with_caps" c:identifier="gst_type_find_helper_for_data_with_caps" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Tries to find if type of media contained in the given @data, matches the +@caps specified, assumption being that the data represents the beginning +of the stream or file. + +Only the typefinder matching the given caps will be called, if found. The +caps with the highest probability will be returned, or %NULL if the content +of the @data could not be identified. + +Free-function: gst_caps_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">a pointer with data to typefind</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">caps of the media</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="prob" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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_with_extension" c:identifier="gst_type_find_helper_for_data_with_extension" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">* a pointer with data to typefind</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Tries to find the best #GstCaps associated with @extension. + +All available typefinders will be checked against the extension in order +of rank. The caps of the first typefinder that can handle @extension will be +returned. + +Free-function: gst_caps_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the #GstCaps corresponding to + @extension, 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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">object doing the typefinding, or %NULL (used for logging)</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="extension" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">an extension</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="type_find_helper_get_range" c:identifier="gst_type_find_helper_get_range"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Utility function to do pull-based typefinding. Unlike gst_type_find_helper() +however, this function will use the specified function @func to obtain the +data needed by the typefind functions, rather than operating on a given +source pad. This is useful mostly for elements like tag demuxers which +strip off data at the beginning and/or end of a file and want to typefind +the stripped data stream before adding their own source pad (the specified +callback can then call the upstream peer pad with offsets adjusted for the +tag size, for example). + +When @extension is not %NULL, this function will first try the typefind +functions for the given extension, which might speed up the typefinding +in many cases. + +Free-function: gst_caps_unref</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the #GstCaps corresponding to the data + stream. Returns %NULL if no #GstCaps matches the data stream.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">returned caps</doc> + <type name="Gst.Caps" c:type="GstCaps**"/> + </parameter> + <parameter name="prob" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">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_list_factories_for_caps" c:identifier="gst_type_find_list_factories_for_caps" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">Tries to find the best #GstTypeFindFactory associated with @caps. + +The typefinder that can handle @caps will be returned. + +Free-function: g_list_free</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">the list of #GstTypeFindFactory + corresponding to @caps, or %NULL if no typefinder could be + found. Caller should free the returned list with g_list_free() + and list elements with gst_object_unref().</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Gst.TypeFindFactory"/> + </type> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">object doing the typefinding, or %NULL (used for logging)</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gsttypefindhelper.c">caps of the media</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstCheck-1.0.gir b/girs/GstCheck-1.0.gir new file mode 100644 index 0000000000..2bb5ddc2e5 --- /dev/null +++ b/girs/GstCheck-1.0.gir @@ -0,0 +1,3771 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="1.0"/> + <package name="gstreamer-check-1.0"/> + <c:include name="gst/check/check.h"/> + <namespace name="GstCheck" version="1.0" shared-library="libgstcheck-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="CHECK_DEPRECATED_FOR" c:identifier="GST_CHECK_DEPRECATED_FOR" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/check-prelude.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <record name="CheckABIStruct" c:type="GstCheckABIStruct"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <field name="name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">The name of the structure</doc> + <type name="utf8" c:type="const char*"/> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">The current size of a structure</doc> + <type name="gint" c:type="int"/> + </field> + <field name="abi_size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">The reference size of the structure</doc> + <type name="gint" c:type="int"/> + </field> + </record> + <record name="CheckLogFilter" c:type="GstCheckLogFilter" disguised="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">Opaque structure containing data about a log filter +function.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + </record> + <callback name="CheckLogFilterFunc" c:type="GstCheckLogFilterFunc" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">A function that is called for messages matching the filter added by +@gst_check_add_log_filter.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">%TRUE if message should be discarded by GstCheck.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="log_domain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">the log domain of the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="log_level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">the log level of the message</doc> + <type name="GLib.LogLevelFlags" c:type="GLogLevelFlags"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">the message that has occurred</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="Harness" c:type="GstHarness" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">#GstHarness is meant to make writing unit test for GStreamer much easier. +It can be thought of as a way of treating a #GstElement as a black box, +deterministically feeding it data, and controlling what data it outputs. + +The basic structure of #GstHarness is two "floating" #GstPads that connect +to the harnessed #GstElement src and sink #GstPads like so: + +|[ + __________________________ + _____ | _____ _____ | _____ +| | | | | | | | | | +| src |--+-| sink| Element | src |-+--| sink| +|_____| | |_____| |_____| | |_____| + |__________________________| + +]| + +With this, you can now simulate any environment the #GstElement might find +itself in. By specifying the #GstCaps of the harness #GstPads, using +functions like gst_harness_set_src_caps() or gst_harness_set_sink_caps_str(), +you can test how the #GstElement interacts with different caps sets. + +Your harnessed #GstElement can of course also be a bin, and using +gst_harness_new_parse() supporting standard gst-launch syntax, you can +easily test a whole pipeline instead of just one element. + +You can then go on to push #GstBuffers and #GstEvents on to the srcpad, +using functions like gst_harness_push() and gst_harness_push_event(), and +then pull them out to examine them with gst_harness_pull() and +gst_harness_pull_event(). + +## A simple buffer-in buffer-out example + +|[<!-- language="C" --> + #include <gst/gst.h> + #include <gst/check/gstharness.h> + GstHarness *h; + GstBuffer *in_buf; + GstBuffer *out_buf; + + // attach the harness to the src and sink pad of GstQueue + h = gst_harness_new ("queue"); + + // we must specify a caps before pushing buffers + gst_harness_set_src_caps_str (h, "mycaps"); + + // create a buffer of size 42 + in_buf = gst_harness_create_buffer (h, 42); + + // push the buffer into the queue + gst_harness_push (h, in_buf); + + // pull the buffer from the queue + out_buf = gst_harness_pull (h); + + // validate the buffer in is the same as buffer out + fail_unless (in_buf == out_buf); + + // cleanup + gst_buffer_unref (out_buf); + gst_harness_teardown (h); + + ]| + +Another main feature of the #GstHarness is its integration with the +#GstTestClock. Operating the #GstTestClock can be very challenging, but +#GstHarness simplifies some of the most desired actions a lot, like wanting +to manually advance the clock while at the same time releasing a #GstClockID +that is waiting, with functions like gst_harness_crank_single_clock_wait(). + +#GstHarness also supports sub-harnesses, as a way of generating and +validating data. A sub-harness is another #GstHarness that is managed by +the "parent" harness, and can either be created by using the standard +gst_harness_new type functions directly on the (GstHarness *)->src_harness, +or using the much more convenient gst_harness_add_src() or +gst_harness_add_sink_parse(). If you have a decoder-element you want to test, +(like vp8dec) it can be very useful to add a src-harness with both a +src-element (videotestsrc) and an encoder (vp8enc) to feed the decoder data +with different configurations, by simply doing: + +|[<!-- language="C" --> + GstHarness * h = gst_harness_new ("vp8dec"); + gst_harness_add_src_parse (h, "videotestsrc is-live=1 ! vp8enc", TRUE); +]| + +and then feeding it data with: + +|[<!-- language="C" --> +gst_harness_push_from_src (h); +]|</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <field name="element" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">the element inside the harness</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </field> + <field name="srcpad" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">the internal harness source pad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="sinkpad" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">the internal harness sink pad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="src_harness" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">the source (input) harness (if any)</doc> + <type name="Harness" c:type="GstHarness*"/> + </field> + <field name="sink_harness" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">the sink (output) harness (if any)</doc> + <type name="Harness" c:type="GstHarness*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="HarnessPrivate" c:type="GstHarnessPrivate*"/> + </field> + <method name="add_element_full" c:identifier="gst_harness_add_element_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Adds a #GstElement to an empty #GstHarness + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstElement to add to the harness (transfer none)</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="hsrc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness srcpad. +%NULL will not create a harness srcpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="element_sinkpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +sinkpad that is then linked to the harness srcpad. Can be a static or request +or a sometimes pad that has been added. %NULL will not get/request a sinkpad +from the element. (Like if the element is a src.)</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="hsink" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness sinkpad. +%NULL will not create a harness sinkpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="element_srcpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +srcpad that is then linked to the harness sinkpad, similar to the +@element_sinkpad_name.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_element_sink_pad" c:identifier="gst_harness_add_element_sink_pad" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Links the specified #GstPad the @GstHarness srcpad. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="sinkpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstPad to link to the harness srcpad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="add_element_src_pad" c:identifier="gst_harness_add_element_src_pad" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Links the specified #GstPad the @GstHarness sinkpad. This can be useful if +perhaps the srcpad did not exist at the time of creating the harness, +like a demuxer that provides a sometimes-pad after receiving data. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="srcpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstPad to link to the harness sinkpad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="add_parse" c:identifier="gst_harness_add_parse" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Parses the @launchline and puts that in a #GstBin, +and then attches the supplied #GstHarness to the bin. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="launchline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing a gst-launch type line</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_probe" c:identifier="gst_harness_add_probe" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">A convenience function to allows you to call gst_pad_add_probe on a +#GstPad of a #GstElement that are residing inside the #GstHarness, +by using normal gst_pad_add_probe syntax + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with a #GstElementFactory name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="pad_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the pad to attach the probe to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="mask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstPadProbeType (see gst_pad_add_probe)</doc> + <type name="Gst.PadProbeType" c:type="GstPadProbeType"/> + </parameter> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="4" destroy="5"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstPadProbeCallback (see gst_pad_add_probe)</doc> + <type name="Gst.PadProbeCallback" c:type="GstPadProbeCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gpointer (see gst_pad_add_probe)</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_data" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GDestroyNotify (see gst_pad_add_probe)</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="add_propose_allocation_meta" c:identifier="gst_harness_add_propose_allocation_meta" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Add api with params as one of the supported metadata API to propose when +receiving an allocation query. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a metadata API</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">API specific parameters</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="add_sink" c:identifier="gst_harness_add_sink" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Similar to gst_harness_add_sink_harness, this is a convenience to +directly create a sink-harness using the @sink_element_name name specified. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="sink_element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of a #GstElement</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_sink_harness" c:identifier="gst_harness_add_sink_harness" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Similar to gst_harness_add_src, this allows you to send the data coming out +of your harnessed #GstElement to a sink-element, allowing to test different +responses the element output might create in sink elements. An example might +be an existing sink providing some analytical data on the input it receives that +can be useful to your testing. If the goal is to test a sink-element itself, +this is better achieved using gst_harness_new directly on the sink. + +If a sink-harness already exists it will be replaced. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="sink_harness" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness to be added as a sink-harness.</doc> + <type name="Harness" c:type="GstHarness*"/> + </parameter> + </parameters> + </method> + <method name="add_sink_parse" c:identifier="gst_harness_add_sink_parse" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Similar to gst_harness_add_sink, this allows you to specify a launch-line +instead of just an element name. See gst_harness_add_src_parse for details. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="launchline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of a #GstElement</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_src" c:identifier="gst_harness_add_src" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Similar to gst_harness_add_src_harness, this is a convenience to +directly create a src-harness using the @src_element_name name specified. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="src_element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of a #GstElement</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="has_clock_wait" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gboolean specifying if the #GstElement uses +gst_clock_wait_id internally.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="add_src_harness" c:identifier="gst_harness_add_src_harness" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">A src-harness is a great way of providing the #GstHarness with data. +By adding a src-type #GstElement, it is then easy to use functions like +gst_harness_push_from_src or gst_harness_src_crank_and_push_many +to provide your harnessed element with input. The @has_clock_wait variable +is a great way to control you src-element with, in that you can have it +produce a buffer for you by simply cranking the clock, and not have it +spin out of control producing buffers as fast as possible. + +If a src-harness already exists it will be replaced. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="src_harness" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness to be added as a src-harness.</doc> + <type name="Harness" c:type="GstHarness*"/> + </parameter> + <parameter name="has_clock_wait" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gboolean specifying if the #GstElement uses +gst_clock_wait_id internally.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="add_src_parse" c:identifier="gst_harness_add_src_parse" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Similar to gst_harness_add_src, this allows you to specify a launch-line, +which can be useful for both having more then one #GstElement acting as your +src (Like a src producing raw buffers, and then an encoder, providing encoded +data), but also by allowing you to set properties like "is-live" directly on +the elements. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="launchline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing a gst-launch type line</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="has_clock_wait" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gboolean specifying if the #GstElement uses +gst_clock_wait_id internally.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="buffers_in_queue" c:identifier="gst_harness_buffers_in_queue" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">The number of #GstBuffers currently in the #GstHarness sinkpad #GAsyncQueue + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #guint number of buffers in the queue</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="buffers_received" c:identifier="gst_harness_buffers_received" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">The total number of #GstBuffers that has arrived on the #GstHarness sinkpad. +This number includes buffers that have been dropped as well as buffers +that have already been pulled out. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #guint number of buffers received</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="crank_multiple_clock_waits" c:identifier="gst_harness_crank_multiple_clock_waits" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Similar to gst_harness_crank_single_clock_wait(), this is the function to use +if your harnessed element(s) are using more then one gst_clock_id_wait. +Failing to do so can (and will) make it racy which #GstClockID you actually +are releasing, where as this function will process all the waits at the +same time, ensuring that one thread can't register another wait before +both are released. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a @gboolean %TRUE if the "crank" was successful, %FALSE if not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="waits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #guint describing the number of #GstClockIDs to crank</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="crank_single_clock_wait" c:identifier="gst_harness_crank_single_clock_wait" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">A "crank" consists of three steps: +1: Wait for a #GstClockID to be registered with the #GstTestClock. +2: Advance the #GstTestClock to the time the #GstClockID is waiting for. +3: Release the #GstClockID wait. +Together, this provides an easy way to not have to think about the details +around clocks and time, but still being able to write deterministic tests +that are dependent on this. A "crank" can be though of as the notion of +manually driving the clock forward to its next logical step. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a @gboolean %TRUE if the "crank" was successful, %FALSE if not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="create_buffer" c:identifier="gst_harness_create_buffer" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Allocates a buffer using a #GstBufferPool if present, or else using the +configured #GstAllocator and #GstAllocationParams + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstBuffer of size @size</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gsize specifying the size of the buffer</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="dump_to_file" c:identifier="gst_harness_dump_to_file" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Allows you to dump the #GstBuffers the #GstHarness sinkpad #GAsyncQueue +to a file. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="filename" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with a the name of a file</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="events_in_queue" c:identifier="gst_harness_events_in_queue" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">The number of #GstEvents currently in the #GstHarness sinkpad #GAsyncQueue + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #guint number of events in the queue</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="events_received" c:identifier="gst_harness_events_received" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">The total number of #GstEvents that has arrived on the #GstHarness sinkpad +This number includes events handled by the harness as well as events +that have already been pulled out. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #guint number of events received</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="find_element" c:identifier="gst_harness_find_element" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Most useful in conjunction with gst_harness_new_parse, this will scan the +#GstElements inside the #GstHarness, and check if any of them matches +@element_name. Typical usecase being that you need to access one of the +harnessed elements for properties and/or signals. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstElement or %NULL if not found</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with a #GstElementFactory name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get" c:identifier="gst_harness_get" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">A convenience function to allows you to call g_object_get on a #GstElement +that are residing inside the #GstHarness, by using normal g_object_get +syntax. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with a #GstElementFactory name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the first property name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">return location for the first property, followed optionally by more + name/return location pairs, followed by %NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="get_allocator" c:identifier="gst_harness_get_allocator" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Gets the @allocator and its @params that has been decided to use after an +allocation query. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="allocator" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">the #GstAllocator used</doc> + <type name="Gst.Allocator" c:type="GstAllocator**"/> + </parameter> + <parameter name="params" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">the #GstAllocationParams of + @allocator</doc> + <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="get_last_pushed_timestamp" c:identifier="gst_harness_get_last_pushed_timestamp" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Get the timestamp of the last #GstBuffer pushed on the #GstHarness srcpad, +typically with gst_harness_push or gst_harness_push_from_src. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstClockTime with the timestamp or %GST_CLOCK_TIME_NONE if no +#GstBuffer has been pushed on the #GstHarness srcpad</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_testclock" c:identifier="gst_harness_get_testclock" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Get the #GstTestClock. Useful if specific operations on the testclock is +needed. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstTestClock, or %NULL if the testclock is not +present.</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="play" c:identifier="gst_harness_play" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">This will set the harnessed #GstElement to %GST_STATE_PLAYING. +#GstElements without a sink-#GstPad and with the %GST_ELEMENT_FLAG_SOURCE +flag set is considered a src #GstElement +Non-src #GstElements (like sinks and filters) are automatically set to +playing by the #GstHarness, but src #GstElements are not to avoid them +starting to produce buffers. +Hence, for src #GstElement you must call gst_harness_play() explicitly. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="pull" c:identifier="gst_harness_pull" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls a #GstBuffer from the #GAsyncQueue on the #GstHarness sinkpad. The pull +will timeout in 60 seconds. This is the standard way of getting a buffer +from a harnessed #GstElement. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstBuffer or %NULL if timed out.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="pull_event" c:identifier="gst_harness_pull_event" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness sinkpad. +Timeouts after 60 seconds similar to gst_harness_pull. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstEvent or %NULL if timed out.</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="pull_until_eos" c:identifier="gst_harness_pull_until_eos" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls a #GstBuffer from the #GAsyncQueue on the #GstHarness sinkpad. The pull +will block until an EOS event is received, or timeout in 60 seconds. +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">%TRUE on success, %FALSE on timeout.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="buf" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">A #GstBuffer, or %NULL if EOS or timeout occures + first.</doc> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </method> + <method name="pull_upstream_event" c:identifier="gst_harness_pull_upstream_event" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness srcpad. +Timeouts after 60 seconds similar to gst_harness_pull. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstEvent or %NULL if timed out.</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_harness_push" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pushes a #GstBuffer on the #GstHarness srcpad. The standard way of +interacting with an harnessed element. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstFlowReturn with the result from the push</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstBuffer to push</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="push_and_pull" c:identifier="gst_harness_push_and_pull" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Basically a gst_harness_push and a gst_harness_pull in one line. Reflects +the fact that you often want to do exactly this in your test: Push one buffer +in, and inspect the outcome. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstBuffer or %NULL if timed out.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstBuffer to push</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="push_event" c:identifier="gst_harness_push_event" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pushes an #GstEvent on the #GstHarness srcpad. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gboolean with the result from the push</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstEvent to push</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </method> + <method name="push_from_src" c:identifier="gst_harness_push_from_src" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Transfer data from the src-#GstHarness to the main-#GstHarness. It consists +of 4 steps: +1: Make sure the src is started. (see: gst_harness_play) +2: Crank the clock (see: gst_harness_crank_single_clock_wait) +3: Pull a #GstBuffer from the src-#GstHarness (see: gst_harness_pull) +4: Push the same #GstBuffer into the main-#GstHarness (see: gst_harness_push) + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstFlowReturn with the result of the push</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="push_to_sink" c:identifier="gst_harness_push_to_sink" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Transfer one #GstBuffer from the main-#GstHarness to the sink-#GstHarness. +See gst_harness_push_from_src for details. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstFlowReturn with the result of the push</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="push_upstream_event" c:identifier="gst_harness_push_upstream_event" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pushes an #GstEvent on the #GstHarness sinkpad. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gboolean with the result from the push</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstEvent to push</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </method> + <method name="query_latency" c:identifier="gst_harness_query_latency" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Get the min latency reported by any harnessed #GstElement. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstClockTime with min latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="set" c:identifier="gst_harness_set" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">A convenience function to allows you to call g_object_set on a #GstElement +that are residing inside the #GstHarness, by using normal g_object_set +syntax. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with a #GstElementFactory name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the first property name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">value for the first property, followed optionally by more + name/value pairs, followed by %NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_blocking_push_mode" c:identifier="gst_harness_set_blocking_push_mode" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Setting this will make the harness block in the chain-function, and +then release when gst_harness_pull() or gst_harness_try_pull() is called. +Can be useful when wanting to control a src-element that is not implementing +gst_clock_id_wait() so it can't be controlled by the #GstTestClock, since +it otherwise would produce buffers as fast as possible. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_caps" c:identifier="gst_harness_set_caps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the @GstHarness srcpad and sinkpad caps. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="in" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstCaps to set on the harness srcpad</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="out" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstCaps to set on the harness sinkpad</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_caps_str" c:identifier="gst_harness_set_caps_str" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the @GstHarness srcpad and sinkpad caps using strings. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="in" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a @gchar describing a #GstCaps to set on the harness srcpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="out" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a @gchar describing a #GstCaps to set on the harness sinkpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_drop_buffers" c:identifier="gst_harness_set_drop_buffers" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">When set to %TRUE, instead of placing the buffers arriving from the harnessed +#GstElement inside the sinkpads #GAsyncQueue, they are instead unreffed. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="drop_buffers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gboolean specifying to drop outgoing buffers or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_forwarding" c:identifier="gst_harness_set_forwarding" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">As a convenience, a src-harness will forward %GST_EVENT_STREAM_START, +%GST_EVENT_CAPS and %GST_EVENT_SEGMENT to the main-harness if forwarding +is enabled, and forward any sticky-events from the main-harness to +the sink-harness. It will also forward the %GST_QUERY_ALLOCATION. + +If forwarding is disabled, the user will have to either manually push +these events from the src-harness using gst_harness_src_push_event(), or +create and push them manually. While this will allow full control and +inspection of these events, for the most cases having forwarding enabled +will be sufficient when writing a test where the src-harness' main function +is providing data for the main-harness. + +Forwarding is enabled by default. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="forwarding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gboolean to enable/disable forwarding</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_live" c:identifier="gst_harness_set_live" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the liveness reported by #GstHarness when receiving a latency-query. +The default is %TRUE.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="is_live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">%TRUE for live, %FALSE for non-live</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_propose_allocator" c:identifier="gst_harness_set_propose_allocator" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the @allocator and @params to propose when receiving an allocation +query. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="allocator" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstAllocator</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstAllocationParams</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="set_sink_caps" c:identifier="gst_harness_set_sink_caps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the @GstHarness sinkpad caps. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstCaps to set on the harness sinkpad</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_sink_caps_str" c:identifier="gst_harness_set_sink_caps_str" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the @GstHarness sinkpad caps using a string. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a @gchar describing a #GstCaps to set on the harness sinkpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_src_caps" c:identifier="gst_harness_set_src_caps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the @GstHarness srcpad caps. This must be done before any buffers +can legally be pushed from the harness to the element. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstCaps to set on the harness srcpad</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_src_caps_str" c:identifier="gst_harness_set_src_caps_str" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the @GstHarness srcpad caps using a string. This must be done before +any buffers can legally be pushed from the harness to the element. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a @gchar describing a #GstCaps to set on the harness srcpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_time" c:identifier="gst_harness_set_time" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Advance the #GstTestClock to a specific time. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a @gboolean %TRUE if the time could be set. %FALSE if not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstClockTime to advance the clock to</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_upstream_latency" c:identifier="gst_harness_set_upstream_latency" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the min latency reported by #GstHarness when receiving a latency-query</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstClockTime specifying the latency</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="sink_push_many" c:identifier="gst_harness_sink_push_many" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Convenience that calls gst_harness_push_to_sink @pushes number of times. +Will abort the pushing if any one push fails. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstFlowReturn with the result of the push</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="pushes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gint with the number of calls to gst_harness_push_to_sink</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="src_crank_and_push_many" c:identifier="gst_harness_src_crank_and_push_many" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Transfer data from the src-#GstHarness to the main-#GstHarness. Similar to +gst_harness_push_from_src, this variant allows you to specify how many cranks +and how many pushes to perform. This can be useful for both moving a lot +of data at the same time, as well as cases when one crank does not equal one +buffer to push and v.v. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstFlowReturn with the result of the push</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="cranks" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gint with the number of calls to gst_harness_crank_single_clock_wait</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="pushes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gint with the number of calls to gst_harness_push</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="src_push_event" c:identifier="gst_harness_src_push_event" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Similar to what gst_harness_src_push does with #GstBuffers, this transfers +a #GstEvent from the src-#GstHarness to the main-#GstHarness. Note that +some #GstEvents are being transferred automagically. Look at sink_forward_pad +for details. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gboolean with the result of the push</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="stress_custom_start" c:identifier="gst_harness_stress_custom_start" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Start a custom stress-thread that will call your @callback for every +iteration allowing you to do something nasty. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="init" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GFunc that is called initially and only once</doc> + <type name="GLib.Func" c:type="GFunc"/> + </parameter> + <parameter name="callback" transfer-ownership="none" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GFunc that is called as often as possible</doc> + <type name="GLib.Func" c:type="GFunc"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gpointer with custom data to pass to the @callback function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each call to the @callback</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="stress_property_start_full" c:identifier="gst_harness_stress_property_start_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Call g_object_set with @name and @value in intervals of @sleep microseconds + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar specifying a property name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GValue to set the property to</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each g_object_set with @name and @value</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="stress_push_buffer_start_full" c:identifier="gst_harness_stress_push_buffer_start_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Push a #GstBuffer in intervals of @sleep microseconds. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstCaps for the #GstBuffer</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstSegment</doc> + <type name="Gst.Segment" c:type="const GstSegment*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstBuffer to push</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each call to gst_pad_push</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="stress_push_buffer_with_cb_start_full" c:identifier="gst_harness_stress_push_buffer_with_cb_start_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Push a #GstBuffer returned by @func in intervals of @sleep microseconds. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstCaps for the #GstBuffer</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstSegment</doc> + <type name="Gst.Segment" c:type="const GstSegment*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="3" destroy="4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessPrepareBufferFunc function called before every iteration +to prepare / create a #GstBuffer for pushing</doc> + <type name="HarnessPrepareBufferFunc" c:type="GstHarnessPrepareBufferFunc"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gpointer with data to the #GstHarnessPrepareBufferFunc function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GDestroyNotify that is called when thread is stopped</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each call to gst_pad_push</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="stress_push_event_start_full" c:identifier="gst_harness_stress_push_event_start_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Push the @event onto the harnessed #GstElement sinkpad in intervals of +@sleep microseconds + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstEvent to push</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each gst_event_push with @event</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="stress_push_event_with_cb_start_full" c:identifier="gst_harness_stress_push_event_with_cb_start_full" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Push a #GstEvent returned by @func onto the harnessed #GstElement sinkpad +in intervals of @sleep microseconds. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessPrepareEventFunc function called before every iteration +to prepare / create a #GstEvent for pushing</doc> + <type name="HarnessPrepareEventFunc" c:type="GstHarnessPrepareEventFunc"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gpointer with data to the #GstHarnessPrepareEventFunc function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GDestroyNotify that is called when thread is stopped</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each call to gst_pad_push</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="stress_push_upstream_event_start_full" c:identifier="gst_harness_stress_push_upstream_event_start_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Push the @event onto the harnessed #GstElement srcpad in intervals of +@sleep microseconds. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstEvent to push</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each gst_event_push with @event</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="stress_push_upstream_event_with_cb_start_full" c:identifier="gst_harness_stress_push_upstream_event_with_cb_start_full" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Push a #GstEvent returned by @func onto the harnessed #GstElement srcpad +in intervals of @sleep microseconds. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessPrepareEventFunc function called before every iteration +to prepare / create a #GstEvent for pushing</doc> + <type name="HarnessPrepareEventFunc" c:type="GstHarnessPrepareEventFunc"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gpointer with data to the #GstHarnessPrepareEventFunc function</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GDestroyNotify that is called when thread is stopped</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each call to gst_pad_push</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="stress_requestpad_start_full" c:identifier="gst_harness_stress_requestpad_start_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Call gst_element_request_pad in intervals of @sleep microseconds + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="templ" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstPadTemplate</doc> + <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="release" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gboolean</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each gst_element_request_pad</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="stress_statechange_start_full" c:identifier="gst_harness_stress_statechange_start_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Change the state of your harnessed #GstElement from NULL to PLAYING and +back again, only pausing for @sleep microseconds every time. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="sleep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gulong specifying how long to sleep in (microseconds) for +each state-change</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="take_all_data" c:identifier="gst_harness_take_all_data" shadowed-by="take_all_data_as_bytes" version="1.14" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls all pending data from the harness and returns it as a single +data slice.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a pointer to the data, newly allocated. Free + with g_free() when no longer needed. Will return %NULL if there is no + data.</doc> + <type name="guint8" c:type="guint8*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">the size of the data in bytes</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="take_all_data_as_buffer" c:identifier="gst_harness_take_all_data_as_buffer" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls all pending data from the harness and returns it as a single buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">the data as a buffer. Unref with gst_buffer_unref() + when no longer needed.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="take_all_data_as_bytes" c:identifier="gst_harness_take_all_data_as_bytes" shadows="take_all_data" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls all pending data from the harness and returns it as a single #GBytes.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a pointer to the data, newly allocated. Free + with g_free() when no longer needed.</doc> + <type name="GLib.Bytes" c:type="GBytes*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="teardown" c:identifier="gst_harness_teardown" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Tears down a @GstHarness, freeing all resources allocated using it. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="try_pull" c:identifier="gst_harness_try_pull" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls a #GstBuffer from the #GAsyncQueue on the #GstHarness sinkpad. Unlike +gst_harness_pull this will not wait for any buffers if not any are present, +and return %NULL straight away. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstBuffer or %NULL if no buffers are present in the #GAsyncQueue</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="try_pull_event" c:identifier="gst_harness_try_pull_event" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness sinkpad. +See gst_harness_try_pull for details. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstEvent or %NULL if no buffers are present in the #GAsyncQueue</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="try_pull_upstream_event" c:identifier="gst_harness_try_pull_upstream_event" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness srcpad. +See gst_harness_try_pull for details. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstEvent or %NULL if no buffers are present in the #GAsyncQueue</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="upstream_events_in_queue" c:identifier="gst_harness_upstream_events_in_queue" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">The number of #GstEvents currently in the #GstHarness srcpad #GAsyncQueue + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #guint number of events in the queue</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="upstream_events_received" c:identifier="gst_harness_upstream_events_received" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">The total number of #GstEvents that has arrived on the #GstHarness srcpad +This number includes events handled by the harness as well as events +that have already been pulled out. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #guint number of events received</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="use_systemclock" c:identifier="gst_harness_use_systemclock" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the system #GstClock on the @GstHarness #GstElement + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="use_testclock" c:identifier="gst_harness_use_testclock" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Sets the #GstTestClock on the #GstHarness #GstElement + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + </parameters> + </method> + <method name="wait_for_clock_id_waits" c:identifier="gst_harness_wait_for_clock_id_waits" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Waits for @timeout seconds until @waits number of #GstClockID waits is +registered with the #GstTestClock. Useful for writing deterministic tests, +where you want to make sure that an expected number of waits have been +reached. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a @gboolean %TRUE if the waits have been registered, %FALSE if not. +(Could be that it timed out waiting or that more waits than waits was found)</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </instance-parameter> + <parameter name="waits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #guint describing the numbers of #GstClockID registered with +the #GstTestClock</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #guint describing how many seconds to wait for @waits to be true</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_harness_new" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness. Works like gst_harness_new_with_padnames(), except it +assumes the #GstElement sinkpad is named "sink" and srcpad is named "src" + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing the #GstElement name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="new_empty" c:identifier="gst_harness_new_empty" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new empty harness. Use gst_harness_add_element_full() to add +an #GstElement to it. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + </function> + <function name="new_full" c:identifier="gst_harness_new_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstElement to attach the harness to (transfer none)</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="hsrc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness srcpad. +%NULL will not create a harness srcpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="element_sinkpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +sinkpad that is then linked to the harness srcpad. Can be a static or request +or a sometimes pad that has been added. %NULL will not get/request a sinkpad +from the element. (Like if the element is a src.)</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="hsink" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness sinkpad. +%NULL will not create a harness sinkpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="element_srcpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +srcpad that is then linked to the harness sinkpad, similar to the +@element_sinkpad_name.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="new_parse" c:identifier="gst_harness_new_parse" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness, parsing the @launchline and putting that in a #GstBin, +and then attches the harness to the bin. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="launchline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing a gst-launch type line</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="new_with_element" c:identifier="gst_harness_new_with_element" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness. Works in the same way as gst_harness_new_full(), only +that generic padtemplates are used for the harness src and sinkpads, which +will be sufficient in most usecases. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstElement to attach the harness to (transfer none)</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="element_sinkpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +sinkpad that is then linked to the harness srcpad. %NULL does not attach a +sinkpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element_srcpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +srcpad that is then linked to the harness sinkpad. %NULL does not attach a +srcpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="new_with_padnames" c:identifier="gst_harness_new_with_padnames" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness. Works like gst_harness_new_with_element(), +except you specify the factoryname of the #GstElement + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing the #GstElement name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element_sinkpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +sinkpad that is then linked to the harness srcpad. %NULL does not attach a +sinkpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element_srcpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +srcpad that is then linked to the harness sinkpad. %NULL does not attach a +srcpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="new_with_templates" c:identifier="gst_harness_new_with_templates" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness, like gst_harness_new_full(), except it +assumes the #GstElement sinkpad is named "sink" and srcpad is named "src" + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing the #GstElement name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="hsrc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness srcpad. +%NULL will not create a harness srcpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="hsink" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness sinkpad. +%NULL will not create a harness sinkpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + </parameters> + </function> + <function name="stress_thread_stop" c:identifier="gst_harness_stress_thread_stop" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Stop the running #GstHarnessThread + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="t" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </parameter> + </parameters> + </function> + </record> + <callback name="HarnessPrepareBufferFunc" c:type="GstHarnessPrepareBufferFunc" version="1.6"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="HarnessPrepareEventFunc" c:type="GstHarnessPrepareEventFunc" version="1.8"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="h" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">a #GstHarness</doc> + <type name="Harness" c:type="GstHarness*"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="HarnessPrivate" c:type="GstHarnessPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + </record> + <record name="HarnessThread" c:type="GstHarnessThread" disguised="1" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.h">Opaque handle representing a GstHarness stress testing thread.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + </record> + <function-macro name="IS_TEST_CLOCK" c:identifier="GST_IS_TEST_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TEST_CLOCK_CLASS" c:identifier="GST_IS_TEST_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <record name="StreamConsistency" c:type="GstStreamConsistency" disguised="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.h">Opaque consistency checker handle.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.h"/> + </record> + <function-macro name="TEST_CLOCK" c:identifier="GST_TEST_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TEST_CLOCK_CAST" c:identifier="GST_TEST_CLOCK_CAST" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TEST_CLOCK_CLASS" c:identifier="GST_TEST_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TEST_CLOCK_GET_CLASS" c:identifier="GST_TEST_CLOCK_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="TestClock" c:symbol-prefix="test_clock" c:type="GstTestClock" version="1.2" parent="Gst.Clock" glib:type-name="GstTestClock" glib:get-type="gst_test_clock_get_type" glib:type-struct="TestClockClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">GstTestClock is an implementation of #GstClock which has different +behaviour compared to #GstSystemClock. Time for #GstSystemClock advances +according to the system time, while time for #GstTestClock changes only +when gst_test_clock_set_time() or gst_test_clock_advance_time() are +called. #GstTestClock provides unit tests with the possibility to +precisely advance the time in a deterministic manner, independent of the +system time or any other external factors. + +## Advancing the time of a #GstTestClock + +|[<!-- language="C" --> + #include <gst/gst.h> + #include <gst/check/gsttestclock.h> + + GstClock *clock; + GstTestClock *test_clock; + + clock = gst_test_clock_new (); + test_clock = GST_TEST_CLOCK (clock); + GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock))); + gst_test_clock_advance_time ( test_clock, 1 * GST_SECOND); + GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock))); + g_usleep (10 * G_USEC_PER_SEC); + GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock))); + gst_test_clock_set_time (test_clock, 42 * GST_SECOND); + GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock))); + ... +]| + +#GstClock allows for setting up single shot or periodic clock notifications +as well as waiting for these notifications synchronously (using +gst_clock_id_wait()) or asynchronously (using gst_clock_id_wait_async() or +gst_clock_id_wait_async()). This is used by many GStreamer elements, +among them #GstBaseSrc and #GstBaseSink. + +#GstTestClock keeps track of these clock notifications. By calling +gst_test_clock_wait_for_next_pending_id() or +gst_test_clock_wait_for_multiple_pending_ids() a unit tests may wait for the +next one or several clock notifications to be requested. Additionally unit +tests may release blocked waits in a controlled fashion by calling +gst_test_clock_process_next_clock_id(). This way a unit test can control the +inaccuracy (jitter) of clock notifications, since the test can decide to +release blocked waits when the clock time has advanced exactly to, or past, +the requested clock notification time. + +There are also interfaces for determining if a notification belongs to a +#GstTestClock or not, as well as getting the number of requested clock +notifications so far. + +N.B.: When a unit test waits for a certain amount of clock notifications to +be requested in gst_test_clock_wait_for_next_pending_id() or +gst_test_clock_wait_for_multiple_pending_ids() then these functions may block +for a long time. If they block forever then the expected clock notifications +were never requested from #GstTestClock, and so the assumptions in the code +of the unit test are wrong. The unit test case runner in gstcheck is +expected to catch these cases either by the default test case timeout or the +one set for the unit test by calling tcase_set_timeout\(\). + +The sample code below assumes that the element under test will delay a +buffer pushed on the source pad by some latency until it arrives on the sink +pad. Moreover it is assumed that the element will at some point call +gst_clock_id_wait() to synchronously wait for a specific time. The first +buffer sent will arrive exactly on time only delayed by the latency. The +second buffer will arrive a little late (7ms) due to simulated jitter in the +clock notification. + +## Demonstration of how to work with clock notifications and #GstTestClock + +|[<!-- language="C" --> + #include <gst/gst.h> + #include <gst/check/gstcheck.h> + #include <gst/check/gsttestclock.h> + + GstClockTime latency; + GstElement *element; + GstPad *srcpad; + GstClock *clock; + GstTestClock *test_clock; + GstBuffer buf; + GstClockID pending_id; + GstClockID processed_id; + + latency = 42 * GST_MSECOND; + element = create_element (latency, ...); + srcpad = get_source_pad (element); + + clock = gst_test_clock_new (); + test_clock = GST_TEST_CLOCK (clock); + gst_element_set_clock (element, clock); + + GST_INFO ("Set time, create and push the first buffer\n"); + gst_test_clock_set_time (test_clock, 0); + buf = create_test_buffer (gst_clock_get_time (clock), ...); + gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK); + + GST_INFO ("Block until element is waiting for a clock notification\n"); + gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id); + GST_INFO ("Advance to the requested time of the clock notification\n"); + gst_test_clock_advance_time (test_clock, latency); + GST_INFO ("Release the next blocking wait and make sure it is the one from element\n"); + processed_id = gst_test_clock_process_next_clock_id (test_clock); + g_assert (processed_id == pending_id); + g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK); + gst_clock_id_unref (pending_id); + gst_clock_id_unref (processed_id); + + GST_INFO ("Validate that element produced an output buffer and check its timestamp\n"); + g_assert_cmpint (get_number_of_output_buffer (...), ==, 1); + buf = get_buffer_pushed_by_element (element, ...); + g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==, latency); + gst_buffer_unref (buf); + GST_INFO ("Check that element does not wait for any clock notification\n"); + g_assert (!gst_test_clock_peek_next_pending_id (test_clock, NULL)); + + GST_INFO ("Set time, create and push the second buffer\n"); + gst_test_clock_advance_time (test_clock, 10 * GST_SECOND); + buf = create_test_buffer (gst_clock_get_time (clock), ...); + gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK); + + GST_INFO ("Block until element is waiting for a new clock notification\n"); + (gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id); + GST_INFO ("Advance past 7ms beyond the requested time of the clock notification\n"); + gst_test_clock_advance_time (test_clock, latency + 7 * GST_MSECOND); + GST_INFO ("Release the next blocking wait and make sure it is the one from element\n"); + processed_id = gst_test_clock_process_next_clock_id (test_clock); + g_assert (processed_id == pending_id); + g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK); + gst_clock_id_unref (pending_id); + gst_clock_id_unref (processed_id); + + GST_INFO ("Validate that element produced an output buffer and check its timestamp\n"); + g_assert_cmpint (get_number_of_output_buffer (...), ==, 1); + buf = get_buffer_pushed_by_element (element, ...); + g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==, + 10 * GST_SECOND + latency + 7 * GST_MSECOND); + gst_buffer_unref (buf); + GST_INFO ("Check that element does not wait for any clock notification\n"); + g_assert (!gst_test_clock_peek_next_pending_id (test_clock, NULL)); + ... +]| + +Since #GstTestClock is only supposed to be used in unit tests it calls +g_assert(), g_assert_cmpint() or g_assert_cmpuint() to validate all function +arguments. This will highlight any issues with the unit test code itself.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <constructor name="new" c:identifier="gst_test_clock_new" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Creates a new test clock with its time set to zero. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstTestClock cast to #GstClock.</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </return-value> + </constructor> + <constructor name="new_with_start_time" c:identifier="gst_test_clock_new_with_start_time" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Creates a new test clock with its time set to the specified time. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstTestClock cast to #GstClock.</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <parameter name="start_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstClockTime set to the desired start time of the clock.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <function name="id_list_get_latest_time" c:identifier="gst_test_clock_id_list_get_latest_time" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Finds the latest time inside the list. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="pending_list" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">List + of of pending #GstClockIDs</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="Gst.ClockID"/> + </type> + </parameter> + </parameters> + </function> + <method name="advance_time" c:identifier="gst_test_clock_advance_time" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Advances the time of the @test_clock by the amount given by @delta. The +time of @test_clock is monotonically increasing, therefore providing a +@delta which is negative or zero is a programming error. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstTestClock for which to increase the time</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="delta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a positive #GstClockTimeDiff to be added to the time of the clock</doc> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </parameter> + </parameters> + </method> + <method name="crank" c:identifier="gst_test_clock_crank" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">A "crank" consists of three steps: +1: Wait for a #GstClockID to be registered with the #GstTestClock. +2: Advance the #GstTestClock to the time the #GstClockID is waiting, unless + the clock time is already passed the clock id (Since: 1.18). +3: Release the #GstClockID wait. +A "crank" can be though of as the notion of +manually driving the clock forward to its next logical step.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">%TRUE if the crank was successful, %FALSE otherwise. + +MT safe.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">#GstTestClock to crank</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_next_entry_time" c:identifier="gst_test_clock_get_next_entry_time" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Retrieve the requested time for the next pending clock notification. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstClockTime set to the time of the next pending clock +notification. If no clock notifications have been requested +%GST_CLOCK_TIME_NONE will be returned.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstTestClock to fetch the next clock notification time for</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_id" c:identifier="gst_test_clock_has_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Checks whether @test_clock was requested to provide the clock notification +given by @id. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">%TRUE if the clock has been asked to provide the given clock +notification, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstTestClock to ask if it provided the notification</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstClockID clock notification</doc> + <type name="Gst.ClockID" c:type="GstClockID"/> + </parameter> + </parameters> + </method> + <method name="peek_id_count" c:identifier="gst_test_clock_peek_id_count" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Determine the number of pending clock notifications that have been +requested from the @test_clock. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">the number of pending clock notifications.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstTestClock for which to count notifications</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="peek_next_pending_id" c:identifier="gst_test_clock_peek_next_pending_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Determines if the @pending_id is the next clock notification scheduled to +be triggered given the current time of the @test_clock. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">%TRUE if @pending_id is the next clock notification to be +triggered, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstTestClock to check the clock notifications for</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="pending_id" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstClockID clock +notification to look for</doc> + <type name="Gst.ClockID" c:type="GstClockID*"/> + </parameter> + </parameters> + </method> + <method name="process_id" c:identifier="gst_test_clock_process_id" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Processes and releases the pending ID. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">#GstTestClock for which to process the pending IDs</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="pending_id" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">#GstClockID</doc> + <type name="Gst.ClockID" c:type="GstClockID"/> + </parameter> + </parameters> + </method> + <method name="process_id_list" c:identifier="gst_test_clock_process_id_list" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Processes and releases the pending IDs in the list. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">#GstTestClock for which to process the pending IDs</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="pending_list" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">List + of pending #GstClockIDs</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="Gst.ClockID"/> + </type> + </parameter> + </parameters> + </method> + <method name="process_next_clock_id" c:identifier="gst_test_clock_process_next_clock_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstClockID containing the next pending clock +notification.</doc> + <type name="Gst.ClockID" c:type="GstClockID"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstTestClock for which to retrieve the next pending clock +notification</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_time" c:identifier="gst_test_clock_set_time" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Sets the time of @test_clock to the time given by @new_time. The time of +@test_clock is monotonically increasing, therefore providing a @new_time +which is earlier or equal to the time of the clock as given by +gst_clock_get_time() is a programming error. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstTestClock of which to set the time</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="new_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a #GstClockTime later than that returned by gst_clock_get_time()</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="timed_wait_for_multiple_pending_ids" c:identifier="gst_test_clock_timed_wait_for_multiple_pending_ids" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Blocks until at least @count clock notifications have been requested from +@test_clock, or the timeout expires. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">a @gboolean %TRUE if the waits have been registered, %FALSE if not. +(Could be that it timed out waiting or that more waits than waits was found)</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">#GstTestClock for which to await having enough pending clock</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">the number of pending clock notifications to wait for</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timeout_ms" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">the timeout in milliseconds</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pending_list" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Address + of a #GList pointer variable to store the list of pending #GstClockIDs + that expired, or %NULL</doc> + <type name="GLib.List" c:type="GList**"> + <type name="Gst.ClockID"/> + </type> + </parameter> + </parameters> + </method> + <method name="wait_for_multiple_pending_ids" c:identifier="gst_test_clock_wait_for_multiple_pending_ids" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Blocks until at least @count clock notifications have been requested from +@test_clock. There is no timeout for this wait, see the main description of +#GstTestClock. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">#GstTestClock for which to await having enough pending clock</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">the number of pending clock notifications to wait for</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pending_list" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Address + of a #GList pointer variable to store the list of pending #GstClockIDs + that expired, or %NULL</doc> + <type name="GLib.List" c:type="GList**"> + <type name="Gst.ClockID"/> + </type> + </parameter> + </parameters> + </method> + <method name="wait_for_next_pending_id" c:identifier="gst_test_clock_wait_for_next_pending_id" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Waits until a clock notification is requested from @test_clock. There is no +timeout for this wait, see the main description of #GstTestClock. A reference +to the pending clock notification is stored in @pending_id. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">#GstTestClock for which to get the pending clock notification</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="pending_id" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">#GstClockID +with information about the pending clock notification</doc> + <type name="Gst.ClockID" c:type="GstClockID*"/> + </parameter> + </parameters> + </method> + <method name="wait_for_pending_id_count" c:identifier="gst_test_clock_wait_for_pending_id_count" version="1.2" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">Blocks until at least @count clock notifications have been requested from +@test_clock. There is no timeout for this wait, see the main description of +#GstTestClock.</doc> + <doc-deprecated xml:space="preserve">use gst_test_clock_wait_for_multiple_pending_ids() instead.</doc-deprecated> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="test_clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">#GstTestClock for which to await having enough pending clock</doc> + <type name="TestClock" c:type="GstTestClock*"/> + </instance-parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">the number of pending clock notifications to wait for</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <property name="clock-type" writable="1" transfer-ownership="none"> + <type name="Gst.ClockType"/> + </property> + <property name="start-time" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.c">When a #GstTestClock is constructed it will have a certain start time set. +If the clock was created using gst_test_clock_new_with_start_time() then +this property contains the value of the @start_time argument. If +gst_test_clock_new() was called the clock started at time zero, and thus +this property contains the value 0.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <field name="parent"> + <type name="Gst.Clock" c:type="GstClock"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TestClockPrivate" c:type="GstTestClockPrivate*"/> + </field> + </class> + <record name="TestClockClass" c:type="GstTestClockClass" glib:is-gtype-struct-for="TestClock" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h">The class of a #GstTestClock, which has no virtual methods to override.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h">the parent class structure</doc> + <type name="Gst.ClockClass" c:type="GstClockClass"/> + </field> + </record> + <record name="TestClockPrivate" c:type="GstTestClockPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gsttestclock.h"/> + </record> + <function name="buffer_straw_get_buffer" c:identifier="gst_buffer_straw_get_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">Get one buffer from @pad. Implemented via buffer probes. This function will +block until the pipeline passes a buffer over @pad, so for robust behavior +in unit tests, you need to use check's timeout to fail out in the case that a +buffer never arrives. + +You must have previously called gst_buffer_straw_start_pipeline() on +@pipeline and @pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">the captured #GstBuffer.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">the pipeline previously started via gst_buffer_straw_start_pipeline()</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">the pad previously passed to gst_buffer_straw_start_pipeline()</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="buffer_straw_start_pipeline" c:identifier="gst_buffer_straw_start_pipeline"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">Sets up a pipeline for buffer sucking. This will allow you to call +gst_buffer_straw_get_buffer() to access buffers as they pass over @pad. + +This function is normally used in unit tests that want to verify that a +particular element is outputting correct buffers. For example, you would make +a pipeline via gst_parse_launch(), pull out the pad you want to monitor, then +call gst_buffer_straw_get_buffer() to get the buffers that pass through @pad. +The pipeline will block until you have sucked off the buffers. + +This function will set the state of @bin to PLAYING; to clean up, be sure to +call gst_buffer_straw_stop_pipeline(). + +Note that you may not start two buffer straws at the same time. This function +is intended for unit tests, not general API use. In fact it calls fail_if +from libcheck, so you cannot use it outside unit tests.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">the pipeline to run</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">a pad on an element in @bin</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="buffer_straw_stop_pipeline" c:identifier="gst_buffer_straw_stop_pipeline"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">Set @bin to #GST_STATE_NULL and release resource allocated in +gst_buffer_straw_start_pipeline(). + +You must have previously called gst_buffer_straw_start_pipeline() on +@pipeline and @pad.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">the pipeline previously started via gst_buffer_straw_start_pipeline()</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstbufferstraw.c">the pad previously passed to gst_buffer_straw_start_pipeline()</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="check_abi_list" c:identifier="gst_check_abi_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Verifies that reference values and current values are equals in @list.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">A list of GstCheckABIStruct to be verified</doc> + <type name="CheckABIStruct" c:type="GstCheckABIStruct*"/> + </parameter> + <parameter name="have_abi_sizes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Whether there is a reference ABI size already specified, +if it is %FALSE and the `GST_ABI` environment variable is set, usable code +for @list will be printed.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="check_add_log_filter" c:identifier="gst_check_add_log_filter" version="1.12" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Add a callback @func to be called for all log messages that matches +@log_domain, @log_level and @regex. If @func is NULL the +matching logs will be silently discarded by GstCheck. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">A filter that can be passed to @gst_check_remove_log_filter.</doc> + <type name="CheckLogFilter" c:type="GstCheckLogFilter*"/> + </return-value> + <parameters> + <parameter name="log_domain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the log domain of the message</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="log_level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the log level of the message</doc> + <type name="GLib.LogLevelFlags" c:type="GLogLevelFlags"/> + </parameter> + <parameter name="regex" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a #GRegex to match the message</doc> + <type name="GLib.Regex" c:type="GRegex*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="4" destroy="5"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the function to call for matching messages</doc> + <type name="CheckLogFilterFunc" c:type="GstCheckLogFilterFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the user data to pass to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_data" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">#GDestroyNotify for @user_data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + <function name="check_buffer_data" c:identifier="gst_check_buffer_data"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Compare the buffer contents with @data and @size.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">buffer to compare</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">data to compare to</doc> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">size of data to compare</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="check_caps_equal" c:identifier="gst_check_caps_equal"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Compare two caps with gst_caps_is_equal and fail unless they are +equal.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="caps1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">first caps to compare</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="caps2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">second caps to compare</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="check_chain_func" c:identifier="gst_check_chain_func"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">A fake chain function that appends the buffer to the internal list of +buffers.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="parent" transfer-ownership="none"> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="check_clear_log_filter" c:identifier="gst_check_clear_log_filter" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Clear all filters added by @gst_check_add_log_filter. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="check_drop_buffers" c:identifier="gst_check_drop_buffers"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Unref and remove all buffers that are in the global @buffers GList, +emptying the list.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="check_element_push_buffer" c:identifier="gst_check_element_push_buffer"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Create an element using the factory providing the @element_name and +push the @buffer_in to this element. The element should create one buffer +and this will be compared with @buffer_out. We only check the caps +and the data of the buffers. This function unrefs the buffers.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">name of the element that needs to be created</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="buffer_in" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">push this buffer to the element</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="caps_in" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the #GstCaps expected of the sinkpad of the element</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="buffer_out" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">compare the result with this buffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="caps_out" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the #GstCaps expected of the srcpad of the element</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="check_element_push_buffer_list" c:identifier="gst_check_element_push_buffer_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Create an element using the factory providing the @element_name and push the +buffers in @buffer_in to this element. The element should create the buffers +equal to the buffers in @buffer_out. We only check the size and the data of +the buffers. This function unrefs the buffers in the two lists. +The last_flow_return parameter indicates the expected flow return value from +pushing the final buffer in the list. +This can be used to set up a test which pushes some buffers and then an +invalid buffer, when the final buffer is expected to fail, for example.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">name of the element that needs to be created</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="buffer_in" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a list of buffers that needs to be + pushed to the element</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Gst.Buffer"/> + </type> + </parameter> + <parameter name="caps_in" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the #GstCaps expected of the sinkpad of the element</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="buffer_out" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a list of buffers that we expect from +the element</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Gst.Buffer"/> + </type> + </parameter> + <parameter name="caps_out" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the #GstCaps expected of the srcpad of the element</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="last_flow_return" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the last buffer push needs to give this GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </parameter> + </parameters> + </function> + <function name="check_init" c:identifier="gst_check_init"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="argc" transfer-ownership="none"> + <type name="gint" c:type="int*"/> + </parameter> + <parameter name="argv" transfer-ownership="none"> + <type name="utf8" c:type="char***"/> + </parameter> + </parameters> + </function> + <function name="check_message_error" c:identifier="gst_check_message_error"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <type name="Gst.MessageType" c:type="GstMessageType"/> + </parameter> + <parameter name="domain" transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="check_object_destroyed_on_unref" c:identifier="gst_check_object_destroyed_on_unref" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Unrefs @object_to_unref and checks that is has properly been +destroyed.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object_to_unref" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">The #GObject to unref</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="check_objects_destroyed_on_unref" c:identifier="gst_check_objects_destroyed_on_unref" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Unrefs @object_to_unref and checks that is has properly been +destroyed, also checks that the other objects passed in +parameter have been destroyed as a concequence of +unrefing @object_to_unref. Last variable argument should be NULL.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object_to_unref" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">The #GObject to unref</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="first_object" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">The first object that should be destroyed as a +concequence of unrefing @object_to_unref.</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Additional object that should have been destroyed.</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="check_remove_log_filter" c:identifier="gst_check_remove_log_filter" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Remove a filter that has been added by @gst_check_add_log_filter. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Filter returned by @gst_check_add_log_filter</doc> + <type name="CheckLogFilter" c:type="GstCheckLogFilter*"/> + </parameter> + </parameters> + </function> + <function name="check_run_suite" c:identifier="gst_check_run_suite" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">number of failed tests</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="suite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">the check test suite</doc> + <type c:type="Suite*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="fname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">file name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_element" c:identifier="gst_check_setup_element"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">setup an element for a filter test with mysrcpad and mysinkpad</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a new element</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">factory</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_events" c:identifier="gst_check_setup_events"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Push stream-start, caps and segment event, which consist of the minimum +required events to allow streaming. Caps is optional to allow raw src +testing. If @element has more than one src or sink pad, use +gst_check_setup_events_with_stream_id() instead.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="srcpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">The src #GstPad to push on</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">The #GstElement use to create the stream id</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">#GstCaps in case caps event must be sent</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">The #GstFormat of the default segment to send</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + </parameters> + </function> + <function name="check_setup_events_with_stream_id" c:identifier="gst_check_setup_events_with_stream_id"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Push stream-start, caps and segment event, which consist of the minimum +required events to allow streaming. Caps is optional to allow raw src +testing.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="srcpad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">The src #GstPad to push on</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">The #GstElement use to create the stream id</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="caps" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">#GstCaps in case caps event must be sent</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">The #GstFormat of the default segment to send</doc> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="stream_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">A unique identifier for the stream</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_sink_pad" c:identifier="gst_check_setup_sink_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Does the same as #gst_check_setup_sink_pad_by_name with the <emphasis> name </emphasis> parameter equal to "src".</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a new pad that can be used to check the output of @element</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">element to setup pad on</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="tmpl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">pad template</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_sink_pad_by_name" c:identifier="gst_check_setup_sink_pad_by_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Creates a new sink pad (based on the given @tmpl) and links it to the given @element src pad +(the pad that matches the given @name). +You can set event/chain/query functions on this pad to check the output of the @element.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a new pad that can be used to check the output of @element</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">element to setup pad on</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="tmpl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">pad template</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Name of the @element src pad that will be linked to the sink pad that will be setup</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_sink_pad_by_name_from_template" c:identifier="gst_check_setup_sink_pad_by_name_from_template" version="1.4"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a new pad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">element to setup pad on</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="tmpl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">pad template</doc> + <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_sink_pad_from_template" c:identifier="gst_check_setup_sink_pad_from_template" version="1.4"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a new pad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">element to setup pad on</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="tmpl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">pad template</doc> + <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_src_pad" c:identifier="gst_check_setup_src_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Does the same as #gst_check_setup_src_pad_by_name with the <emphasis> name </emphasis> parameter equal to "sink".</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">A new pad that can be used to inject data on @element</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">element to setup pad on</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="tmpl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">pad template</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_src_pad_by_name" c:identifier="gst_check_setup_src_pad_by_name"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Creates a new src pad (based on the given @tmpl) and links it to the given @element sink pad (the pad that matches the given @name). +Before using the src pad to push data on @element you need to call #gst_check_setup_events on the created src pad. + +Example of how to push a buffer on @element: + +|[<!-- language="C" --> +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", +GST_PAD_SINK, +GST_PAD_ALWAYS, +GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING) +); +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", +GST_PAD_SRC, +GST_PAD_ALWAYS, +GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING) +); + +GstElement * element = gst_check_setup_element ("element"); +GstPad * mysrcpad = gst_check_setup_src_pad (element, &srctemplate); +GstPad * mysinkpad = gst_check_setup_sink_pad (element, &sinktemplate); + +gst_pad_set_active (mysrcpad, TRUE); +gst_pad_set_active (mysinkpad, TRUE); +fail_unless (gst_element_set_state (element, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); + +GstCaps * caps = gst_caps_from_string (YOUR_DESIRED_SINK_CAPS); +gst_check_setup_events (mysrcpad, element, caps, GST_FORMAT_TIME); +gst_caps_unref (caps); + +fail_unless (gst_pad_push (mysrcpad, gst_buffer_new_and_alloc(2)) == GST_FLOW_OK); +]| + +For very simple input/output test scenarios checkout #gst_check_element_push_buffer_list and #gst_check_element_push_buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">A new pad that can be used to inject data on @element</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">element to setup src pad on</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="tmpl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">pad template</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">Name of the @element sink pad that will be linked to the src pad that will be setup</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_src_pad_by_name_from_template" c:identifier="gst_check_setup_src_pad_by_name_from_template" version="1.4"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a new pad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">element to setup pad on</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="tmpl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">pad template</doc> + <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="check_setup_src_pad_from_template" c:identifier="gst_check_setup_src_pad_from_template" version="1.4"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">a new pad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">element to setup pad on</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="tmpl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstcheck.c">pad template</doc> + <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/> + </parameter> + </parameters> + </function> + <function name="check_teardown_element" c:identifier="gst_check_teardown_element"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </function> + <function name="check_teardown_pad_by_name" c:identifier="gst_check_teardown_pad_by_name"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="check_teardown_sink_pad" c:identifier="gst_check_teardown_sink_pad"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </function> + <function name="check_teardown_src_pad" c:identifier="gst_check_teardown_src_pad"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstcheck.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </function> + <function name="consistency_checker_add_pad" c:identifier="gst_consistency_checker_add_pad"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">Sets up a data probe on the given pad which will raise assertions if the +data flow is inconsistent.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">%TRUE if the pad was added</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="consist" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">The #GstStreamConsistency handle</doc> + <type name="StreamConsistency" c:type="GstStreamConsistency*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">The #GstPad on which the dataflow will be checked.</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="consistency_checker_free" c:identifier="gst_consistency_checker_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">Frees the allocated data and probes associated with @consist.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="consist" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">The #GstStreamConsistency to free.</doc> + <type name="StreamConsistency" c:type="GstStreamConsistency*"/> + </parameter> + </parameters> + </function> + <function name="consistency_checker_new" c:identifier="gst_consistency_checker_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">Sets up a data probe on the given pad which will raise assertions if the +data flow is inconsistent.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">A #GstStreamConsistency structure used to track data flow.</doc> + <type name="StreamConsistency" c:type="GstStreamConsistency*"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">The #GstPad on which the dataflow will be checked.</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="consistency_checker_reset" c:identifier="gst_consistency_checker_reset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">Reset the stream checker's internal variables.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="consist" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstconsistencychecker.c">The #GstStreamConsistency to reset.</doc> + <type name="StreamConsistency" c:type="GstStreamConsistency*"/> + </parameter> + </parameters> + </function> + <function name="harness_new" c:identifier="gst_harness_new" moved-to="Harness.new" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness. Works like gst_harness_new_with_padnames(), except it +assumes the #GstElement sinkpad is named "sink" and srcpad is named "src" + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing the #GstElement name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="harness_new_empty" c:identifier="gst_harness_new_empty" moved-to="Harness.new_empty" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new empty harness. Use gst_harness_add_element_full() to add +an #GstElement to it. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + </function> + <function name="harness_new_full" c:identifier="gst_harness_new_full" moved-to="Harness.new_full" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstElement to attach the harness to (transfer none)</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="hsrc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness srcpad. +%NULL will not create a harness srcpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="element_sinkpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +sinkpad that is then linked to the harness srcpad. Can be a static or request +or a sometimes pad that has been added. %NULL will not get/request a sinkpad +from the element. (Like if the element is a src.)</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="hsink" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness sinkpad. +%NULL will not create a harness sinkpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="element_srcpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +srcpad that is then linked to the harness sinkpad, similar to the +@element_sinkpad_name.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="harness_new_parse" c:identifier="gst_harness_new_parse" moved-to="Harness.new_parse" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness, parsing the @launchline and putting that in a #GstBin, +and then attches the harness to the bin. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="launchline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing a gst-launch type line</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="harness_new_with_element" c:identifier="gst_harness_new_with_element" moved-to="Harness.new_with_element" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness. Works in the same way as gst_harness_new_full(), only +that generic padtemplates are used for the harness src and sinkpads, which +will be sufficient in most usecases. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstElement to attach the harness to (transfer none)</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="element_sinkpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +sinkpad that is then linked to the harness srcpad. %NULL does not attach a +sinkpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element_srcpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +srcpad that is then linked to the harness sinkpad. %NULL does not attach a +srcpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="harness_new_with_padnames" c:identifier="gst_harness_new_with_padnames" moved-to="Harness.new_with_padnames" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness. Works like gst_harness_new_with_element(), +except you specify the factoryname of the #GstElement + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing the #GstElement name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element_sinkpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +sinkpad that is then linked to the harness srcpad. %NULL does not attach a +sinkpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element_srcpad_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar with the name of the element +srcpad that is then linked to the harness sinkpad. %NULL does not attach a +srcpad</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="harness_new_with_templates" c:identifier="gst_harness_new_with_templates" moved-to="Harness.new_with_templates" version="1.6" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Creates a new harness, like gst_harness_new_full(), except it +assumes the #GstElement sinkpad is named "sink" and srcpad is named "src" + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarness, or %NULL if the harness could +not be created</doc> + <type name="Harness" c:type="GstHarness*"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #gchar describing the #GstElement name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="hsrc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness srcpad. +%NULL will not create a harness srcpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="hsink" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstStaticPadTemplate describing the harness sinkpad. +%NULL will not create a harness sinkpad.</doc> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + </parameters> + </function> + <function-macro name="harness_stress_property_start" c:identifier="gst_harness_stress_property_start" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <parameters> + <parameter name="h"> + </parameter> + <parameter name="n"> + </parameter> + <parameter name="v"> + </parameter> + </parameters> + </function-macro> + <function-macro name="harness_stress_push_buffer_start" c:identifier="gst_harness_stress_push_buffer_start" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <parameters> + <parameter name="h"> + </parameter> + <parameter name="c"> + </parameter> + <parameter name="s"> + </parameter> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function-macro name="harness_stress_push_buffer_with_cb_start" c:identifier="gst_harness_stress_push_buffer_with_cb_start" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <parameters> + <parameter name="h"> + </parameter> + <parameter name="c"> + </parameter> + <parameter name="s"> + </parameter> + <parameter name="f"> + </parameter> + <parameter name="d"> + </parameter> + <parameter name="n"> + </parameter> + </parameters> + </function-macro> + <function-macro name="harness_stress_push_event_start" c:identifier="gst_harness_stress_push_event_start" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <parameters> + <parameter name="h"> + </parameter> + <parameter name="e"> + </parameter> + </parameters> + </function-macro> + <function-macro name="harness_stress_push_event_with_cb_start" c:identifier="gst_harness_stress_push_event_with_cb_start" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <parameters> + <parameter name="h"> + </parameter> + <parameter name="f"> + </parameter> + <parameter name="d"> + </parameter> + <parameter name="n"> + </parameter> + </parameters> + </function-macro> + <function-macro name="harness_stress_requestpad_start" c:identifier="gst_harness_stress_requestpad_start" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <parameters> + <parameter name="h"> + </parameter> + <parameter name="t"> + </parameter> + <parameter name="n"> + </parameter> + <parameter name="c"> + </parameter> + <parameter name="r"> + </parameter> + </parameters> + </function-macro> + <function-macro name="harness_stress_send_upstream_event_start" c:identifier="gst_harness_stress_send_upstream_event_start" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <parameters> + <parameter name="h"> + </parameter> + <parameter name="e"> + </parameter> + </parameters> + </function-macro> + <function-macro name="harness_stress_send_upstream_event_with_cb_start" c:identifier="gst_harness_stress_send_upstream_event_with_cb_start" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <parameters> + <parameter name="h"> + </parameter> + <parameter name="f"> + </parameter> + <parameter name="d"> + </parameter> + <parameter name="n"> + </parameter> + </parameters> + </function-macro> + <function-macro name="harness_stress_statechange_start" c:identifier="gst_harness_stress_statechange_start" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <parameters> + <parameter name="h"> + </parameter> + </parameters> + </function-macro> + <function name="harness_stress_thread_stop" c:identifier="gst_harness_stress_thread_stop" moved-to="Harness.stress_thread_stop" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">Stop the running #GstHarnessThread + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/check/gstharness.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="t" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/check/gstharness.c">a #GstHarnessThread</doc> + <type name="HarnessThread" c:type="GstHarnessThread*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstCodecs-1.0.gir b/girs/GstCodecs-1.0.gir new file mode 100644 index 0000000000..e4316d62f3 --- /dev/null +++ b/girs/GstCodecs-1.0.gir @@ -0,0 +1,5314 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <include name="GstVideo" version="1.0"/> + <package name="gstreamer-codecs-1.0"/> + <c:include name="gst/codecs/gsth264decoder.h"/> + <c:include name="gst/codecs/gsth265decoder.h"/> + <c:include name="gst/codecs/gstmpeg2decoder.h"/> + <c:include name="gst/codecs/gstvp8decoder.h"/> + <c:include name="gst/codecs/gstvp9decoder.h"/> + <namespace name="GstCodecs" version="1.0" shared-library="libgstcodecs-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <class name="AV1Decoder" c:symbol-prefix="av1_decoder" c:type="GstAV1Decoder" version="1.20" parent="GstVideo.VideoDecoder" abstract="1" glib:type-name="GstAV1Decoder" glib:get-type="gst_av1_decoder_get_type" glib:type-struct="AV1DecoderClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">The opaque #GstAV1Decoder data structure.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <virtual-method name="decode_tile" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">Provides the tile data with tile group header and required raw +bitstream for subclass to decode it.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + <parameter name="tile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Tile</doc> + <type name="AV1Tile" c:type="GstAV1Tile*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="duplicate_picture" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">Called when need to duplicate an existing #GstAV1Picture. As +duplicated key-frame will populate the DPB, this virtual +function is not optional.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="full"> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">the current #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="end_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">Optional. Called per one #GstAV1Picture to notify subclass to finish +decoding process for the #GstAV1Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_preferred_output_delay" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">Optional. Called by baseclass to query whether delaying output is +preferred by subclass or not.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </instance-parameter> + <parameter name="live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">Optional. Called whenever new #GstAV1Picture is created. +Subclass can set implementation specific user data +on the #GstAV1Picture via gst_av1_picture_set_user_data()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_sequence" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">Notifies subclass of SPS update</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </instance-parameter> + <parameter name="seq_hdr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1SequenceHeaderOBU</doc> + <type c:type="const GstAV1SequenceHeaderOBU*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="output_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">Called with a #GstAV1Picture which is required to be outputted. +The #GstVideoCodecFrame must be consumed by subclass.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">Optional. Called per one #GstAV1Picture to notify subclass to prepare +decoding process for the #GstAV1Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + <parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Dpb</doc> + <type name="AV1Dpb" c:type="GstAV1Dpb*"/> + </parameter> + </parameters> + </virtual-method> + <field name="parent" readable="0" private="1"> + <type name="GstVideo.VideoDecoder" c:type="GstVideoDecoder"/> + </field> + <field name="input_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="highest_spatial_layer" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AV1DecoderPrivate" c:type="GstAV1DecoderPrivate*"/> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AV1DecoderClass" c:type="GstAV1DecoderClass" glib:is-gtype-struct-for="AV1Decoder"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <field name="parent_class"> + <type name="GstVideo.VideoDecoderClass" c:type="GstVideoDecoderClass"/> + </field> + <field name="new_sequence" introspectable="0"> + <callback name="new_sequence" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </parameter> + <parameter name="seq_hdr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1SequenceHeaderOBU</doc> + <type c:type="const GstAV1SequenceHeaderOBU*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_picture"> + <callback name="new_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="duplicate_picture"> + <callback name="duplicate_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="full"> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">the current #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start_picture"> + <callback name="start_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + <parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Dpb</doc> + <type name="AV1Dpb" c:type="GstAV1Dpb*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decode_tile"> + <callback name="decode_tile"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + <parameter name="tile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Tile</doc> + <type name="AV1Tile" c:type="GstAV1Tile*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="end_picture"> + <callback name="end_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="output_picture"> + <callback name="output_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_preferred_output_delay"> + <callback name="get_preferred_output_delay"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">a #GstAV1Decoder</doc> + <type name="AV1Decoder" c:type="GstAV1Decoder*"/> + </parameter> + <parameter name="live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AV1DecoderPrivate" c:type="GstAV1DecoderPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + </record> + <record name="AV1Dpb" c:type="GstAV1Dpb" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <field name="pic_list" writable="1"> + <array zero-terminated="0"> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </array> + </field> + <method name="add" c:identifier="gst_av1_dpb_add" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">Store the @picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a #GstAV1Dpb</doc> + <type name="AV1Dpb" c:type="GstAV1Dpb*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_av1_dpb_clear" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">Clear all stored #GstAV1Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a #GstAV1Dpb</doc> + <type name="AV1Dpb" c:type="GstAV1Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_av1_dpb_free" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">Free the @dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a #GstAV1Dpb to free</doc> + <type name="AV1Dpb" c:type="GstAV1Dpb*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_av1_dpb_new" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">Create new #GstAV1Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a new #GstAV1Dpb</doc> + <type name="AV1Dpb" c:type="GstAV1Dpb*"/> + </return-value> + </function> + </record> + <record name="AV1Picture" c:type="GstAV1Picture" version="1.20" glib:type-name="GstAV1Picture" glib:get-type="gst_av1_picture_get_type" c:symbol-prefix="av1_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <field name="parent" readable="0" private="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject"/> + </field> + <field name="system_frame_number" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="frame_hdr" introspectable="0" readable="0" private="1"> + <type c:type="GstAV1FrameHeaderOBU"/> + </field> + <field name="temporal_id" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="spatial_id" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="display_frame_id" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="show_frame" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="showable_frame" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="apply_grain" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="discont_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="user_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <constructor name="new" c:identifier="gst_av1_picture_new" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">Create new #GstAV1Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a new #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </return-value> + </constructor> + <method name="get_user_data" c:identifier="gst_av1_picture_get_user_data" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">Gets private data set on the picture via +gst_av1_picture_set_user_data() previously.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">The previously set user_data</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_user_data" c:identifier="gst_av1_picture_set_user_data" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">Sets @user_data on the picture and the #GDestroyNotify that will be called when +the picture is freed. + +If a @user_data was previously set, then the previous set @notify will be called +before the @user_data is replaced.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a #GstAV1Picture</doc> + <type name="AV1Picture" c:type="GstAV1Picture*"/> + </instance-parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + </record> + <record name="AV1Tile" c:type="GstAV1Tile" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <field name="tile_group" introspectable="0" writable="1"> + <type c:type="GstAV1TileGroupOBU"/> + </field> + <field name="obu" introspectable="0" writable="1"> + <type c:type="GstAV1OBU"/> + </field> + </record> + <function-macro name="AV1_DECODER" c:identifier="GST_AV1_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AV1_DECODER_CLASS" c:identifier="GST_AV1_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AV1_DECODER_GET_CLASS" c:identifier="GST_AV1_DECODER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AV1_PICTURE" c:identifier="GST_AV1_PICTURE" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="H264Decoder" c:symbol-prefix="h264_decoder" c:type="GstH264Decoder" parent="GstVideo.VideoDecoder" abstract="1" glib:type-name="GstH264Decoder" glib:get-type="gst_h264_decoder_get_type" glib:type-struct="H264DecoderClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">The opaque #GstH264Decoder data structure.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <virtual-method name="decode_slice"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">Provides per slice data with parsed slice header and required raw bitstream +for subclass to decode it. If gst_h264_decoder_set_process_ref_pic_lists() +is called with %TRUE by the subclass, @ref_pic_list0 and @ref_pic_list1 +are non-%NULL. +In case of interlaced stream, @ref_pic_list0 and @ref_pic_list1 will +contain only the first field of complementary reference field pair +if currently being decoded picture is a frame picture. Subclasses might +need to retrive the other field (i.e., the second field) of the picture +if needed.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Slice</doc> + <type name="H264Slice" c:type="GstH264Slice*"/> + </parameter> + <parameter name="ref_pic_list0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"> + an array of #GstH264Picture pointers</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H264Picture"/> + </array> + </parameter> + <parameter name="ref_pic_list1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"> + an array of #GstH264Picture pointers</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H264Picture"/> + </array> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="end_picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">Optional. Called per one #GstH264Picture to notify subclass to finish +decoding process for the #GstH264Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_preferred_output_delay" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">Optional. Called by baseclass to query whether delaying output is +preferred by subclass or not.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_field_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">Called when a new field picture is created for interlaced field picture. +Subclass can attach implementation specific user data on @second_field via +gst_h264_picture_set_user_data()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="first_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">the first field #GstH264Picture already decoded</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + <parameter name="second_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture for the second field</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">Optional. Called whenever new #GstH264Picture is created. +Subclass can set implementation specific user data +on the #GstH264Picture via gst_h264_picture_set_user_data()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_sequence" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">Notifies subclass of SPS update</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="sps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264SPS</doc> + <type c:type="const GstH264SPS*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="output_picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">Called with a #GstH264Picture which is required to be outputted. +The #GstVideoCodecFrame must be consumed by subclass.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start_picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">Optional. Called per one #GstH264Picture to notify subclass to prepare +decoding process for the #GstH264Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Slice</doc> + <type name="H264Slice" c:type="GstH264Slice*"/> + </parameter> + <parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_picture" c:identifier="gst_h264_decoder_get_picture" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c">Retrive DPB and return a #GstH264Picture corresponding to +the @system_frame_number</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c">a #GstH264Picture if successful, or %NULL otherwise</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="system_frame_number" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c">a target system frame number of #GstH264Picture</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_process_ref_pic_lists" c:identifier="gst_h264_decoder_set_process_ref_pic_lists" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c">Called to en/disable reference picture modification process.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </instance-parameter> + <parameter name="process" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c">whether subclass is requiring reference picture modification process</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="compliance" version="1.20" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c">The compliance controls the behavior of the decoder to handle some +subtle cases and contexts, such as the low-latency DPB bumping or +mapping the baseline profile as the constrained-baseline profile, +etc.</doc> + <type name="H264DecoderCompliance"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="GstVideo.VideoDecoder" c:type="GstVideoDecoder"/> + </field> + <field name="input_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="H264DecoderPrivate" c:type="GstH264DecoderPrivate*"/> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="H264DecoderClass" c:type="GstH264DecoderClass" glib:is-gtype-struct-for="H264Decoder"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">The opaque #GstH264DecoderClass data structure.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="GstVideo.VideoDecoderClass" c:type="GstVideoDecoderClass"/> + </field> + <field name="new_sequence" introspectable="0"> + <callback name="new_sequence" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </parameter> + <parameter name="sps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264SPS</doc> + <type c:type="const GstH264SPS*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_picture"> + <callback name="new_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_field_picture"> + <callback name="new_field_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </parameter> + <parameter name="first_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">the first field #GstH264Picture already decoded</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + <parameter name="second_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture for the second field</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start_picture"> + <callback name="start_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Slice</doc> + <type name="H264Slice" c:type="GstH264Slice*"/> + </parameter> + <parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decode_slice"> + <callback name="decode_slice"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Slice</doc> + <type name="H264Slice" c:type="GstH264Slice*"/> + </parameter> + <parameter name="ref_pic_list0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"> + an array of #GstH264Picture pointers</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H264Picture"/> + </array> + </parameter> + <parameter name="ref_pic_list1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"> + an array of #GstH264Picture pointers</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H264Picture"/> + </array> + </parameter> + </parameters> + </callback> + </field> + <field name="end_picture"> + <callback name="end_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="output_picture"> + <callback name="output_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_preferred_output_delay"> + <callback name="get_preferred_output_delay"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">a #GstH264Decoder</doc> + <type name="H264Decoder" c:type="GstH264Decoder*"/> + </parameter> + <parameter name="live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="H264DecoderCompliance" version="1.20" glib:type-name="GstH264DecoderCompliance" glib:get-type="gst_h264_decoder_compliance_get_type" c:type="GstH264DecoderCompliance"> + <member name="auto" value="0" c:identifier="GST_H264_DECODER_COMPLIANCE_AUTO" glib:nick="auto"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">The decoder behavior is + automatically choosen.</doc> + </member> + <member name="strict" value="1" c:identifier="GST_H264_DECODER_COMPLIANCE_STRICT" glib:nick="strict"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">The decoder behavior strictly + conforms to the SPEC. All the decoder behaviors conform to the + SPEC, not including any nonstandard behavior which is not + mentioned in the SPEC.</doc> + </member> + <member name="normal" value="2" c:identifier="GST_H264_DECODER_COMPLIANCE_NORMAL" glib:nick="normal"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">The decoder behavior normally + conforms to the SPEC. Most behaviors conform to the SPEC but + including some nonstandard features which are widely used or + often used in the industry practice. This meets the request of + real streams and usages, but may not 100% conform to the + SPEC. It has very low risk. E.g., we will output pictures + without waiting DPB being full for the lower latency, which may + cause B frame disorder when there are reference frames with + smaller POC after it in decoder order. And the baseline profile + may be mapped to the constrained-baseline profile, but it may + have problems when a real baseline stream comes with FMO or + ASO.</doc> + </member> + <member name="flexible" value="3" c:identifier="GST_H264_DECODER_COMPLIANCE_FLEXIBLE" glib:nick="flexible"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h">The decoder behavior + flexibly conforms to the SPEC. It uses the nonstandard features + more aggressively in order to get better performance(for + example, lower latency). It may change the result of the + decoder and should be used carefully. Besides including all + risks in *normal* mode, it has more risks, such as frames + disorder when reference frames POC decrease in decoder order.</doc> + </member> + </enumeration> + <record name="H264DecoderPrivate" c:type="GstH264DecoderPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + </record> + <record name="H264Dpb" c:type="GstH264Dpb" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <method name="add" c:identifier="gst_h264_dpb_add"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Store the @picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </method> + <method name="bump" c:identifier="gst_h264_dpb_bump" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Perform bumping process as defined in C.4.5.3 "Bumping" process. +If @drain is %TRUE, @dpb will remove a #GstH264Picture from internal array +so that returned #GstH264Picture could hold the last reference of it</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Picture which is needed to be +outputted</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH265Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="drain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">whether draining or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_h264_dpb_clear"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Clear all stored #GstH264Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="delete_unused" c:identifier="gst_h264_dpb_delete_unused"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Delete already outputted and not referenced all pictures from dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_h264_dpb_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Free the @dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb to free</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_interlaced" c:identifier="gst_h264_dpb_get_interlaced" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">%TRUE if @dpb is configured for interlaced stream</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_long_ref_by_long_term_pic_num" c:identifier="gst_h264_dpb_get_long_ref_by_long_term_pic_num" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Find a long term reference picture which has matching long term picture number</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="long_term_pic_num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a long term picture number</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_lowest_frame_num_short_ref" c:identifier="gst_h264_dpb_get_lowest_frame_num_short_ref"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Find a short term reference picture which has the lowest frame_num_wrap</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_num_frames" c:identifier="gst_h264_dpb_get_max_num_frames" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">the number of maximum frames</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_num_reorder_frames" c:identifier="gst_h264_dpb_get_max_num_reorder_frames" version="1.22.2"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Maximum number of reorder frames</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_picture" c:identifier="gst_h264_dpb_get_picture" version="1.18"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">the picture identified with the specified +@system_frame_number, or %NULL if DPB does not contain a #GstH264Picture +corresponding to the @system_frame_number</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb +@system_frame_number The system frame number</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="system_frame_number" transfer-ownership="none"> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="get_pictures_all" c:identifier="gst_h264_dpb_get_pictures_all"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GArray of + #GstH264Picture stored in @dpb</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H264Picture"/> + </array> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pictures_long_term_ref" c:identifier="gst_h264_dpb_get_pictures_long_term_ref" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Retrieve all long-term reference pictures from @dpb. The picture will be +appended to the array.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="include_second_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">%TRUE if the second field pictures need to be included</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="out" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">an array + of #GstH264Picture pointer</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H264Picture"/> + </array> + </parameter> + </parameters> + </method> + <method name="get_pictures_short_term_ref" c:identifier="gst_h264_dpb_get_pictures_short_term_ref" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Retrieve all short-term reference pictures from @dpb. The picture will be +appended to the array.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="include_non_existing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">%TRUE if non-existing pictures need to be included</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="include_second_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">%TRUE if the second field pictures need to be included</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="out" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">an array + of #GstH264Picture pointers</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H264Picture"/> + </array> + </parameter> + </parameters> + </method> + <method name="get_short_ref_by_pic_num" c:identifier="gst_h264_dpb_get_short_ref_by_pic_num"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Find a short term reference picture which has matching picture number</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="pic_num" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a picture number</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_size" c:identifier="gst_h264_dpb_get_size"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">the length of stored dpb array</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_empty_frame_buffer" c:identifier="gst_h264_dpb_has_empty_frame_buffer" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">%TRUE if @dpb still has empty frame buffers.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="mark_all_non_ref" c:identifier="gst_h264_dpb_mark_all_non_ref"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Mark all pictures are not referenced</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="needs_bump" c:identifier="gst_h264_dpb_needs_bump" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">%TRUE if bumping is required</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="to_insert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">the current #GstH264Picture to insert to dpb.</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + <parameter name="latency_mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">The required #GstH264DpbBumpMode for bumping.</doc> + <type name="H264DpbBumpMode" c:type="GstH264DpbBumpMode"/> + </parameter> + </parameters> + </method> + <method name="num_ref_frames" c:identifier="gst_h264_dpb_num_ref_frames" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">The number of referenced frames</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="perform_memory_management_control_operation" c:identifier="gst_h264_dpb_perform_memory_management_control_operation" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Perform "8.2.5.4 Adaptive memory control decoded reference picture marking process"</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">%TRUE if successful</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH265Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="ref_pic_marking" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264RefPicMarking</doc> + <type c:type="GstH264RefPicMarking*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </method> + <method name="set_interlaced" c:identifier="gst_h264_dpb_set_interlaced" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="interlaced" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">%TRUE if interlaced</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_last_output" c:identifier="gst_h264_dpb_set_last_output" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Notify the DPB that @picture is output directly without storing +in the DPB.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Picture of the last output.</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </parameter> + </parameters> + </method> + <method name="set_max_num_frames" c:identifier="gst_h264_dpb_set_max_num_frames" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Set the number of maximum allowed frames to store</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="max_num_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">the maximum number of picture</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_max_num_reorder_frames" c:identifier="gst_h264_dpb_set_max_num_reorder_frames" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </instance-parameter> + <parameter name="max_num_reorder_frames" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">the max number of reorder frames, which +should not exceed the max size of DPB.</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_h264_dpb_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Create new #GstH264Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a new #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </return-value> + </function> + </record> + <enumeration name="H264DpbBumpMode" version="1.20" c:type="GstH264DpbBumpMode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <member name="normal_latency" value="0" c:identifier="GST_H264_DPB_BUMP_NORMAL_LATENCY"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">No latency requirement for DBP bumping.</doc> + </member> + <member name="low_latency" value="1" c:identifier="GST_H264_DPB_BUMP_LOW_LATENCY"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">Low-latency requirement for DBP bumping.</doc> + </member> + <member name="very_low_latency" value="2" c:identifier="GST_H264_DPB_BUMP_VERY_LOW_LATENCY"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">Very low-latency requirement for DBP bumping.</doc> + </member> + </enumeration> + <record name="H264Picture" c:type="GstH264Picture" glib:type-name="GstH264Picture" glib:get-type="gst_h264_picture_get_type" c:symbol-prefix="h264_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <field name="parent" readable="0" private="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject"/> + </field> + <field name="type" introspectable="0" readable="0" private="1"> + <type c:type="GstH264SliceType"/> + </field> + <field name="system_frame_number" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="pic_order_cnt_type" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="top_field_order_cnt" readable="0" private="1"> + <type name="gint32" c:type="gint32"/> + </field> + <field name="bottom_field_order_cnt" readable="0" private="1"> + <type name="gint32" c:type="gint32"/> + </field> + <field name="pic_order_cnt" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="pic_order_cnt_msb" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="pic_order_cnt_lsb" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="delta_pic_order_cnt_bottom" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="delta_pic_order_cnt0" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="delta_pic_order_cnt1" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="pic_num" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="long_term_pic_num" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="frame_num" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="frame_num_offset" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="frame_num_wrap" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="long_term_frame_idx" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="nal_ref_idc" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="idr" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="idr_pic_id" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="field_pic_flag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="ref" readable="0" private="1"> + <type name="H264PictureReference" c:type="GstH264PictureReference"/> + </field> + <field name="ref_pic" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="needed_for_output" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="mem_mgmt_5" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="nonexisting" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="field" readable="0" private="1"> + <type name="H264PictureField" c:type="GstH264PictureField"/> + </field> + <field name="dec_ref_pic_marking" introspectable="0" readable="0" private="1"> + <type c:type="GstH264DecRefPicMarking"/> + </field> + <field name="second_field" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="other_field" readable="0" private="1"> + <type name="H264Picture" c:type="GstH264Picture*"/> + </field> + <field name="buffer_flags" readable="0" private="1"> + <type name="GstVideo.VideoBufferFlags" c:type="GstVideoBufferFlags"/> + </field> + <field name="discont_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="user_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <constructor name="new" c:identifier="gst_h264_picture_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Create new #GstH264Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a new #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </return-value> + </constructor> + <method name="get_user_data" c:identifier="gst_h264_picture_get_user_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Gets private data set on the picture via +gst_h264_picture_set_user_data() previously.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">The previously set user_data</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_user_data" c:identifier="gst_h264_picture_set_user_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Sets @user_data on the picture and the #GDestroyNotify that will be called when +the picture is freed. + +If a @user_data was previously set, then the previous set @notify will be called +before the @user_data is replaced.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GstH264Picture</doc> + <type name="H264Picture" c:type="GstH264Picture*"/> + </instance-parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + </record> + <enumeration name="H264PictureField" c:type="GstH264PictureField"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <member name="frame" value="0" c:identifier="GST_H264_PICTURE_FIELD_FRAME"> + </member> + <member name="top_field" value="1" c:identifier="GST_H264_PICTURE_FIELD_TOP_FIELD"> + </member> + <member name="bottom_field" value="2" c:identifier="GST_H264_PICTURE_FIELD_BOTTOM_FIELD"> + </member> + </enumeration> + <enumeration name="H264PictureReference" version="1.20" c:type="GstH264PictureReference"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <member name="none" value="0" c:identifier="GST_H264_PICTURE_REF_NONE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">Not used for reference picture</doc> + </member> + <member name="short_term" value="1" c:identifier="GST_H264_PICTURE_REF_SHORT_TERM"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">Used for short-term reference picture</doc> + </member> + <member name="long_term" value="2" c:identifier="GST_H264_PICTURE_REF_LONG_TERM"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">Used for long-term reference picture</doc> + </member> + </enumeration> + <record name="H264Slice" c:type="GstH264Slice"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <field name="header" introspectable="0" writable="1"> + <type c:type="GstH264SliceHdr"/> + </field> + <field name="nalu" introspectable="0" writable="1"> + <type c:type="GstH264NalUnit"/> + </field> + </record> + <function-macro name="H264_DECODER" c:identifier="GST_H264_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="H264_DECODER_CAST" c:identifier="GST_H264_DECODER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="H264_DECODER_CLASS" c:identifier="GST_H264_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="H264_DECODER_GET_CLASS" c:identifier="GST_H264_DECODER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="H264_DPB_MAX_SIZE" value="16" c:type="GST_H264_DPB_MAX_SIZE"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="H264_PICTURE" c:identifier="GST_H264_PICTURE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="H264_PICTURE_CAST" c:identifier="GST_H264_PICTURE_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="H264_PICTURE_IS_FRAME" c:identifier="GST_H264_PICTURE_IS_FRAME" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">Check whether @picture is a frame (not a field picture)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <parameters> + <parameter name="picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">a #GstH264Picture</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="H264_PICTURE_IS_LONG_TERM_REF" c:identifier="GST_H264_PICTURE_IS_LONG_TERM_REF" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">Check whether @picture is used for long-term reference</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <parameters> + <parameter name="picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">a #GstH264Picture</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="H264_PICTURE_IS_REF" c:identifier="GST_H264_PICTURE_IS_REF" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">Check whether @picture is used for short-term or long-term reference</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <parameters> + <parameter name="picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">a #GstH264Picture</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="H264_PICTURE_IS_SHORT_TERM_REF" c:identifier="GST_H264_PICTURE_IS_SHORT_TERM_REF" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">Check whether @picture is used for short-term reference</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <parameters> + <parameter name="picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h">a #GstH264Picture</doc> + </parameter> + </parameters> + </function-macro> + <class name="H265Decoder" c:symbol-prefix="h265_decoder" c:type="GstH265Decoder" parent="GstVideo.VideoDecoder" abstract="1" glib:type-name="GstH265Decoder" glib:get-type="gst_h265_decoder_get_type" glib:type-struct="H265DecoderClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">The opaque #GstH265Decoder data structure.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <virtual-method name="decode_slice"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">Provides per slice data with parsed slice header and required raw bitstream +for subclass to decode it. If gst_h265_decoder_set_process_ref_pic_lists() +is called with %TRUE by the subclass, @ref_pic_list0 and @ref_pic_list1 +are non-%NULL.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Slice</doc> + <type name="H265Slice" c:type="GstH265Slice*"/> + </parameter> + <parameter name="ref_pic_list0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"> + an array of #GstH265Picture pointers</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H265Picture"/> + </array> + </parameter> + <parameter name="ref_pic_list1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"> + an array of #GstH265Picture pointers</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H265Picture"/> + </array> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="end_picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">Optional. Called per one #GstH265Picture to notify subclass to finish +decoding process for the #GstH265Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_preferred_output_delay" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">Optional. Called by baseclass to query whether delaying output is +preferred by subclass or not.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </instance-parameter> + <parameter name="live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">Optional. Called whenever new #GstH265Picture is created. +Subclass can set implementation specific user data +on the #GstH265Picture via gst_h265_picture_set_user_data()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_sequence" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">Notifies subclass of video sequence update</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </instance-parameter> + <parameter name="sps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265SPS</doc> + <type c:type="const GstH265SPS*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="output_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start_picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">Optional. Called per one #GstH265Picture to notify subclass to prepare +decoding process for the #GstH265Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Slice</doc> + <type name="H265Slice" c:type="GstH265Slice*"/> + </parameter> + <parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_picture" c:identifier="gst_h265_decoder_get_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.c">Retrive DPB and return a #GstH265Picture corresponding to +the @system_frame_number</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.c">a #GstH265Picture if successful, or %NULL otherwise</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.c">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </instance-parameter> + <parameter name="system_frame_number" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.c">a target system frame number of #GstH265Picture</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_process_ref_pic_lists" c:identifier="gst_h265_decoder_set_process_ref_pic_lists" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.c">Called to en/disable reference picture modification process.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.c">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </instance-parameter> + <parameter name="process" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.c">whether subclass is requiring reference picture modification process</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="GstVideo.VideoDecoder" c:type="GstVideoDecoder"/> + </field> + <field name="input_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="RefPicSetStCurrBefore" readable="0" private="1"> + <array zero-terminated="0" fixed-size="16"> + <type name="H265Picture" c:type="GstH265Picture*"/> + </array> + </field> + <field name="RefPicSetStCurrAfter" readable="0" private="1"> + <array zero-terminated="0" fixed-size="16"> + <type name="H265Picture" c:type="GstH265Picture*"/> + </array> + </field> + <field name="RefPicSetStFoll" readable="0" private="1"> + <array zero-terminated="0" fixed-size="16"> + <type name="H265Picture" c:type="GstH265Picture*"/> + </array> + </field> + <field name="RefPicSetLtCurr" readable="0" private="1"> + <array zero-terminated="0" fixed-size="16"> + <type name="H265Picture" c:type="GstH265Picture*"/> + </array> + </field> + <field name="RefPicSetLtFoll" readable="0" private="1"> + <array zero-terminated="0" fixed-size="16"> + <type name="H265Picture" c:type="GstH265Picture*"/> + </array> + </field> + <field name="NumPocStCurrBefore" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="NumPocStCurrAfter" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="NumPocStFoll" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="NumPocLtCurr" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="NumPocLtFoll" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="NumPicTotalCurr" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="H265DecoderPrivate" c:type="GstH265DecoderPrivate*"/> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="H265DecoderClass" c:type="GstH265DecoderClass" glib:is-gtype-struct-for="H265Decoder"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">The opaque #GstH265DecoderClass data structure.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <field name="parent_class"> + <type name="GstVideo.VideoDecoderClass" c:type="GstVideoDecoderClass"/> + </field> + <field name="new_sequence" introspectable="0"> + <callback name="new_sequence" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </parameter> + <parameter name="sps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265SPS</doc> + <type c:type="const GstH265SPS*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_picture"> + <callback name="new_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start_picture"> + <callback name="start_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Slice</doc> + <type name="H265Slice" c:type="GstH265Slice*"/> + </parameter> + <parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decode_slice"> + <callback name="decode_slice"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Slice</doc> + <type name="H265Slice" c:type="GstH265Slice*"/> + </parameter> + <parameter name="ref_pic_list0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"> + an array of #GstH265Picture pointers</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H265Picture"/> + </array> + </parameter> + <parameter name="ref_pic_list1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"> + an array of #GstH265Picture pointers</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H265Picture"/> + </array> + </parameter> + </parameters> + </callback> + </field> + <field name="end_picture"> + <callback name="end_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="output_picture"> + <callback name="output_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_preferred_output_delay"> + <callback name="get_preferred_output_delay"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">a #GstH265Decoder</doc> + <type name="H265Decoder" c:type="GstH265Decoder*"/> + </parameter> + <parameter name="live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="H265DecoderPrivate" c:type="GstH265DecoderPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + </record> + <record name="H265Dpb" c:type="GstH265Dpb" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <method name="add" c:identifier="gst_h265_dpb_add"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Store the @picture and perform increase pic_latency_cnt as defined in +"C.5.2.3 Additional bumping" process</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </parameter> + </parameters> + </method> + <method name="bump" c:identifier="gst_h265_dpb_bump" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Perform bumping process as defined in C.5.2.4 "Bumping" process. +If @drain is %TRUE, @dpb will remove a #GstH265Picture from internal array +so that returned #GstH265Picture could hold the last reference of it</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Picture which is needed to be +outputted</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + <parameter name="drain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">whether draining or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_h265_dpb_clear"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Clear all stored #GstH265Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="delete_unused" c:identifier="gst_h265_dpb_delete_unused"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Delete not needed for output and not referenced all pictures from dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_h265_dpb_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Free the @dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb to free</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_long_ref_by_poc" c:identifier="gst_h265_dpb_get_long_ref_by_poc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Find a long term reference picture which has matching poc</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + <parameter name="poc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a picture order count</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_max_num_pics" c:identifier="gst_h265_dpb_get_max_num_pics"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">the number of maximum pictures</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_picture" c:identifier="gst_h265_dpb_get_picture" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">the picture identified with the specified +@system_frame_number, or %NULL if DPB does not contain a #GstH265Picture +corresponding to the @system_frame_number</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb +@system_frame_number The system frame number</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + <parameter name="system_frame_number" transfer-ownership="none"> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="get_pictures_all" c:identifier="gst_h265_dpb_get_pictures_all"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GArray of + #GstH265Picture stored in @dpb</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="H265Picture"/> + </array> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ref_by_poc" c:identifier="gst_h265_dpb_get_ref_by_poc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Find a short or long term reference picture which has matching poc</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + <parameter name="poc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a picture order count</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_ref_by_poc_lsb" c:identifier="gst_h265_dpb_get_ref_by_poc_lsb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Find a short or long term reference picture which has matching poc_lsb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + <parameter name="poc_lsb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a picture order count lsb</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_short_ref_by_poc" c:identifier="gst_h265_dpb_get_short_ref_by_poc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Find a short term reference picture which has matching poc</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + <parameter name="poc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a picture order count</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_size" c:identifier="gst_h265_dpb_get_size"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">the length of stored dpb array</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="mark_all_non_ref" c:identifier="gst_h265_dpb_mark_all_non_ref"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Mark all pictures are not referenced</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="needs_bump" c:identifier="gst_h265_dpb_needs_bump" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">%TRUE if bumping is required</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + <parameter name="max_num_reorder_pics" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">sps_max_num_reorder_pics[HighestTid]</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="max_latency_increase" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">SpsMaxLatencyPictures[HighestTid]</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="max_dec_pic_buffering" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">sps_max_dec_pic_buffering_minus1[HighestTid ] + 1 + or zero if this shouldn't be used for bumping decision</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="num_ref_pictures" c:identifier="gst_h265_dpb_num_ref_pictures"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">The number of referenced pictures</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_max_num_pics" c:identifier="gst_h265_dpb_set_max_num_pics"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Set the number of maximum allowed pictures to store</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </instance-parameter> + <parameter name="max_num_pics" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">the maximum number of picture</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_h265_dpb_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Create new #GstH265Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a new #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </return-value> + </function> + </record> + <record name="H265Picture" c:type="GstH265Picture" glib:type-name="GstH265Picture" glib:get-type="gst_h265_picture_get_type" c:symbol-prefix="h265_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <field name="parent" readable="0" private="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject"/> + </field> + <field name="type" introspectable="0" readable="0" private="1"> + <type c:type="GstH265SliceType"/> + </field> + <field name="system_frame_number" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="pic_order_cnt" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="pic_order_cnt_msb" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="pic_order_cnt_lsb" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="pic_latency_cnt" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="output_flag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="NoRaslOutputFlag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="NoOutputOfPriorPicsFlag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="RapPicFlag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="IntraPicFlag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="ref" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="long_term" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="needed_for_output" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="pic_struct" introspectable="0" readable="0" private="1"> + <type c:type="GstH265SEIPicStructType"/> + </field> + <field name="source_scan_type" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="duplicate_flag" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="buffer_flags" readable="0" private="1"> + <type name="GstVideo.VideoBufferFlags" c:type="GstVideoBufferFlags"/> + </field> + <field name="discont_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="user_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <constructor name="new" c:identifier="gst_h265_picture_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Create new #GstH265Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a new #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </return-value> + </constructor> + <method name="get_user_data" c:identifier="gst_h265_picture_get_user_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Gets private data set on the picture via +gst_h265_picture_set_user_data() previously.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">The previously set user_data</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_user_data" c:identifier="gst_h265_picture_set_user_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Sets @user_data on the picture and the #GDestroyNotify that will be called when +the picture is freed. + +If a @user_data was previously set, then the previous set @notify will be called +before the @user_data is replaced.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GstH265Picture</doc> + <type name="H265Picture" c:type="GstH265Picture*"/> + </instance-parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + </record> + <record name="H265Slice" c:type="GstH265Slice"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <field name="header" introspectable="0" writable="1"> + <type c:type="GstH265SliceHdr"/> + </field> + <field name="nalu" introspectable="0" writable="1"> + <type c:type="GstH265NalUnit"/> + </field> + <field name="rap_pic_flag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="no_rasl_output_flag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="no_output_of_prior_pics_flag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="clear_dpb" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="intra_pic_flag" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + </record> + <function-macro name="H265_DECODER" c:identifier="GST_H265_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="H265_DECODER_CAST" c:identifier="GST_H265_DECODER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="H265_DECODER_CLASS" c:identifier="GST_H265_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="H265_DECODER_GET_CLASS" c:identifier="GST_H265_DECODER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="H265_DPB_MAX_SIZE" value="16" c:type="GST_H265_DPB_MAX_SIZE"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="H265_PICTURE" c:identifier="GST_H265_PICTURE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="H265_PICTURE_CAST" c:identifier="GST_H265_PICTURE_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AV1_DECODER" c:identifier="GST_IS_AV1_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AV1_DECODER_CLASS" c:identifier="GST_IS_AV1_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_AV1_PICTURE" c:identifier="GST_IS_AV1_PICTURE" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_H264_DECODER" c:identifier="GST_IS_H264_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_H264_DECODER_CLASS" c:identifier="GST_IS_H264_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_H264_PICTURE" c:identifier="GST_IS_H264_PICTURE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_H265_DECODER" c:identifier="GST_IS_H265_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_H265_DECODER_CLASS" c:identifier="GST_IS_H265_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_H265_PICTURE" c:identifier="GST_IS_H265_PICTURE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_MPEG2_DECODER" c:identifier="GST_IS_MPEG2_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_MPEG2_DECODER_CLASS" c:identifier="GST_IS_MPEG2_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_MPEG2_PICTURE" c:identifier="GST_IS_MPEG2_PICTURE" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_VP8_DECODER" c:identifier="GST_IS_VP8_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_VP8_DECODER_CLASS" c:identifier="GST_IS_VP8_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_VP8_PICTURE" c:identifier="GST_IS_VP8_PICTURE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_VP9_DECODER" c:identifier="GST_IS_VP9_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_VP9_DECODER_CLASS" c:identifier="GST_IS_VP9_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_VP9_PICTURE" c:identifier="GST_IS_VP9_PICTURE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MPEG2_DECODER" c:identifier="GST_MPEG2_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MPEG2_DECODER_CLASS" c:identifier="GST_MPEG2_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MPEG2_DECODER_GET_CLASS" c:identifier="GST_MPEG2_DECODER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MPEG2_PICTURE" c:identifier="GST_MPEG2_PICTURE" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="MPEG2_PICTURE_IS_REF" c:identifier="GST_MPEG2_PICTURE_IS_REF" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h">Check whether @picture's type is I or P</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <parameters> + <parameter name="picture"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h">a #GstMpeg2Picture</doc> + </parameter> + </parameters> + </function-macro> + <class name="Mpeg2Decoder" c:symbol-prefix="mpeg2_decoder" c:type="GstMpeg2Decoder" version="1.20" parent="GstVideo.VideoDecoder" abstract="1" glib:type-name="GstMpeg2Decoder" glib:get-type="gst_mpeg2_decoder_get_type" glib:type-struct="Mpeg2DecoderClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">The opaque #GstMpeg2Decoder data structure.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <virtual-method name="decode_slice" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">Provides per slice data with parsed slice header and required raw bitstream +for subclass to decode it.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Slice</doc> + <type name="Mpeg2Slice" c:type="GstMpeg2Slice*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="end_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">Optional. Called per one #GstMpeg2Picture to notify subclass to finish +decoding process for the #GstMpeg2Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_preferred_output_delay" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">Optional. Called by baseclass to query whether delaying output is +preferred by subclass or not.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">the number of perferred delayed output frames</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </instance-parameter> + <parameter name="is_live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_field_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">Called when a new field picture is created for interlaced field picture. +Subclass can attach implementation specific user data on @second_field via +gst_mpeg2_picture_set_user_data()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </instance-parameter> + <parameter name="first_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">the first field #GstMpeg2Picture already decoded</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + <parameter name="second_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture for the second field</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">Optional. Called whenever new #GstMpeg2Picture is created. +Subclass can set implementation specific user data +on the #GstMpeg2Picture via gst_mpeg2_picture_set_user_data()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_sequence" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">Notifies subclass of SPS update</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </instance-parameter> + <parameter name="seq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpegVideoSequenceHdr</doc> + <type c:type="const GstMpegVideoSequenceHdr*"/> + </parameter> + <parameter name="seq_ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpegVideoSequenceExt</doc> + <type c:type="const GstMpegVideoSequenceExt*"/> + </parameter> + <parameter name="seq_display_ext" transfer-ownership="none"> + <type c:type="const GstMpegVideoSequenceDisplayExt*"/> + </parameter> + <parameter name="seq_scalable_ext" transfer-ownership="none"> + <type c:type="const GstMpegVideoSequenceScalableExt*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="output_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">Called with a #GstMpeg2Picture which is required to be outputted. +The #GstVideoCodecFrame must be consumed by subclass.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start_picture" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">Optional. Called per one #GstMpeg2Picture to notify subclass to prepare +decoding process for the #GstMpeg2Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Slice</doc> + <type name="Mpeg2Slice" c:type="GstMpeg2Slice*"/> + </parameter> + <parameter name="prev_picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + <parameter name="next_picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </virtual-method> + <field name="parent" readable="0" private="1"> + <type name="GstVideo.VideoDecoder" c:type="GstVideoDecoder"/> + </field> + <field name="input_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="Mpeg2DecoderPrivate" c:type="GstMpeg2DecoderPrivate*"/> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="Mpeg2DecoderClass" c:type="GstMpeg2DecoderClass" glib:is-gtype-struct-for="Mpeg2Decoder"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <field name="parent_class"> + <type name="GstVideo.VideoDecoderClass" c:type="GstVideoDecoderClass"/> + </field> + <field name="new_sequence" introspectable="0"> + <callback name="new_sequence" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </parameter> + <parameter name="seq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpegVideoSequenceHdr</doc> + <type c:type="const GstMpegVideoSequenceHdr*"/> + </parameter> + <parameter name="seq_ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpegVideoSequenceExt</doc> + <type c:type="const GstMpegVideoSequenceExt*"/> + </parameter> + <parameter name="seq_display_ext" transfer-ownership="none"> + <type c:type="const GstMpegVideoSequenceDisplayExt*"/> + </parameter> + <parameter name="seq_scalable_ext" transfer-ownership="none"> + <type c:type="const GstMpegVideoSequenceScalableExt*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_picture"> + <callback name="new_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_field_picture"> + <callback name="new_field_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </parameter> + <parameter name="first_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">the first field #GstMpeg2Picture already decoded</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + <parameter name="second_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture for the second field</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start_picture"> + <callback name="start_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Slice</doc> + <type name="Mpeg2Slice" c:type="GstMpeg2Slice*"/> + </parameter> + <parameter name="prev_picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + <parameter name="next_picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decode_slice"> + <callback name="decode_slice"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + <parameter name="slice" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Slice</doc> + <type name="Mpeg2Slice" c:type="GstMpeg2Slice*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="end_picture"> + <callback name="end_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="output_picture"> + <callback name="output_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_preferred_output_delay"> + <callback name="get_preferred_output_delay"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">the number of perferred delayed output frames</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">a #GstMpeg2Decoder</doc> + <type name="Mpeg2Decoder" c:type="GstMpeg2Decoder*"/> + </parameter> + <parameter name="is_live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="Mpeg2DecoderPrivate" c:type="GstMpeg2DecoderPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2decoder.h"/> + </record> + <record name="Mpeg2Dpb" c:type="GstMpeg2Dpb" disguised="1" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <method name="add" c:identifier="gst_mpeg2_dpb_add" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Store the @picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Dpb</doc> + <type name="Mpeg2Dpb" c:type="GstMpeg2Dpb*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + </parameters> + </method> + <method name="bump" c:identifier="gst_mpeg2_dpb_bump" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Picture which is needed to be +outputted</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Dpb</doc> + <type name="Mpeg2Dpb" c:type="GstMpeg2Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_mpeg2_dpb_clear" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Clear all stored #GstMpeg2Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Dpb</doc> + <type name="Mpeg2Dpb" c:type="GstMpeg2Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_mpeg2_dpb_free" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Free the @dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Dpb to free</doc> + <type name="Mpeg2Dpb" c:type="GstMpeg2Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_neighbours" c:identifier="gst_mpeg2_dpb_get_neighbours" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Gets the neighbours #GstMpeg2Picture of @picture in @dpb.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Dpb</doc> + <type name="Mpeg2Dpb" c:type="GstMpeg2Dpb*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">current #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </parameter> + <parameter name="prev_picture_ptr" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">previuous + #GstMpeg2Picture in @dpb</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture**"/> + </parameter> + <parameter name="next_picture_ptr" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">next + #GstMpeg2Picture in @dpb</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture**"/> + </parameter> + </parameters> + </method> + <method name="need_bump" c:identifier="gst_mpeg2_dpb_need_bump" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Checks if @dbp has a new picture.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">#TRUE if @dpb needs to be bumped; otherwise, #FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Dpb</doc> + <type name="Mpeg2Dpb" c:type="GstMpeg2Dpb*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_mpeg2_dpb_new" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Create new #GstMpeg2Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a new #GstMpeg2Dpb</doc> + <type name="Mpeg2Dpb" c:type="GstMpeg2Dpb*"/> + </return-value> + </function> + </record> + <record name="Mpeg2Picture" c:type="GstMpeg2Picture" version="1.20" glib:type-name="GstMpeg2Picture" glib:get-type="gst_mpeg2_picture_get_type" c:symbol-prefix="mpeg2_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <field name="parent" readable="0" private="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject"/> + </field> + <field name="system_frame_number" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="needed_for_output" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="first_field" readable="0" private="1"> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </field> + <field name="buffer_flags" readable="0" private="1"> + <type name="GstVideo.VideoBufferFlags" c:type="GstVideoBufferFlags"/> + </field> + <field name="pic_order_cnt" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="tsn" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="structure" introspectable="0" readable="0" private="1"> + <type c:type="GstMpegVideoPictureStructure"/> + </field> + <field name="type" introspectable="0" readable="0" private="1"> + <type c:type="GstMpegVideoPictureType"/> + </field> + <field name="discont_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="user_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <constructor name="new" c:identifier="gst_mpeg2_picture_new" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Create new #GstMpeg2Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a new #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </return-value> + </constructor> + <method name="get_user_data" c:identifier="gst_mpeg2_picture_get_user_data" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Gets private data set on the picture via +gst_mpeg2_picture_set_user_data() previously.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">The previously set user_data</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_user_data" c:identifier="gst_mpeg2_picture_set_user_data" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Sets @user_data on the picture and the #GDestroyNotify that will be called when +the picture is freed. + +If a @user_data was previously set, then the previous set @notify will be called +before the @user_data is replaced.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GstMpeg2Picture</doc> + <type name="Mpeg2Picture" c:type="GstMpeg2Picture*"/> + </instance-parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + </record> + <record name="Mpeg2Slice" c:type="GstMpeg2Slice" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <field name="quant_matrix" introspectable="0" readable="0" private="1"> + <type c:type="GstMpegVideoQuantMatrixExt*"/> + </field> + <field name="pic_hdr" introspectable="0" readable="0" private="1"> + <type c:type="GstMpegVideoPictureHdr*"/> + </field> + <field name="pic_ext" introspectable="0" readable="0" private="1"> + <type c:type="GstMpegVideoPictureExt*"/> + </field> + <field name="header" introspectable="0" readable="0" private="1"> + <type c:type="GstMpegVideoSliceHdr"/> + </field> + <field name="packet" introspectable="0" readable="0" private="1"> + <type c:type="GstMpegVideoPacket"/> + </field> + <field name="sc_offset" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="size" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + </record> + <function-macro name="VP8_DECODER" c:identifier="GST_VP8_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="VP8_DECODER_CAST" c:identifier="GST_VP8_DECODER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="VP8_DECODER_CLASS" c:identifier="GST_VP8_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="VP8_DECODER_GET_CLASS" c:identifier="GST_VP8_DECODER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="VP8_PICTURE" c:identifier="GST_VP8_PICTURE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="VP8_PICTURE_CAST" c:identifier="GST_VP8_PICTURE_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="VP9_BLOCK_SIZE_GROUPS" value="4" c:type="GST_VP9_BLOCK_SIZE_GROUPS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts when decoding intra_mode</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_CLASS0_SIZE" value="2" c:type="GST_VP9_CLASS0_SIZE" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of values for mv_classO_bit</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_COMP_MODE_CONTEXTS" value="5" c:type="GST_VP9_COMP_MODE_CONTEXTS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts for comp_mode</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="VP9_DECODER" c:identifier="GST_VP9_DECODER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="VP9_DECODER_CAST" c:identifier="GST_VP9_DECODER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="VP9_DECODER_CLASS" c:identifier="GST_VP9_DECODER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="VP9_DECODER_GET_CLASS" c:identifier="GST_VP9_DECODER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="VP9_INTERP_FILTER_CONTEXTS" value="4" c:type="GST_VP9_INTERP_FILTER_CONTEXTS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts for interp_filter</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_INTER_MODES" value="4" c:type="GST_VP9_INTER_MODES" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of values for inter_mode</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_INTER_MODE_CONTEXTS" value="7" c:type="GST_VP9_INTER_MODE_CONTEXTS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts for inter_mode</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_INTRA_MODES" value="10" c:type="GST_VP9_INTRA_MODES" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of values for intra_mode</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_IS_INTER_CONTEXTS" value="4" c:type="GST_VP9_IS_INTER_CONTEXTS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts for interp_filter</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_MV_CLASSES" value="11" c:type="GST_VP9_MV_CLASSES" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of values for mv_class</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_MV_FR_SIZE" value="4" c:type="GST_VP9_MV_FR_SIZE" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of values that can be decoded for mv_fr</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_MV_JOINTS" value="4" c:type="GST_VP9_MV_JOINTS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of values for partition</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_MV_OFFSET_BITS" value="10" c:type="GST_VP9_MV_OFFSET_BITS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Maximum number of bits for decoding motion vectors</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_PARTITION_CONTEXTS" value="16" c:type="GST_VP9_PARTITION_CONTEXTS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts when decoding partition</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_PARTITION_TYPES" value="4" c:type="GST_VP9_PARTITION_TYPES" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of values for partition</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="VP9_PICTURE" c:identifier="GST_VP9_PICTURE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="VP9_PICTURE_CAST" c:identifier="GST_VP9_PICTURE_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="VP9_REF_CONTEXTS" value="5" c:type="GST_VP9_REF_CONTEXTS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts for single_ref and comp_ref</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_SEG_LVL_ALT_L" value="1" c:type="GST_VP9_SEG_LVL_ALT_L" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Index for loop filter segment feature</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_SEG_LVL_ALT_Q" value="0" c:type="GST_VP9_SEG_LVL_ALT_Q" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Index for quantizer segment feature</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_SEG_LVL_MAX" value="4" c:type="GST_VP9_SEG_LVL_MAX" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of segment features</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_SEG_LVL_REF_FRAME" value="2" c:type="GST_VP9_SEG_LVL_REF_FRAME" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Index for reference frame segment feature</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_SEG_SEG_LVL_SKIP" value="3" c:type="GST_VP9_SEG_SEG_LVL_SKIP" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Index for skip segment feature</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_SKIP_CONTEXTS" value="3" c:type="GST_VP9_SKIP_CONTEXTS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts for decoding skip</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_SWITCHABLE_FILTERS" value="3" c:type="GST_VP9_SWITCHABLE_FILTERS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts for interp_filter</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_TX_MODES" value="5" c:type="GST_VP9_TX_MODES" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of values for tx_mode</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_TX_SIZES" value="4" c:type="GST_VP9_TX_SIZES" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of values for tx_size</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VP9_TX_SIZE_CONTEXTS" value="2" c:type="GST_VP9_TX_SIZE_CONTEXTS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Number of contexts for transform size</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <type name="gint" c:type="gint"/> + </constant> + <class name="Vp8Decoder" c:symbol-prefix="vp8_decoder" c:type="GstVp8Decoder" parent="GstVideo.VideoDecoder" abstract="1" glib:type-name="GstVp8Decoder" glib:get-type="gst_vp8_decoder_get_type" glib:type-struct="Vp8DecoderClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h">The opaque #GstVp8Decoder data structure.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <virtual-method name="decode_picture" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + <parameter name="parser" transfer-ownership="none"> + <type c:type="GstVp8Parser*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="end_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_preferred_output_delay" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h">Optional. Called by baseclass to query whether delaying output is +preferred by subclass or not.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h">a #GstVp8Decoder</doc> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </instance-parameter> + <parameter name="is_live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_sequence" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </instance-parameter> + <parameter name="frame_hdr" transfer-ownership="none"> + <type c:type="const GstVp8FrameHdr*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="output_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + </parameters> + </virtual-method> + <field name="parent" readable="0" private="1"> + <type name="GstVideo.VideoDecoder" c:type="GstVideoDecoder"/> + </field> + <field name="input_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="last_picture" readable="0" private="1"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </field> + <field name="golden_ref_picture" readable="0" private="1"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </field> + <field name="alt_ref_picture" readable="0" private="1"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="Vp8DecoderPrivate" c:type="GstVp8DecoderPrivate*"/> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="Vp8DecoderClass" c:type="GstVp8DecoderClass" glib:is-gtype-struct-for="Vp8Decoder"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <field name="parent_class"> + <type name="GstVideo.VideoDecoderClass" c:type="GstVideoDecoderClass"/> + </field> + <field name="new_sequence" introspectable="0"> + <callback name="new_sequence" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </parameter> + <parameter name="frame_hdr" transfer-ownership="none"> + <type c:type="const GstVp8FrameHdr*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_picture"> + <callback name="new_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start_picture"> + <callback name="start_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decode_picture" introspectable="0"> + <callback name="decode_picture" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + <parameter name="parser" transfer-ownership="none"> + <type c:type="GstVp8Parser*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="end_picture"> + <callback name="end_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="output_picture"> + <callback name="output_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_preferred_output_delay"> + <callback name="get_preferred_output_delay"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h">a #GstVp8Decoder</doc> + <type name="Vp8Decoder" c:type="GstVp8Decoder*"/> + </parameter> + <parameter name="is_live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="Vp8DecoderPrivate" c:type="GstVp8DecoderPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8decoder.h"/> + </record> + <record name="Vp8Picture" c:type="GstVp8Picture" glib:type-name="GstVp8Picture" glib:get-type="gst_vp8_picture_get_type" c:symbol-prefix="vp8_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.h"/> + <field name="parent" readable="0" private="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject"/> + </field> + <field name="pts" readable="0" private="1"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="system_frame_number" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="frame_hdr" introspectable="0" readable="0" private="1"> + <type c:type="GstVp8FrameHdr"/> + </field> + <field name="data" readable="0" private="1"> + <type name="guint8" c:type="const guint8*"/> + </field> + <field name="size" readable="0" private="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="discont_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="user_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <constructor name="new" c:identifier="gst_vp8_picture_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.c">Create new #GstVp8Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.c">a new #GstVp8Picture</doc> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </return-value> + </constructor> + <method name="get_user_data" c:identifier="gst_vp8_picture_get_user_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.c">Gets private data set on the picture via +gst_vp8_picture_set_user_data() previously.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.c">The previously set user_data</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.c">a #GstVp8Picture</doc> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_user_data" c:identifier="gst_vp8_picture_set_user_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.c">Sets @user_data on the picture and the #GDestroyNotify that will be called when +the picture is freed. + +If a @user_data was previously set, then the previous set @notify will be called +before the @user_data is replaced.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.c">a #GstVp8Picture</doc> + <type name="Vp8Picture" c:type="GstVp8Picture*"/> + </instance-parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp8picture.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + </record> + <class name="Vp9Decoder" c:symbol-prefix="vp9_decoder" c:type="GstVp9Decoder" parent="GstVideo.VideoDecoder" abstract="1" glib:type-name="GstVp9Decoder" glib:get-type="gst_vp9_decoder_get_type" glib:type-struct="Vp9DecoderClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">The opaque #GstVp9Decoder data structure.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <virtual-method name="decode_picture" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">Called to notify decoding for subclass to decoder given @picture with +given @dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture to decoder</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + <parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Dpb</doc> + <type name="Vp9Dpb" c:type="GstVp9Dpb*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="duplicate_picture" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">Optional. Called to duplicate @picture when show_existing_frame flag is set +in the parsed vp9 frame header. Returned #GstVp9Picture from this method +should hold already decoded picture data corresponding to the @picture, +since the returned #GstVp9Picture from this method will be passed to +the output_picture method immediately without additional decoding process. + +If this method is not implemented by subclass, baseclass will drop +current #GstVideoCodecFrame without additional processing for the current +frame.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture or %NULL if failed to duplicate +@picture.</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture to be duplicated</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="end_picture" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">Optional. Called per one #GstVp9Picture to notify subclass to finish +decoding process for the #GstVp9Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_preferred_output_delay" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">Optional. Retrieve the preferred output delay from child classes. +controls how many frames to delay when calling +GstVp9DecoderClass::output_picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </instance-parameter> + <parameter name="is_live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_picture" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">Optional. Called whenever new #GstVp9Picture is created. +Subclass can set implementation specific user data on the #GstVp9Picture +via gst_vp9_picture_set_user_data()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_sequence" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">Notifies subclass of video sequence update such as resolution, bitdepth, +profile.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </instance-parameter> + <parameter name="frame_hdr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9FrameHeader</doc> + <type name="Vp9FrameHeader" c:type="const GstVp9FrameHeader*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="output_picture" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">Called to notify @picture is ready to be outputted.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </instance-parameter> + <parameter name="frame" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start_picture" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">Optional. Called to notify subclass to prepare decoding process for +@picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </virtual-method> + <method name="set_non_keyframe_format_change_support" c:identifier="gst_vp9_decoder_set_non_keyframe_format_change_support" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.c">Called to set non-keyframe format change awareness</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.c">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </instance-parameter> + <parameter name="support" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.c">whether subclass can support non-keyframe format change</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="GstVideo.VideoDecoder" c:type="GstVideoDecoder"/> + </field> + <field name="input_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="parse_compressed_headers" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="Vp9DecoderPrivate" c:type="GstVp9DecoderPrivate*"/> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="Vp9DecoderClass" c:type="GstVp9DecoderClass" glib:is-gtype-struct-for="Vp9Decoder"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <field name="parent_class"> + <type name="GstVideo.VideoDecoderClass" c:type="GstVideoDecoderClass"/> + </field> + <field name="new_sequence"> + <callback name="new_sequence"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </parameter> + <parameter name="frame_hdr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9FrameHeader</doc> + <type name="Vp9FrameHeader" c:type="const GstVp9FrameHeader*"/> + </parameter> + <parameter name="max_dpb_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">the size of dpb including preferred output delay + by subclass reported via get_preferred_output_delay method.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_picture"> + <callback name="new_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="duplicate_picture"> + <callback name="duplicate_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture or %NULL if failed to duplicate +@picture.</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture to be duplicated</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start_picture"> + <callback name="start_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decode_picture"> + <callback name="decode_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture to decoder</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + <parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Dpb</doc> + <type name="Vp9Dpb" c:type="GstVp9Dpb*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="end_picture"> + <callback name="end_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </parameter> + <parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="output_picture"> + <callback name="output_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </parameter> + <parameter name="frame" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVideoCodecFrame</doc> + <type name="GstVideo.VideoCodecFrame" c:type="GstVideoCodecFrame*"/> + </parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_preferred_output_delay"> + <callback name="get_preferred_output_delay"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">the number of perferred delayed output frame</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="decoder" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">a #GstVp9Decoder</doc> + <type name="Vp9Decoder" c:type="GstVp9Decoder*"/> + </parameter> + <parameter name="is_live" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h">whether upstream is live or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="Vp9DecoderPrivate" c:type="GstVp9DecoderPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9decoder.h"/> + </record> + <record name="Vp9DeltaProbabilities" c:type="GstVp9DeltaProbabilities" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Stores probabilities updates. This is from the spec +and can be used as a binary.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <field name="tx_probs_8x8" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="tx_probs_16x16" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="tx_probs_32x32" readable="0" private="1"> + <array zero-terminated="0" fixed-size="6"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="coef" readable="0" private="1"> + <array zero-terminated="0" fixed-size="1728"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="skip" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="inter_mode" readable="0" private="1"> + <array zero-terminated="0" fixed-size="21"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="interp_filter" readable="0" private="1"> + <array zero-terminated="0" fixed-size="8"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="is_inter" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="comp_mode" readable="0" private="1"> + <array zero-terminated="0" fixed-size="5"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="single_ref" readable="0" private="1"> + <array zero-terminated="0" fixed-size="10"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="comp_ref" readable="0" private="1"> + <array zero-terminated="0" fixed-size="5"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="y_mode" readable="0" private="1"> + <array zero-terminated="0" fixed-size="36"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="partition" readable="0" private="1"> + <array zero-terminated="0" fixed-size="48"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="mv" readable="0" private="1"> + <type name="Vp9MvDeltaProbs" c:type="GstVp9MvDeltaProbs"/> + </field> + </record> + <record name="Vp9Dpb" c:type="GstVp9Dpb"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <field name="pic_list" writable="1"> + <array zero-terminated="0" fixed-size="8"> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </array> + </field> + <method name="add" c:identifier="gst_vp9_dpb_add"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">Store the @picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a #GstVp9Dpb</doc> + <type name="Vp9Dpb" c:type="GstVp9Dpb*"/> + </instance-parameter> + <parameter name="picture" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_vp9_dpb_clear"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">Clear all stored #GstVp9Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a #GstVp9Dpb</doc> + <type name="Vp9Dpb" c:type="GstVp9Dpb*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_vp9_dpb_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">Free the @dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="dpb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a #GstVp9Dpb to free</doc> + <type name="Vp9Dpb" c:type="GstVp9Dpb*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_vp9_dpb_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">Create new #GstVp9Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a new #GstVp9Dpb</doc> + <type name="Vp9Dpb" c:type="GstVp9Dpb*"/> + </return-value> + </function> + </record> + <record name="Vp9FrameHeader" c:type="GstVp9FrameHeader" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <field name="profile" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">encoded profile</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="bit_depth" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">encoded bit depth</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="subsampling_x" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specify the chroma subsampling format for x coordinate</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="subsampling_y" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specify the chroma subsampling format for y coordinate</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="color_space" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies the color space of the stream</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="color_range" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies the black level and range of the luma and chroma + signals</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="show_existing_frame" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1, indicates the frame indexed by + frame_to_show_map_idx is to be displayed</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="frame_to_show_map_idx" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies the frame to be displayed. + It is only available if show_existing_frame is 1</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="frame_type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 0 indicates that the current frame is a key frame</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="show_frame" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">indicate whether it is a displayable frame or not</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="error_resilient_mode" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 indicates that error resilient mode is + enabled</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="width" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">coded frame width</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="height" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">coded frame height</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="render_and_frame_size_different" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 0 means that the render width and + height are inferred from the frame width and height</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="render_width" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">render width of the frame</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="render_height" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">render width of the frame</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="intra_only" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 indicates that the frame is an intra-only frame</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="reset_frame_context" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies whether the frame context should be reset to + default values</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="refresh_frame_flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">contains a bitmask that specifies which reference frame + slots will be updated with the current frame after it is decoded</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="ref_frame_idx" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies which reference frames are used by inter frames</doc> + <array zero-terminated="0" fixed-size="3"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="ref_frame_sign_bias" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies the intended direction of the motion vector + in time for each reference frame. A sign bias equal to 0 indicates that + the reference frame is a backwards reference</doc> + <array zero-terminated="0" fixed-size="4"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="allow_high_precision_mv" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 0 specifies that motion vectors are + specified to quarter pel precision</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="interpolation_filter" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies the filter selection used for performing + inter prediction</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="refresh_frame_context" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 indicates that the probabilities computed + for this frame</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="frame_parallel_decoding_mode" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 indicates that parallel decoding + mode is enabled</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="frame_context_idx" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">indicates the frame context to use</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="loop_filter_params" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">a #GstVp9LoopFilterParams</doc> + <type name="Vp9LoopFilterParams" c:type="GstVp9LoopFilterParams"/> + </field> + <field name="quantization_params" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">a #GstVp9QuantizationParams</doc> + <type name="Vp9QuantizationParams" c:type="GstVp9QuantizationParams"/> + </field> + <field name="segmentation_params" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">a #GstVp9SegmentationParams</doc> + <type name="Vp9SegmentationParams" c:type="GstVp9SegmentationParams"/> + </field> + <field name="tile_cols_log2" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies the base 2 logarithm of the width of each tile</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="tile_rows_log2" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies the base 2 logarithm of the height of each tile</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="header_size_in_bytes" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="tx_mode" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specifies how the transform size is determined</doc> + <type name="Vp9TxMode" c:type="GstVp9TxMode"/> + </field> + <field name="reference_mode" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">is a derived syntax element that specifies the type of + inter prediction to be used</doc> + <type name="Vp9ReferenceMode" c:type="GstVp9ReferenceMode"/> + </field> + <field name="delta_probabilities" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">modification to the probabilities encoded in the + bitstream</doc> + <type name="Vp9DeltaProbabilities" c:type="GstVp9DeltaProbabilities"/> + </field> + <field name="lossless_flag" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">lossless mode decode</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="frame_header_length_in_bytes" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">length of uncompressed header</doc> + <type name="guint32" c:type="guint32"/> + </field> + </record> + <record name="Vp9LoopFilterParams" c:type="GstVp9LoopFilterParams" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Loop filter params. See "6.2.8 Loop filter params syntax" and +"7.2.8 Loop filter semantics". + +If syntax elements for @update_ref_delta +and/or @loop_filter_mode_deltas are not present in bitstream, +parser will fill @loop_filter_ref_deltas and @loop_filter_mode_deltas values +by using previously parsed values.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <field name="loop_filter_level" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">indicates the loop filter strength</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="loop_filter_sharpness" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">indicates the sharpness level</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="loop_filter_delta_enabled" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 means that the filter level depends + on the mode and reference frame used to predict a block</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="loop_filter_delta_update" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 means that the bitstream contains + additional syntax elements that specify which mode and reference frame + deltas are to be updated</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="update_ref_delta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 means that the bitstream contains the syntax + element loop_filter_ref_delta</doc> + <array zero-terminated="0" fixed-size="4"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="loop_filter_ref_deltas" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">contains the adjustment needed for the filter level + based on the chosen reference frame</doc> + <array zero-terminated="0" fixed-size="4"> + <type name="gint8" c:type="gint8"/> + </array> + </field> + <field name="update_mode_delta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 means that the bitstream contains the syntax + element loop_filter_mode_deltas</doc> + <array zero-terminated="0" fixed-size="2"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="loop_filter_mode_deltas" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">contains the adjustment needed for the filter level + based on the chosen mode</doc> + <array zero-terminated="0" fixed-size="2"> + <type name="gint8" c:type="gint8"/> + </array> + </field> + </record> + <record name="Vp9MvDeltaProbs" c:type="GstVp9MvDeltaProbs" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Stores motion vectors probabilities updates. This is from the spec +and can be used as a binary.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <field name="joint" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="sign" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="klass" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="class0_bit" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="bits" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="class0_fr" readable="0" private="1"> + <array zero-terminated="0" fixed-size="12"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="fr" readable="0" private="1"> + <array zero-terminated="0" fixed-size="6"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="class0_hp" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="hp" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + </record> + <record name="Vp9Picture" c:type="GstVp9Picture" glib:type-name="GstVp9Picture" glib:get-type="gst_vp9_picture_get_type" c:symbol-prefix="vp9_picture"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <field name="parent" readable="0" private="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject"/> + </field> + <field name="system_frame_number" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="frame_hdr" readable="0" private="1"> + <type name="Vp9FrameHeader" c:type="GstVp9FrameHeader"/> + </field> + <field name="data" readable="0" private="1"> + <type name="guint8" c:type="const guint8*"/> + </field> + <field name="size" readable="0" private="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="discont_state" readable="0" private="1"> + <type name="GstVideo.VideoCodecState" c:type="GstVideoCodecState*"/> + </field> + <field name="user_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <constructor name="new" c:identifier="gst_vp9_picture_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">Create new #GstVp9Picture</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a new #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </return-value> + </constructor> + <method name="get_user_data" c:identifier="gst_vp9_picture_get_user_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">Gets private data set on the picture via +gst_vp9_picture_set_user_data() previously.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">The previously set user_data</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_user_data" c:identifier="gst_vp9_picture_set_user_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">Sets @user_data on the picture and the #GDestroyNotify that will be called when +the picture is freed. + +If a @user_data was previously set, then the previous set @notify will be called +before the @user_data is replaced.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="picture" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a #GstVp9Picture</doc> + <type name="Vp9Picture" c:type="GstVp9Picture*"/> + </instance-parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">private data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + </record> + <record name="Vp9QuantizationParams" c:type="GstVp9QuantizationParams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <field name="base_q_idx" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">indicates the base frame qindex. This is used for Y AC + coefficients and as the base value for the other quantizers</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="delta_q_y_dc" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">indicates the Y DC quantizer relative to base_q_idx</doc> + <type name="gint8" c:type="gint8"/> + </field> + <field name="delta_q_uv_dc" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">indicates the UV DC quantizer relative to base_q_idx</doc> + <type name="gint8" c:type="gint8"/> + </field> + <field name="delta_q_uv_ac" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">indicates the UV AC quantizer relative to base_q_idx</doc> + <type name="gint8" c:type="gint8"/> + </field> + </record> + <enumeration name="Vp9ReferenceMode" version="1.20" c:type="GstVp9ReferenceMode"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Reference modes: Specify the type of inter prediction to be used</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <member name="single_reference" value="0" c:identifier="GST_VP9_REFERENCE_MODE_SINGLE_REFERENCE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Indicates that all the inter blocks use only a single reference frame</doc> + </member> + <member name="compound_reference" value="1" c:identifier="GST_VP9_REFERENCE_MODE_COMPOUND_REFERENCE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Requires all the inter blocks to use compound mode</doc> + </member> + <member name="select" value="2" c:identifier="GST_VP9_REFERENCE_MODE_SELECT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Allows each individual inter block to select between single and compound prediction modes</doc> + </member> + </enumeration> + <record name="Vp9SegmentationParams" c:type="GstVp9SegmentationParams" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">See "6.2.11 Segmentation params syntax" and +"7.2.10 Segmentation params syntax". When @segmentation_update_data is equal +to zero, parser will fill @feature_enabled and by @feature_data +using previously parsed values.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <field name="segmentation_enabled" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 indicates that this frame makes use of the + segmentation tool</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="segmentation_update_map" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 indicates that the segmentation map + should be updated during the decoding of this frame</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="segmentation_tree_probs" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specify the probability values to be used when + decoding segment_id</doc> + <array zero-terminated="0" fixed-size="7"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="segmentation_pred_prob" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">specify the probability values to be used when + decoding seg_id_predicted</doc> + <array zero-terminated="0" fixed-size="3"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="segmentation_temporal_update" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 indicates that the updates to + the segmentation map are coded relative to the existing segmentation map</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="segmentation_update_data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 1 indicates that new parameters are + about to be specified for each segment</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="segmentation_abs_or_delta_update" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">equal to 0 indicates that the segmentation + parameters represent adjustments relative to the standard values. + equal to 1 indicates that the segmentation parameters represent the actual + values to be used</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="feature_enabled" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">indicates whether feature is enabled or not</doc> + <array zero-terminated="0" fixed-size="32"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + <field name="feature_data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">segmentation feature data</doc> + <array zero-terminated="0" fixed-size="32"> + <type name="gint16" c:type="gint16"/> + </array> + </field> + </record> + <record name="Vp9StatefulParser" c:type="GstVp9StatefulParser" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">This object is used to parse VP9 bitstream header.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <field name="bit_depth" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="subsampling_x" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="subsampling_y" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="color_space" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="color_range" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="mi_cols" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="mi_rows" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="sb64_cols" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="sb64_rows" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="loop_filter_params" readable="0" private="1"> + <type name="Vp9LoopFilterParams" c:type="GstVp9LoopFilterParams"/> + </field> + <field name="segmentation_params" readable="0" private="1"> + <type name="Vp9SegmentationParams" c:type="GstVp9SegmentationParams"/> + </field> + <field name="reference" writable="1"> + <array zero-terminated="0" fixed-size="8"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="free" c:identifier="gst_vp9_stateful_parser_free" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">Frees @parser.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <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" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">the #GstVp9StatefulParser to free</doc> + <type name="Vp9StatefulParser" c:type="GstVp9StatefulParser*"/> + </instance-parameter> + </parameters> + </method> + <method name="parse_compressed_frame_header" c:identifier="gst_vp9_stateful_parser_parse_compressed_frame_header" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">Parses the compressed information in the VP9 bitstream contained in @data, +and fills in @header with the parsed values. +The @size argument represent the whole frame size.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a #GstVp9ParserResult</doc> + <type c:type="GstVp9ParserResult"/> + </return-value> + <parameters> + <instance-parameter name="parser" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">The #GstVp9StatefulParser</doc> + <type name="Vp9StatefulParser" c:type="GstVp9StatefulParser*"/> + </instance-parameter> + <parameter name="header" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">The #GstVp9FrameHeader to fill</doc> + <type name="Vp9FrameHeader" c:type="GstVp9FrameHeader*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">The data to parse</doc> + <type name="guint8" c:type="const guint8*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">The size of the @data to parse</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <method name="parse_uncompressed_frame_header" c:identifier="gst_vp9_stateful_parser_parse_uncompressed_frame_header" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">Parses the VP9 bitstream contained in @data, and fills in @header +with the information. The @size argument represent the whole frame size.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a #GstVp9ParserResult</doc> + <type c:type="GstVp9ParserResult"/> + </return-value> + <parameters> + <instance-parameter name="parser" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">The #GstVp9StatefulParser</doc> + <type name="Vp9StatefulParser" c:type="GstVp9StatefulParser*"/> + </instance-parameter> + <parameter name="header" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">The #GstVp9FrameHeader to fill</doc> + <type name="Vp9FrameHeader" c:type="GstVp9FrameHeader*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">The data to parse</doc> + <type name="guint8" c:type="const guint8*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">The size of the @data to parse</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_vp9_stateful_parser_new" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">Creates a new #GstVp9StatefulParser. It should be freed with +gst_vp9_stateful_parser_free() after use.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a new #GstVp9StatefulParser</doc> + <type name="Vp9StatefulParser" c:type="GstVp9StatefulParser*"/> + </return-value> + </function> + </record> + <enumeration name="Vp9TxMode" version="1.20" c:type="GstVp9TxMode"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">TxMode: Specifies how the transform size is determined</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <member name="only_4x4" value="0" c:identifier="GST_VP9_TX_MODE_ONLY_4x4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Only 4x4</doc> + </member> + <member name="allow_8x8" value="1" c:identifier="GST_VP9_TX_MODE_ALLOW_8x8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Allow 8x8</doc> + </member> + <member name="allow_16x16" value="2" c:identifier="GST_VP9_TX_MODE_ALLOW_16x16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Allow 16x16</doc> + </member> + <member name="allow_32x32" value="3" c:identifier="GST_VP9_TX_MODE_ALLOW_32x32"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">Allow 32x32</doc> + </member> + <member name="select" value="4" c:identifier="GST_VP9_TX_MODE_SELECT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">The choice is specified explicitly for each block</doc> + </member> + </enumeration> + <enumeration name="Vp9TxSize" version="1.20" c:type="GstVp9TxSize"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">TxSize: Specifies the transform size</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <member name="4x4" value="0" c:identifier="GST_VP9_TX_4x4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">4x4</doc> + </member> + <member name="8x8" value="1" c:identifier="GST_VP9_TX_8x8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">8x8</doc> + </member> + <member name="16x16" value="2" c:identifier="GST_VP9_TX_16x16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">16x16</doc> + </member> + <member name="32x32" value="3" c:identifier="GST_VP9_TX_32x32"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h">32x32</doc> + </member> + </enumeration> + <function name="av1_dpb_new" c:identifier="gst_av1_dpb_new" moved-to="AV1Dpb.new" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">Create new #GstAV1Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1picture.c">a new #GstAV1Dpb</doc> + <type name="AV1Dpb" c:type="GstAV1Dpb*"/> + </return-value> + </function> + <function name="h264_dpb_new" c:identifier="gst_h264_dpb_new" moved-to="H264Dpb.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">Create new #GstH264Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264picture.c">a new #GstH264Dpb</doc> + <type name="H264Dpb" c:type="GstH264Dpb*"/> + </return-value> + </function> + <function name="h265_dpb_new" c:identifier="gst_h265_dpb_new" moved-to="H265Dpb.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">Create new #GstH265Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth265picture.c">a new #GstH265Dpb</doc> + <type name="H265Dpb" c:type="GstH265Dpb*"/> + </return-value> + </function> + <function name="mpeg2_dpb_new" c:identifier="gst_mpeg2_dpb_new" moved-to="Mpeg2Dpb.new" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">Create new #GstMpeg2Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstmpeg2picture.c">a new #GstMpeg2Dpb</doc> + <type name="Mpeg2Dpb" c:type="GstMpeg2Dpb*"/> + </return-value> + </function> + <function name="vp9_dpb_new" c:identifier="gst_vp9_dpb_new" moved-to="Vp9Dpb.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">Create new #GstVp9Dpb</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9picture.c">a new #GstVp9Dpb</doc> + <type name="Vp9Dpb" c:type="GstVp9Dpb*"/> + </return-value> + </function> + <function name="vp9_get_ac_quant" c:identifier="gst_vp9_get_ac_quant" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">An implementation of "ac_q" function specified in +"8.6.1 Dequantization functions"</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">the quantizer value for the ac coefficient</doc> + <type name="gint16" c:type="gint16"/> + </return-value> + <parameters> + <parameter name="qindex" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">the quantizer index</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="delta_q_ac" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a delta_q_ac value</doc> + <type name="gint8" c:type="gint8"/> + </parameter> + <parameter name="bit_depth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">coded bit depth</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="vp9_get_dc_quant" c:identifier="gst_vp9_get_dc_quant" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">An implementation of "dc_q" function specified in +"8.6.1 Dequantization functions"</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">the quantizer value for the dc coefficient</doc> + <type name="gint16" c:type="gint16"/> + </return-value> + <parameters> + <parameter name="qindex" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">the quantizer index</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="delta_q_dc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a delta_q_dc value</doc> + <type name="gint8" c:type="gint8"/> + </parameter> + <parameter name="bit_depth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">coded bit depth</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="vp9_get_qindex" c:identifier="gst_vp9_get_qindex" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">An implementation of "get_qindex" function specfied in +"8.6.1 Dequantization functions"</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">the quantizer index</doc> + <type name="guint8" c:type="guint8"/> + </return-value> + <parameters> + <parameter name="segmentation_params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a #GstVp9SegmentationParams</doc> + <type name="Vp9SegmentationParams" c:type="const GstVp9SegmentationParams*"/> + </parameter> + <parameter name="quantization_params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a #GstVp9QuantizationParams</doc> + <type name="Vp9QuantizationParams" c:type="const GstVp9QuantizationParams*"/> + </parameter> + <parameter name="segment_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a segment id</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="vp9_seg_feature_active" c:identifier="gst_vp9_seg_feature_active" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">An implementation of "seg_feature_active" function specified in +"6.4.9 Segmentation feature active syntax"</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">%TRUE if feature is active</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a #GstVp9SegmentationParams</doc> + <type name="Vp9SegmentationParams" c:type="const GstVp9SegmentationParams*"/> + </parameter> + <parameter name="segment_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a segment id</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstvp9statefulparser.c">a segmentation feature</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstController-1.0.gir b/girs/GstController-1.0.gir new file mode 100644 index 0000000000..0c3b8f52e3 --- /dev/null +++ b/girs/GstController-1.0.gir @@ -0,0 +1,1074 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="1.0"/> + <package name="gstreamer-controller-1.0"/> + <c:include name="gst/controller/controller.h"/> + <namespace name="GstController" version="1.0" shared-library="libgstcontroller-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <class name="ARGBControlBinding" c:symbol-prefix="argb_control_binding" c:type="GstARGBControlBinding" parent="Gst.ControlBinding" glib:type-name="GstARGBControlBinding" glib:get-type="gst_argb_control_binding_get_type" glib:type-struct="ARGBControlBindingClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.c">A value mapping object that attaches multiple control sources to a guint +gobject properties representing a color. A control value of 0.0 will turn the +color component off and a value of 1.0 will be the color level.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h"/> + <constructor name="new" c:identifier="gst_argb_control_binding_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.c">Create a new control-binding that attaches the given #GstControlSource to the +#GObject property.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.c">the new #GstARGBControlBinding</doc> + <type name="Gst.ControlBinding" c:type="GstControlBinding*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.c">the object of the property</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.c">the property-name to attach the control source</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="cs_a" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.c">the control source for the alpha channel</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="cs_r" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.c">the control source for the red channel</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="cs_g" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.c">the control source for the green channel</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="cs_b" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.c">the control source for the blue channel</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </parameter> + </parameters> + </constructor> + <property name="control-source-a" writable="1" construct="1" transfer-ownership="none"> + <type name="Gst.ControlSource"/> + </property> + <property name="control-source-b" writable="1" construct="1" transfer-ownership="none"> + <type name="Gst.ControlSource"/> + </property> + <property name="control-source-g" writable="1" construct="1" transfer-ownership="none"> + <type name="Gst.ControlSource"/> + </property> + <property name="control-source-r" writable="1" construct="1" transfer-ownership="none"> + <type name="Gst.ControlSource"/> + </property> + <field name="parent"> + <type name="Gst.ControlBinding" c:type="GstControlBinding"/> + </field> + <field name="cs_a" readable="0" private="1"> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </field> + <field name="cs_r" readable="0" private="1"> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </field> + <field name="cs_g" readable="0" private="1"> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </field> + <field name="cs_b" readable="0" private="1"> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </field> + <field name="cur_value" readable="0" private="1"> + <type name="GObject.Value" c:type="GValue"/> + </field> + <field name="last_value" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="ARGBControlBindingClass" c:type="GstARGBControlBindingClass" glib:is-gtype-struct-for="ARGBControlBinding"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h">The class structure of #GstARGBControlBinding.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h">Parent class</doc> + <type name="Gst.ControlBindingClass" c:type="GstControlBindingClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <function-macro name="ARGB_CONTROL_BINDING" c:identifier="GST_ARGB_CONTROL_BINDING" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ARGB_CONTROL_BINDING_CLASS" c:identifier="GST_ARGB_CONTROL_BINDING_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ARGB_CONTROL_BINDING_GET_CLASS" c:identifier="GST_ARGB_CONTROL_BINDING_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <record name="ControlPoint" c:type="GstControlPoint" glib:type-name="GstControlPoint" glib:get-type="gst_control_point_get_type" c:symbol-prefix="control_point"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h">An internal structure for value+time and various temporary +values used for interpolation. This "inherits" from +GstTimedValue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <field name="timestamp" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h">timestamp of the value change</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="value" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h">the new value</doc> + <type name="gdouble" c:type="gdouble"/> + </field> + <union name="cache" c:type="cache"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <record name="cubic" c:type="cubic"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <field name="h" writable="1"> + <type name="gdouble" c:type="gdouble"/> + </field> + <field name="z" writable="1"> + <type name="gdouble" c:type="gdouble"/> + </field> + </record> + <record name="cubic_monotonic" c:type="cubic_monotonic"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <field name="c1s" writable="1"> + <type name="gdouble" c:type="gdouble"/> + </field> + <field name="c2s" writable="1"> + <type name="gdouble" c:type="gdouble"/> + </field> + <field name="c3s" writable="1"> + <type name="gdouble" c:type="gdouble"/> + </field> + </record> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" fixed-size="64"> + <type name="guint8" c:type="guint8"/> + </array> + </field> + </union> + <method name="copy" c:identifier="gst_control_point_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Copies a #GstControlPoint</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">A copy of @cp</doc> + <type name="ControlPoint" c:type="GstControlPoint*"/> + </return-value> + <parameters> + <instance-parameter name="cp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">The control point to copy</doc> + <type name="ControlPoint" c:type="GstControlPoint*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_control_point_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Frees all data allocated by a #GstControlPoint instance.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="cp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the object to free</doc> + <type name="ControlPoint" c:type="GstControlPoint*"/> + </instance-parameter> + </parameters> + </method> + </record> + <function-macro name="DIRECT_CONTROL_BINDING" c:identifier="GST_DIRECT_CONTROL_BINDING" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DIRECT_CONTROL_BINDING_CLASS" c:identifier="GST_DIRECT_CONTROL_BINDING_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DIRECT_CONTROL_BINDING_GET_CLASS" c:identifier="GST_DIRECT_CONTROL_BINDING_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="DirectControlBinding" c:symbol-prefix="direct_control_binding" c:type="GstDirectControlBinding" parent="Gst.ControlBinding" glib:type-name="GstDirectControlBinding" glib:get-type="gst_direct_control_binding_get_type" glib:type-struct="DirectControlBindingClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">A value mapping object that attaches control sources to gobject properties. It +will map the control values directly to the target property range. If a +non-absolute direct control binding is used, the value range [0.0 ... 1.0] +is mapped to full target property range, and all values outside the range +will be clipped. An absolute control binding will not do any value +transformations.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <constructor name="new" c:identifier="gst_direct_control_binding_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">Create a new control-binding that attaches the #GstControlSource to the +#GObject property. It will map the control source range [0.0 ... 1.0] to +the full target property range, and clip all values outside this range.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">the new #GstDirectControlBinding</doc> + <type name="Gst.ControlBinding" c:type="GstControlBinding*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">the object of the property</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">the property-name to attach the control source</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="cs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">the control source</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_absolute" c:identifier="gst_direct_control_binding_new_absolute" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">Create a new control-binding that attaches the #GstControlSource to the +#GObject property. It will directly map the control source values to the +target property range without any transformations.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">the new #GstDirectControlBinding</doc> + <type name="Gst.ControlBinding" c:type="GstControlBinding*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">the object of the property</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">the property-name to attach the control source</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="cs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.c">the control source</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </parameter> + </parameters> + </constructor> + <property name="absolute" writable="1" construct-only="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="control-source" writable="1" construct="1" transfer-ownership="none"> + <type name="Gst.ControlSource"/> + </property> + <field name="parent"> + <type name="Gst.ControlBinding" c:type="GstControlBinding"/> + </field> + <field name="cs" readable="0" private="1"> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </field> + <field name="cur_value" readable="0" private="1"> + <type name="GObject.Value" c:type="GValue"/> + </field> + <field name="last_value" readable="0" private="1"> + <type name="gdouble" c:type="gdouble"/> + </field> + <field name="byte_size" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="convert_value" readable="0" private="1"> + <type name="DirectControlBindingConvertValue" c:type="GstDirectControlBindingConvertValue"/> + </field> + <field name="convert_g_value" readable="0" private="1"> + <type name="DirectControlBindingConvertGValue" c:type="GstDirectControlBindingConvertGValue"/> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <field name="want_absolute" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + </record> + </union> + </class> + <record name="DirectControlBindingClass" c:type="GstDirectControlBindingClass" glib:is-gtype-struct-for="DirectControlBinding"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">The class structure of #GstDirectControlBinding.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">Parent class</doc> + <type name="Gst.ControlBindingClass" c:type="GstControlBindingClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="DirectControlBindingConvertGValue" c:type="GstDirectControlBindingConvertGValue"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">Function to map a control-value to the target GValue.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">the #GstDirectControlBinding instance</doc> + <type name="DirectControlBinding" c:type="GstDirectControlBinding*"/> + </parameter> + <parameter name="src_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">the value returned by the cotnrol source</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="dest_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">the target GValue</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </callback> + <callback name="DirectControlBindingConvertValue" c:type="GstDirectControlBindingConvertValue"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">Function to map a control-value to the target plain data type.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">the #GstDirectControlBinding instance</doc> + <type name="DirectControlBinding" c:type="GstDirectControlBinding*"/> + </parameter> + <parameter name="src_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">the value returned by the cotnrol source</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="dest_value" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h">the target location</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <function-macro name="INTERPOLATION_CONTROL_SOURCE" c:identifier="GST_INTERPOLATION_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="INTERPOLATION_CONTROL_SOURCE_CLASS" c:identifier="GST_INTERPOLATION_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h"/> + <parameters> + <parameter name="vtable"> + </parameter> + </parameters> + </function-macro> + <function-macro name="INTERPOLATION_CONTROL_SOURCE_GET_CLASS" c:identifier="GST_INTERPOLATION_CONTROL_SOURCE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ARGB_CONTROL_BINDING" c:identifier="GST_IS_ARGB_CONTROL_BINDING" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ARGB_CONTROL_BINDING_CLASS" c:identifier="GST_IS_ARGB_CONTROL_BINDING_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstargbcontrolbinding.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DIRECT_CONTROL_BINDING" c:identifier="GST_IS_DIRECT_CONTROL_BINDING" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DIRECT_CONTROL_BINDING_CLASS" c:identifier="GST_IS_DIRECT_CONTROL_BINDING_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstdirectcontrolbinding.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_INTERPOLATION_CONTROL_SOURCE" c:identifier="GST_IS_INTERPOLATION_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_INTERPOLATION_CONTROL_SOURCE_CLASS" c:identifier="GST_IS_INTERPOLATION_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h"/> + <parameters> + <parameter name="vtable"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_LFO_CONTROL_SOURCE" c:identifier="GST_IS_LFO_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_LFO_CONTROL_SOURCE_CLASS" c:identifier="GST_IS_LFO_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h"/> + <parameters> + <parameter name="vtable"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PROXY_CONTROL_BINDING" c:identifier="GST_IS_PROXY_CONTROL_BINDING" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PROXY_CONTROL_BINDING_CLASS" c:identifier="GST_IS_PROXY_CONTROL_BINDING_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TIMED_VALUE_CONTROL_SOURCE" c:identifier="GST_IS_TIMED_VALUE_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TIMED_VALUE_CONTROL_SOURCE_CLASS" c:identifier="GST_IS_TIMED_VALUE_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <parameters> + <parameter name="vtable"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TRIGGER_CONTROL_SOURCE" c:identifier="GST_IS_TRIGGER_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_TRIGGER_CONTROL_SOURCE_CLASS" c:identifier="GST_IS_TRIGGER_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.h"/> + <parameters> + <parameter name="vtable"> + </parameter> + </parameters> + </function-macro> + <class name="InterpolationControlSource" c:symbol-prefix="interpolation_control_source" c:type="GstInterpolationControlSource" parent="TimedValueControlSource" glib:type-name="GstInterpolationControlSource" glib:get-type="gst_interpolation_control_source_get_type" glib:type-struct="InterpolationControlSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.c">#GstInterpolationControlSource is a #GstControlSource, that interpolates values between user-given +control points. It supports several interpolation modes and property types. + +To use #GstInterpolationControlSource get a new instance by calling +gst_interpolation_control_source_new(), bind it to a #GParamSpec and set some +control points by calling gst_timed_value_control_source_set(). + +All functions are MT-safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h"/> + <constructor name="new" c:identifier="gst_interpolation_control_source_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.c">This returns a new, unbound #GstInterpolationControlSource.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.c">a new, unbound #GstInterpolationControlSource.</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </return-value> + </constructor> + <property name="mode" writable="1" transfer-ownership="none"> + <type name="InterpolationMode"/> + </property> + <field name="parent"> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="InterpolationControlSourcePrivate" c:type="GstInterpolationControlSourcePrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="InterpolationControlSourceClass" c:type="GstInterpolationControlSourceClass" glib:is-gtype-struct-for="InterpolationControlSource"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h"/> + <field name="parent_class"> + <type name="TimedValueControlSourceClass" c:type="GstTimedValueControlSourceClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="InterpolationControlSourcePrivate" c:type="GstInterpolationControlSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h"/> + </record> + <enumeration name="InterpolationMode" glib:type-name="GstInterpolationMode" glib:get-type="gst_interpolation_mode_get_type" c:type="GstInterpolationMode"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h">The various interpolation modes available.</doc> + <member name="none" value="0" c:identifier="GST_INTERPOLATION_MODE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h">steps-like interpolation, default</doc> + </member> + <member name="linear" value="1" c:identifier="GST_INTERPOLATION_MODE_LINEAR" glib:nick="linear"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h">linear interpolation</doc> + </member> + <member name="cubic" value="2" c:identifier="GST_INTERPOLATION_MODE_CUBIC" glib:nick="cubic"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h">cubic interpolation (natural), may overshoot + the min or max values set by the control point, but is more 'curvy'</doc> + </member> + <member name="cubic_monotonic" value="3" c:identifier="GST_INTERPOLATION_MODE_CUBIC_MONOTONIC" glib:nick="cubic-monotonic"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstinterpolationcontrolsource.h">monotonic cubic interpolation, will not + produce any values outside of the min-max range set by the control points + (Since: 1.8)</doc> + </member> + </enumeration> + <class name="LFOControlSource" c:symbol-prefix="lfo_control_source" c:type="GstLFOControlSource" parent="Gst.ControlSource" glib:type-name="GstLFOControlSource" glib:get-type="gst_lfo_control_source_get_type" glib:type-struct="LFOControlSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.c">#GstLFOControlSource is a #GstControlSource, that provides several periodic +waveforms as control values. + +To use #GstLFOControlSource get a new instance by calling +gst_lfo_control_source_new(), bind it to a #GParamSpec and set the relevant +properties. + +All functions are MT-safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h"/> + <constructor name="new" c:identifier="gst_lfo_control_source_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.c">This returns a new, unbound #GstLFOControlSource.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.c">a new, unbound #GstLFOControlSource.</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </return-value> + </constructor> + <property name="amplitude" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.c">Specifies the amplitude for the waveform of this #GstLFOControlSource.</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="frequency" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.c">Specifies the frequency that should be used for the waveform +of this #GstLFOControlSource. It should be large enough +so that the period is longer than one nanosecond.</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="offset" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.c">Specifies the value offset for the waveform of this #GstLFOControlSource.</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="timeshift" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.c">Specifies the timeshift to the right that should be used for the waveform +of this #GstLFOControlSource in nanoseconds. + +To get a n nanosecond shift to the left use +"(GST_SECOND / frequency) - n".</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="waveform" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.c">Specifies the waveform that should be used for this #GstLFOControlSource.</doc> + <type name="LFOWaveform"/> + </property> + <field name="parent"> + <type name="Gst.ControlSource" c:type="GstControlSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="LFOControlSourcePrivate" c:type="GstLFOControlSourcePrivate*"/> + </field> + <field name="lock" readable="0" private="1"> + <type name="GLib.Mutex" c:type="GMutex"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="LFOControlSourceClass" c:type="GstLFOControlSourceClass" glib:is-gtype-struct-for="LFOControlSource"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h"/> + <field name="parent_class"> + <type name="Gst.ControlSourceClass" c:type="GstControlSourceClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="LFOControlSourcePrivate" c:type="GstLFOControlSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h"/> + </record> + <enumeration name="LFOWaveform" glib:type-name="GstLFOWaveform" glib:get-type="gst_lfo_waveform_get_type" c:type="GstLFOWaveform"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h">The various waveform modes available.</doc> + <member name="sine" value="0" c:identifier="GST_LFO_WAVEFORM_SINE" glib:nick="sine"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h">sine waveform</doc> + </member> + <member name="square" value="1" c:identifier="GST_LFO_WAVEFORM_SQUARE" glib:nick="square"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h">square waveform</doc> + </member> + <member name="saw" value="2" c:identifier="GST_LFO_WAVEFORM_SAW" glib:nick="saw"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h">saw waveform</doc> + </member> + <member name="reverse_saw" value="3" c:identifier="GST_LFO_WAVEFORM_REVERSE_SAW" glib:nick="reverse-saw"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h">reverse saw waveform</doc> + </member> + <member name="triangle" value="4" c:identifier="GST_LFO_WAVEFORM_TRIANGLE" glib:nick="triangle"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h">triangle waveform</doc> + </member> + </enumeration> + <function-macro name="LFO_CONTROL_SOURCE" c:identifier="GST_LFO_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="LFO_CONTROL_SOURCE_CLASS" c:identifier="GST_LFO_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h"/> + <parameters> + <parameter name="vtable"> + </parameter> + </parameters> + </function-macro> + <function-macro name="LFO_CONTROL_SOURCE_GET_CLASS" c:identifier="GST_LFO_CONTROL_SOURCE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstlfocontrolsource.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PROXY_CONTROL_BINDING" c:identifier="GST_PROXY_CONTROL_BINDING" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PROXY_CONTROL_BINDING_CLASS" c:identifier="GST_PROXY_CONTROL_BINDING_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PROXY_CONTROL_BINDING_GET_CLASS" c:identifier="GST_PROXY_CONTROL_BINDING_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="ProxyControlBinding" c:symbol-prefix="proxy_control_binding" c:type="GstProxyControlBinding" parent="Gst.ControlBinding" glib:type-name="GstProxyControlBinding" glib:get-type="gst_proxy_control_binding_get_type" glib:type-struct="ProxyControlBindingClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.c">A #GstControlBinding that forwards requests to another #GstControlBinding</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.h"/> + <constructor name="new" c:identifier="gst_proxy_control_binding_new" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.c">#GstProxyControlBinding forwards all access to data or `sync_values()` +requests from @property_name on @object to the control binding at +@ref_property_name on @ref_object.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.c">a new #GstControlBinding that proxies the control interface between +properties on different #GstObject's</doc> + <type name="Gst.ControlBinding" c:type="GstControlBinding*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.c">a #GstObject</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.c">the property name in @object to control</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="ref_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.c">a #GstObject to forward all + #GstControlBinding requests to</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="ref_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.c">the property_name in @ref_object to control</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <field name="parent" readable="0" private="1"> + <type name="Gst.ControlBinding" c:type="GstControlBinding"/> + </field> + <field name="ref_object" readable="0" private="1"> + <type name="GObject.WeakRef" c:type="GWeakRef"/> + </field> + <field name="property_name" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="ProxyControlBindingClass" c:type="GstProxyControlBindingClass" glib:is-gtype-struct-for="ProxyControlBinding"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.h">Opaque #GstProxyControlBindingClass struct</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gstproxycontrolbinding.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="Gst.ControlBindingClass" c:type="GstControlBindingClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <function-macro name="TIMED_VALUE_CONTROL_SOURCE" c:identifier="GST_TIMED_VALUE_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMED_VALUE_CONTROL_SOURCE_CLASS" c:identifier="GST_TIMED_VALUE_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <parameters> + <parameter name="vtable"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMED_VALUE_CONTROL_SOURCE_GET_CLASS" c:identifier="GST_TIMED_VALUE_CONTROL_SOURCE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMED_VALUE_CONTROL_SOURCE_LOCK" c:identifier="GST_TIMED_VALUE_CONTROL_SOURCE_LOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMED_VALUE_CONTROL_SOURCE_UNLOCK" c:identifier="GST_TIMED_VALUE_CONTROL_SOURCE_UNLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRIGGER_CONTROL_SOURCE" c:identifier="GST_TRIGGER_CONTROL_SOURCE" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRIGGER_CONTROL_SOURCE_CLASS" c:identifier="GST_TRIGGER_CONTROL_SOURCE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.h"/> + <parameters> + <parameter name="vtable"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRIGGER_CONTROL_SOURCE_GET_CLASS" c:identifier="GST_TRIGGER_CONTROL_SOURCE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <class name="TimedValueControlSource" c:symbol-prefix="timed_value_control_source" c:type="GstTimedValueControlSource" parent="Gst.ControlSource" abstract="1" glib:type-name="GstTimedValueControlSource" glib:get-type="gst_timed_value_control_source_get_type" glib:type-struct="TimedValueControlSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Base class for #GstControlSource that use time-stamped values. + +When overriding bind, chain up first to give this bind implementation a +chance to setup things. + +All functions are MT-safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <method name="find_control_point_iter" c:identifier="gst_timed_value_control_source_find_control_point_iter"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Find last value before given timestamp in control point list. +If all values in the control point list come after the given +timestamp or no values exist, %NULL is returned. + +For use in control source implementations.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the found #GSequenceIter or %NULL</doc> + <type name="GLib.SequenceIter" c:type="GSequenceIter*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the control source to search in</doc> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the search key</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_all" c:identifier="gst_timed_value_control_source_get_all"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Returns a read-only copy of the list of #GstTimedValue for the given property. +Free the list after done with it.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">a copy +of the list, or %NULL if the property isn't handled by the controller</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Gst.TimedValue"/> + </type> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the #GstTimedValueControlSource to get the list from</doc> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_count" c:identifier="gst_timed_value_control_source_get_count"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Get the number of control points that are set.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the number of control points that are set.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the #GstTimedValueControlSource to get the number of values from</doc> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="set" c:identifier="gst_timed_value_control_source_set"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Set the value of given controller-handled property at a certain time.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">FALSE if the values couldn't be set, TRUE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the #GstTimedValueControlSource object</doc> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the time the control-change is scheduled for</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the control-value</doc> + <type name="gdouble" c:type="const gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_from_list" c:identifier="gst_timed_value_control_source_set_from_list"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Sets multiple timed values at once.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">FALSE if the values couldn't be set, TRUE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the #GstTimedValueControlSource object</doc> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource*"/> + </instance-parameter> + <parameter name="timedvalues" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">a list +with #GstTimedValue items</doc> + <type name="GLib.SList" c:type="const GSList*"> + <type name="Gst.TimedValue"/> + </type> + </parameter> + </parameters> + </method> + <method name="unset" c:identifier="gst_timed_value_control_source_unset"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Used to remove the value of given controller-handled property at a certain +time.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the #GstTimedValueControlSource object</doc> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the time the control-change should be removed from</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="unset_all" c:identifier="gst_timed_value_control_source_unset_all"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Used to remove all time-stamped values of given controller-handled property</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the #GstTimedValueControlSource object</doc> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource*"/> + </instance-parameter> + </parameters> + </method> + <field name="parent"> + <type name="Gst.ControlSource" c:type="GstControlSource"/> + </field> + <field name="lock"> + <type name="GLib.Mutex" c:type="GMutex"/> + </field> + <field name="values"> + <type name="GLib.Sequence" c:type="GSequence*"/> + </field> + <field name="nvalues"> + <type name="gint" c:type="gint"/> + </field> + <field name="valid_cache"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TimedValueControlSourcePrivate" c:type="GstTimedValueControlSourcePrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="value-added" when="first" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">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> + <parameters> + <parameter name="timed_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">The newly added #GstTimedValue</doc> + <type name="ControlPoint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="value-changed" when="first" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">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> + <parameters> + <parameter name="timed_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">The #GstTimedValue where the value changed</doc> + <type name="ControlPoint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="value-removed" when="first" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Emitted when @timed_value is removed from @self</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timed_value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">The removed #GstTimedValue</doc> + <type name="ControlPoint"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="TimedValueControlSourceClass" c:type="GstTimedValueControlSourceClass" glib:is-gtype-struct-for="TimedValueControlSource"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <field name="parent_class"> + <type name="Gst.ControlSourceClass" c:type="GstControlSourceClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TimedValueControlSourcePrivate" c:type="GstTimedValueControlSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + </record> + <class name="TriggerControlSource" c:symbol-prefix="trigger_control_source" c:type="GstTriggerControlSource" parent="TimedValueControlSource" glib:type-name="GstTriggerControlSource" glib:get-type="gst_trigger_control_source_get_type" glib:type-struct="TriggerControlSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.c">#GstTriggerControlSource is a #GstControlSource, that returns values from user-given +control points. It allows for a tolerance on the time-stamps. + +To use #GstTriggerControlSource get a new instance by calling +gst_trigger_control_source_new(), bind it to a #GParamSpec and set some +control points by calling gst_timed_value_control_source_set(). + +All functions are MT-safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.h"/> + <constructor name="new" c:identifier="gst_trigger_control_source_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.c">This returns a new, unbound #GstTriggerControlSource.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.c">a new, unbound #GstTriggerControlSource.</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </return-value> + </constructor> + <property name="tolerance" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <field name="parent"> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TriggerControlSourcePrivate" c:type="GstTriggerControlSourcePrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TriggerControlSourceClass" c:type="GstTriggerControlSourceClass" glib:is-gtype-struct-for="TriggerControlSource"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.h"/> + <field name="parent_class"> + <type name="TimedValueControlSourceClass" c:type="GstTimedValueControlSourceClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TriggerControlSourcePrivate" c:type="GstTriggerControlSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttriggercontrolsource.h"/> + </record> + <function name="timed_value_control_invalidate_cache" c:identifier="gst_timed_value_control_invalidate_cache"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">Reset the controlled value cache.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/controller/gsttimedvaluecontrolsource.c">the #GstTimedValueControlSource</doc> + <type name="TimedValueControlSource" c:type="GstTimedValueControlSource*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstCuda-1.0.gir b/girs/GstCuda-1.0.gir new file mode 100644 index 0000000000..5a1f529afe --- /dev/null +++ b/girs/GstCuda-1.0.gir @@ -0,0 +1,1251 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="CudaGst" version="1.0"/> + <include name="Gst" version="1.0"/> + <include name="GstBase" version="1.0"/> + <include name="GstGL" version="1.0"/> + <include name="GstVideo" version="1.0"/> + <package name="gstreamer-cuda-1.0"/> + <namespace name="GstCuda" version="1.0" shared-library="libgstcuda-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <constant name="CAPS_FEATURE_MEMORY_CUDA_MEMORY" value="memory:CUDAMemory" c:type="GST_CAPS_FEATURE_MEMORY_CUDA_MEMORY" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h">Name of the caps feature for indicating the use of #GstCudaMemory</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="CUDA_ALLOCATOR" c:identifier="GST_CUDA_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_ALLOCATOR_CAST" c:identifier="GST_CUDA_ALLOCATOR_CAST" version="1.22" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_ALLOCATOR_CLASS" c:identifier="GST_CUDA_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_ALLOCATOR_GET_CLASS" c:identifier="GST_CUDA_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_BUFFER_POOL" c:identifier="GST_CUDA_BUFFER_POOL" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_BUFFER_POOL_CAST" c:identifier="GST_CUDA_BUFFER_POOL_CAST" version="1.22" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_BUFFER_POOL_CLASS" c:identifier="GST_CUDA_BUFFER_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_BUFFER_POOL_GET_CLASS" c:identifier="GST_CUDA_BUFFER_POOL_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_CONTEXT" c:identifier="GST_CUDA_CONTEXT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_CONTEXT_CAST" c:identifier="GST_CUDA_CONTEXT_CAST" version="1.22" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_CONTEXT_CLASS" c:identifier="GST_CUDA_CONTEXT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_CONTEXT_GET_CLASS" c:identifier="GST_CUDA_CONTEXT_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="CUDA_CONTEXT_TYPE" value="gst.cuda.context" c:type="GST_CUDA_CONTEXT_TYPE" version="1.22"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="CUDA_MEMORY_CAST" c:identifier="GST_CUDA_MEMORY_CAST" version="1.22" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="mem"> + </parameter> + </parameters> + </function-macro> + <constant name="CUDA_MEMORY_TYPE_NAME" value="gst.cuda.memory" c:type="GST_CUDA_MEMORY_TYPE_NAME" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h">Name of cuda memory type</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="CUDA_POOL_ALLOCATOR" c:identifier="GST_CUDA_POOL_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_POOL_ALLOCATOR_CLASS" c:identifier="GST_CUDA_POOL_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_POOL_ALLOCATOR_GET_CLASS" c:identifier="GST_CUDA_POOL_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="CUDA_STREAM" c:identifier="GST_CUDA_STREAM" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="CudaAllocator" c:symbol-prefix="cuda_allocator" c:type="GstCudaAllocator" version="1.22" parent="Gst.Allocator" glib:type-name="GstCudaAllocator" glib:get-type="gst_cuda_allocator_get_type" glib:type-struct="CudaAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h">A #GstAllocator subclass for cuda memory</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <virtual-method name="set_active" invoker="set_active" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Controls the active state of @allocator. Default #GstCudaAllocator is +stateless and therefore active state is ignored, but subclass implementation +(e.g., #GstCudaPoolAllocator) will require explicit active state control +for its internal resource management. + +This method is conceptually identical to gst_buffer_pool_set_active method.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">%TRUE if active state of @allocator was successfully updated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaAllocator</doc> + <type name="CudaAllocator" c:type="GstCudaAllocator*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">the new active state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <method name="alloc" c:identifier="gst_cuda_allocator_alloc" version="1.22"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a newly allocated #GstCudaMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaAllocator</doc> + <type name="CudaAllocator" c:type="GstCudaAllocator*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + <parameter name="stream" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaStream</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstVideoInfo</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + </parameters> + </method> + <method name="alloc_wrapped" c:identifier="gst_cuda_allocator_alloc_wrapped" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Allocates a new memory that wraps the given CUDA device memory. + +@info must represent actual memory layout, in other words, offset, stride +and size fields of @info should be matched with memory layout of @dev_ptr + +By default, wrapped @dev_ptr will be freed at the time when #GstMemory +is freed if @notify is %NULL. Otherwise, if caller sets @notify, +freeing @dev_ptr is callers responsibility and default #GstCudaAllocator +will not free it.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a new #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaAllocator</doc> + <type name="CudaAllocator" c:type="GstCudaAllocator*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + <parameter name="stream" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaStream</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstVideoInfo</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="dev_ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a CUdeviceptr CUDA device memory</doc> + <type name="CudaGst.deviceptr" c:type="CUdeviceptr"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp"> + Called with @user_data when the memory is freed</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_active" c:identifier="gst_cuda_allocator_set_active" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Controls the active state of @allocator. Default #GstCudaAllocator is +stateless and therefore active state is ignored, but subclass implementation +(e.g., #GstCudaPoolAllocator) will require explicit active state control +for its internal resource management. + +This method is conceptually identical to gst_buffer_pool_set_active method.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">%TRUE if active state of @allocator was successfully updated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaAllocator</doc> + <type name="CudaAllocator" c:type="GstCudaAllocator*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">the new active state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="Gst.Allocator" c:type="GstAllocator"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="CudaAllocatorPrivate" c:type="GstCudaAllocatorPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="CudaAllocatorClass" c:type="GstCudaAllocatorClass" glib:is-gtype-struct-for="CudaAllocator"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <field name="parent_class"> + <type name="Gst.AllocatorClass" c:type="GstAllocatorClass"/> + </field> + <field name="set_active"> + <callback name="set_active"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">%TRUE if active state of @allocator was successfully updated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaAllocator</doc> + <type name="CudaAllocator" c:type="GstCudaAllocator*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">the new active state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="CudaAllocatorPrivate" c:type="GstCudaAllocatorPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + </record> + <class name="CudaBufferPool" c:symbol-prefix="cuda_buffer_pool" c:type="GstCudaBufferPool" version="1.22" parent="Gst.BufferPool" glib:type-name="GstCudaBufferPool" glib:get-type="gst_cuda_buffer_pool_get_type" glib:type-struct="CudaBufferPoolClass"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <constructor name="new" c:identifier="gst_cuda_buffer_pool_new" version="1.22"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.cpp">A newly created #GstCudaBufferPool</doc> + <type name="Gst.BufferPool" c:type="GstBufferPool*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.cpp">The #GstCudaContext to use for the new buffer pool</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + </parameters> + </constructor> + <field name="parent"> + <type name="Gst.BufferPool" c:type="GstBufferPool"/> + </field> + <field name="context"> + <type name="CudaContext" c:type="GstCudaContext*"/> + </field> + <field name="priv"> + <type name="CudaBufferPoolPrivate" c:type="GstCudaBufferPoolPrivate*"/> + </field> + </class> + <record name="CudaBufferPoolClass" c:type="GstCudaBufferPoolClass" glib:is-gtype-struct-for="CudaBufferPool"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <field name="parent_class"> + <type name="Gst.BufferPoolClass" c:type="GstBufferPoolClass"/> + </field> + </record> + <record name="CudaBufferPoolPrivate" c:type="GstCudaBufferPoolPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + </record> + <class name="CudaContext" c:symbol-prefix="cuda_context" c:type="GstCudaContext" version="1.22" parent="Gst.Object" glib:type-name="GstCudaContext" glib:get-type="gst_cuda_context_get_type" glib:type-struct="CudaContextClass"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <constructor name="new" c:identifier="gst_cuda_context_new" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">Create #GstCudaContext with given device_id</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">a new #GstCudaContext or %NULL on +failure</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </return-value> + <parameters> + <parameter name="device_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">device-id for creating #GstCudaContext</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_wrapped" c:identifier="gst_cuda_context_new_wrapped" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">Note: The caller is responsible for ensuring that the CUcontext and CUdevice +represented by @handle and @device stay alive while the returned +#GstCudaContext is active.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">A newly created #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </return-value> + <parameters> + <parameter name="handler" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">A +[CUcontext](https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__TYPES.html#group__CUDA__TYPES_1gf9f5bd81658f866613785b3a0bb7d7d9) +to wrap</doc> + <type name="CudaGst.context" c:type="CUcontext"/> + </parameter> + <parameter name="device" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">A +[CUDevice](https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__TYPES.html#group__CUDA__TYPES_1gf9f5bd81658f866613785b3a0bb7d7d9) +to wrap</doc> + <type name="CudaGst.device" c:type="CUdevice"/> + </parameter> + </parameters> + </constructor> + <function name="pop" c:identifier="gst_cuda_context_pop" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">Pops the current CUDA context from CPU thread</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">%TRUE if @ctx was pushed without error.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="cuda_ctx" transfer-ownership="none"> + <type name="CudaGst.context" c:type="CUcontext*"/> + </parameter> + </parameters> + </function> + <method name="can_access_peer" c:identifier="gst_cuda_context_can_access_peer" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">Query whether @ctx can access any memory which belongs to @peer directly.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">%TRUE if @ctx can access @peer directly</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </instance-parameter> + <parameter name="peer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + </parameters> + </method> + <method name="get_handle" c:identifier="gst_cuda_context_get_handle" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">Get CUDA device context. Caller must not modify and/or destroy +returned device context.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">the `CUcontext` of @ctx</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_texture_alignment" c:identifier="gst_cuda_context_get_texture_alignment" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">Get required texture alignment by device</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">the `CUcontext` of @ctx</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_cuda_context_push" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">Pushes the given @ctx onto the CPU thread's stack of current contexts. +The specified context becomes the CPU thread's current context, +so all CUDA functions that operate on the current context are affected.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">%TRUE if @ctx was pushed without error.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.cpp">a #GstCudaContext to push current thread</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </instance-parameter> + </parameters> + </method> + <property name="cuda-device-id" writable="1" construct-only="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <field name="object"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="CudaContextPrivate" c:type="GstCudaContextPrivate*"/> + </field> + </class> + <record name="CudaContextClass" c:type="GstCudaContextClass" glib:is-gtype-struct-for="CudaContext"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <field name="parent_class"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + </record> + <record name="CudaContextPrivate" c:type="GstCudaContextPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + </record> + <record name="CudaGraphicsResource" c:type="GstCudaGraphicsResource" version="1.22"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <field name="cuda_context" writable="1"> + <type name="CudaContext" c:type="GstCudaContext*"/> + </field> + <field name="graphics_context" writable="1"> + <type name="Gst.Object" c:type="GstObject*"/> + </field> + <field name="type" writable="1"> + <type name="CudaGraphicsResourceType" c:type="GstCudaGraphicsResourceType"/> + </field> + <field name="resource" writable="1"> + <type name="CudaGst.graphicsResource" c:type="CUgraphicsResource"/> + </field> + <field name="flags" writable="1"> + <type name="CudaGst.graphicsRegisterFlags" c:type="CUgraphicsRegisterFlags"/> + </field> + <field name="registered" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="mapped" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <method name="free" c:identifier="gst_cuda_graphics_resource_free" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Free @resource</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="resource" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaGraphicsResource</doc> + <type name="CudaGraphicsResource" c:type="GstCudaGraphicsResource*"/> + </instance-parameter> + </parameters> + </method> + <method name="map" c:identifier="gst_cuda_graphics_resource_map" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Map previously registered resource with map flags</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">the `CUgraphicsResource` if successful or %NULL when failed</doc> + <type name="CudaGst.graphicsResource" c:type="CUgraphicsResource"/> + </return-value> + <parameters> + <instance-parameter name="resource" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaGraphicsResource</doc> + <type name="CudaGraphicsResource" c:type="GstCudaGraphicsResource*"/> + </instance-parameter> + <parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a CUstream</doc> + <type name="CudaGst.stream" c:type="CUstream"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a CUgraphicsMapResourceFlags</doc> + <type name="CudaGst.graphicsMapResourceFlags" c:type="CUgraphicsMapResourceFlags"/> + </parameter> + </parameters> + </method> + <method name="register_gl_buffer" c:identifier="gst_cuda_graphics_resource_register_gl_buffer" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">@resource a #GstCudaGraphicsResource +Register the @buffer for access by CUDA. +Must be called from the gl context thread with current cuda context was +pushed on the current thread</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">whether @buffer was registered or not</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="resource" transfer-ownership="none"> + <type name="CudaGraphicsResource" c:type="GstCudaGraphicsResource*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a GL buffer object</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a `CUgraphicsRegisterFlags`</doc> + <type name="CudaGst.graphicsRegisterFlags" c:type="CUgraphicsRegisterFlags"/> + </parameter> + </parameters> + </method> + <method name="unmap" c:identifier="gst_cuda_graphics_resource_unmap" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Unmap previously mapped resource</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="resource" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaGraphicsResource</doc> + <type name="CudaGraphicsResource" c:type="GstCudaGraphicsResource*"/> + </instance-parameter> + <parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a `CUstream`</doc> + <type name="CudaGst.stream" c:type="CUstream"/> + </parameter> + </parameters> + </method> + <method name="unregister" c:identifier="gst_cuda_graphics_resource_unregister" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Unregister previously registered resource. +For GL resource, this method must be called from gl context thread. +Also, current cuda context should be pushed on the current thread +before calling this method.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="resource" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaGraphicsResource</doc> + <type name="CudaGraphicsResource" c:type="GstCudaGraphicsResource*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_cuda_graphics_resource_new" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Create new #GstCudaGraphicsResource with given @context and @type</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a new #GstCudaGraphicsResource. +Free with gst_cuda_graphics_resource_free</doc> + <type name="CudaGraphicsResource" c:type="GstCudaGraphicsResource*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + <parameter name="graphics_context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a graphics API specific context object</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaGraphicsResourceType of resource registration</doc> + <type name="CudaGraphicsResourceType" c:type="GstCudaGraphicsResourceType"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="CudaGraphicsResourceType" version="1.22" c:type="GstCudaGraphicsResourceType"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <member name="none" value="0" c:identifier="GST_CUDA_GRAPHICS_RESOURCE_NONE"> + </member> + <member name="gl_buffer" value="1" c:identifier="GST_CUDA_GRAPHICS_RESOURCE_GL_BUFFER"> + </member> + <member name="d3d11_resource" value="2" c:identifier="GST_CUDA_GRAPHICS_RESOURCE_D3D11_RESOURCE"> + </member> + </enumeration> + <record name="CudaMemory" c:type="GstCudaMemory" version="1.22"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <field name="mem" writable="1"> + <type name="Gst.Memory" c:type="GstMemory"/> + </field> + <field name="context" writable="1"> + <type name="CudaContext" c:type="GstCudaContext*"/> + </field> + <field name="info" writable="1"> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="CudaMemoryPrivate" c:type="GstCudaMemoryPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="get_stream" c:identifier="gst_cuda_memory_get_stream" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Gets CUDA stream object associated with @mem</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaStream or %NULL if default +CUDA stream is in use</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">A #GstCudaMemory</doc> + <type name="CudaMemory" c:type="GstCudaMemory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_texture" c:identifier="gst_cuda_memory_get_texture" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Creates CUtexObject with given parameters</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">%TRUE if successful</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">A #GstCudaMemory</doc> + <type name="CudaMemory" c:type="GstCudaMemory*"/> + </instance-parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">the plane index</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="filter_mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">filter mode</doc> + <type name="CudaGst.filter_mode" c:type="CUfilter_mode"/> + </parameter> + <parameter name="texture" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a pointer to CUtexObject object</doc> + <type name="CudaGst.texObject" c:type="CUtexObject*"/> + </parameter> + </parameters> + </method> + <method name="get_token_data" c:identifier="gst_cuda_memory_get_token_data" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Gets back user data pointer stored via gst_cuda_memory_set_token_data()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">user data pointer or %NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaMemory</doc> + <type name="CudaMemory" c:type="GstCudaMemory*"/> + </instance-parameter> + <parameter name="token" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">an user token</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="get_user_data" c:identifier="gst_cuda_memory_get_user_data" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Gets user data pointer stored via gst_cuda_allocator_alloc_wrapped()</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">the user data pointer</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">A #GstCudaMemory</doc> + <type name="CudaMemory" c:type="GstCudaMemory*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_token_data" c:identifier="gst_cuda_memory_set_token_data" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Sets an opaque user data on a #GstCudaMemory</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaMemory</doc> + <type name="CudaMemory" c:type="GstCudaMemory*"/> + </instance-parameter> + <parameter name="token" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">an user token</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">an user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">function to invoke with @data as argument, when @data needs to be + freed</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="sync" c:identifier="gst_cuda_memory_sync" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Performs synchronization if needed</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">A #GstCudaMemory</doc> + <type name="CudaMemory" c:type="GstCudaMemory*"/> + </instance-parameter> + </parameters> + </method> + <function name="init_once" c:identifier="gst_cuda_memory_init_once" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Ensures that the #GstCudaAllocator is initialized and ready to be used.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + </record> + <record name="CudaMemoryPrivate" c:type="GstCudaMemoryPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + </record> + <bitfield name="CudaMemoryTransfer" c:type="GstCudaMemoryTransfer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h">CUDA memory transfer flags</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <member name="download" value="1048576" c:identifier="GST_CUDA_MEMORY_TRANSFER_NEED_DOWNLOAD"> + </member> + <member name="upload" value="2097152" c:identifier="GST_CUDA_MEMORY_TRANSFER_NEED_UPLOAD"> + </member> + <member name="sync" value="4194304" c:identifier="GST_CUDA_MEMORY_TRANSFER_NEED_SYNC"> + </member> + </bitfield> + <class name="CudaPoolAllocator" c:symbol-prefix="cuda_pool_allocator" c:type="GstCudaPoolAllocator" version="1.24" parent="CudaAllocator" glib:type-name="GstCudaPoolAllocator" glib:get-type="gst_cuda_pool_allocator_get_type" glib:type-struct="CudaPoolAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h">A #GstCudaAllocator subclass for cuda memory pool</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <constructor name="new" c:identifier="gst_cuda_pool_allocator_new" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Creates a new #GstCudaPoolAllocator instance.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a new #GstCudaPoolAllocator instance</doc> + <type name="CudaPoolAllocator" c:type="GstCudaPoolAllocator*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + <parameter name="stream" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaStream</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstVideoInfo</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + </parameters> + </constructor> + <method name="acquire_memory" c:identifier="gst_cuda_pool_allocator_acquire_memory" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Acquires a #GstMemory from @allocator. @memory should point to a memory +location that can hold a pointer to the new #GstMemory.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the allocator is +inactive.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstCudaPoolAllocator</doc> + <type name="CudaPoolAllocator" c:type="GstCudaPoolAllocator*"/> + </instance-parameter> + <parameter name="memory" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">a #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory**"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="CudaAllocator" c:type="GstCudaAllocator"/> + </field> + <field name="context"> + <type name="CudaContext" c:type="GstCudaContext*"/> + </field> + <field name="stream"> + <type name="CudaStream" c:type="GstCudaStream*"/> + </field> + <field name="info"> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="CudaPoolAllocatorPrivate" c:type="GstCudaPoolAllocatorPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="CudaPoolAllocatorClass" c:type="GstCudaPoolAllocatorClass" glib:is-gtype-struct-for="CudaPoolAllocator"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <field name="parent_class"> + <type name="CudaAllocatorClass" c:type="GstCudaAllocatorClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="CudaPoolAllocatorPrivate" c:type="GstCudaPoolAllocatorPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + </record> + <enumeration name="CudaQuarkId" version="1.22" c:type="GstCudaQuarkId"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <member name="graphics_resource" value="0" c:identifier="GST_CUDA_QUARK_GRAPHICS_RESOURCE"> + </member> + <member name="max" value="1" c:identifier="GST_CUDA_QUARK_MAX"> + </member> + </enumeration> + <record name="CudaStream" c:type="GstCudaStream" version="1.24" glib:type-name="GstCudaStream" glib:get-type="gst_cuda_stream_get_type" c:symbol-prefix="cuda_stream"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.h"/> + <field name="parent" writable="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject"/> + </field> + <field name="context" writable="1"> + <type name="CudaContext" c:type="GstCudaContext*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="CudaStreamPrivate" c:type="GstCudaStreamPrivate*"/> + </field> + <constructor name="new" c:identifier="gst_cuda_stream_new" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">Creates a new #GstCudaStream</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">a new #GstCudaStream or %NULL on +failure</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + </parameters> + </constructor> + <method name="get_handle" c:identifier="gst_cuda_stream_get_handle" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">Get CUDA stream handle</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">a `CUstream` handle of @stream or %NULL if @stream is %NULL</doc> + <type name="CudaGst.stream" c:type="CUstream"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">a #GstCudaStream</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </instance-parameter> + </parameters> + </method> + <method name="ref" c:identifier="gst_cuda_stream_ref" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">Increase the reference count of @stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">@stream</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">a #GstCudaStream</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </instance-parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_cuda_stream_unref" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">Decrease the reference count of @stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">a #GstCudaStream</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </instance-parameter> + </parameters> + </method> + </record> + <record name="CudaStreamPrivate" c:type="GstCudaStreamPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.h"/> + </record> + <function-macro name="IS_CUDA_ALLOCATOR" c:identifier="GST_IS_CUDA_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CUDA_ALLOCATOR_CLASS" c:identifier="GST_IS_CUDA_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CUDA_BUFFER_POOL" c:identifier="GST_IS_CUDA_BUFFER_POOL" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CUDA_BUFFER_POOL_CLASS" c:identifier="GST_IS_CUDA_BUFFER_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CUDA_CONTEXT" c:identifier="GST_IS_CUDA_CONTEXT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CUDA_CONTEXT_CLASS" c:identifier="GST_IS_CUDA_CONTEXT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudacontext.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CUDA_POOL_ALLOCATOR" c:identifier="GST_IS_CUDA_POOL_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CUDA_POOL_ALLOCATOR_CLASS" c:identifier="GST_IS_CUDA_POOL_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_CUDA_STREAM" c:identifier="GST_IS_CUDA_STREAM" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="MAP_CUDA" value="131072" c:type="GST_MAP_CUDA" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h">Flag indicating that we should map the CUDA device memory +instead of to system memory. + +Combining #GST_MAP_CUDA with #GST_MAP_WRITE has the same semantics as though +you are writing to CUDA device/host memory. +Conversely, combining #GST_MAP_CUDA with +#GST_MAP_READ has the same semantics as though you are reading from +CUDA device/host memory</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function name="buffer_pool_config_get_cuda_stream" c:identifier="gst_buffer_pool_config_get_cuda_stream" version="1.24"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.cpp">the currently configured #GstCudaStream +on @config or %NULL if @config doesn't hold #GstCudaStream</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.cpp">a buffer pool config</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="buffer_pool_config_set_cuda_stream" c:identifier="gst_buffer_pool_config_set_cuda_stream" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.cpp">Sets @stream on @config</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.cpp">a buffer pool config</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudabufferpool.cpp">a #GstCudaStream</doc> + <type name="CudaStream" c:type="GstCudaStream*"/> + </parameter> + </parameters> + </function> + <function name="clear_cuda_stream" c:identifier="gst_clear_cuda_stream" version="1.24" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">Clears a reference to a #GstCudaStream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="stream" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudastream.cpp">a pointer to a #GstCudaStream reference</doc> + <type name="CudaStream" c:type="GstCudaStream**"/> + </parameter> + </parameters> + </function> + <function name="context_new_cuda_context" c:identifier="gst_context_new_cuda_context" version="1.22"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a new #GstContext embedding the @cuda_ctx</doc> + <type name="Gst.Context" c:type="GstContext*"/> + </return-value> + <parameters> + <parameter name="cuda_ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + </parameters> + </function> + <function name="cuda_create_user_token" c:identifier="gst_cuda_create_user_token" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Creates new user token value</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">user token value</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + </function> + <function name="cuda_ensure_element_context" c:identifier="gst_cuda_ensure_element_context" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Perform the steps necessary for retrieving a #GstCudaContext from the +surrounding elements or from the application using the #GstContext mechanism. + +If the content of @cuda_ctx is not %NULL, then no #GstContext query is +necessary for #GstCudaContext.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">whether a #GstCudaContext exists in @cuda_ctx</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">the #GstElement running the query</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="device_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">preferred device-id, pass device_id >=0 when + the device_id explicitly required. Otherwise, set -1.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="cuda_ctx" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">the resulting #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext**"/> + </parameter> + </parameters> + </function> + <function name="cuda_graphics_resource_new" c:identifier="gst_cuda_graphics_resource_new" moved-to="CudaGraphicsResource.new" version="1.22" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Create new #GstCudaGraphicsResource with given @context and @type</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a new #GstCudaGraphicsResource. +Free with gst_cuda_graphics_resource_free</doc> + <type name="CudaGraphicsResource" c:type="GstCudaGraphicsResource*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + <parameter name="graphics_context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a graphics API specific context object</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaGraphicsResourceType of resource registration</doc> + <type name="CudaGraphicsResourceType" c:type="GstCudaGraphicsResourceType"/> + </parameter> + </parameters> + </function> + <function name="cuda_handle_context_query" c:identifier="gst_cuda_handle_context_query" version="1.22"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Whether the @query was successfully responded to from the passed + @context.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstElement</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstQuery of type %GST_QUERY_CONTEXT</doc> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="cuda_ctx" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext*"/> + </parameter> + </parameters> + </function> + <function name="cuda_handle_set_context" c:identifier="gst_cuda_handle_set_context" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">Helper function for implementing #GstElementClass.set_context() in +CUDA capable elements. + +Retrieves the #GstCudaContext in @context and places the result in @cuda_ctx.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">whether the @cuda_ctx could be set successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstElement</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstContext</doc> + <type name="Gst.Context" c:type="GstContext*"/> + </parameter> + <parameter name="device_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">preferred device-id, pass device_id >=0 when + the device_id explicitly required. Otherwise, set -1.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="cuda_ctx" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">location of a #GstCudaContext</doc> + <type name="CudaContext" c:type="GstCudaContext**"/> + </parameter> + </parameters> + </function> + <function name="cuda_load_library" c:identifier="gst_cuda_load_library" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudaloader.cpp">Loads the cuda library</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudaloader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudaloader.cpp">%TRUE if the libcuda could be loaded %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="cuda_memory_init_once" c:identifier="gst_cuda_memory_init_once" moved-to="CudaMemory.init_once" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Ensures that the #GstCudaAllocator is initialized and ready to be used.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="cuda_nvrtc_compile" c:identifier="gst_cuda_nvrtc_compile" version="1.22"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudanvrtc.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudanvrtc.cpp">Source code to compile</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="cuda_nvrtc_load_library" c:identifier="gst_cuda_nvrtc_load_library" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudanvrtc.cpp">Loads the nvrtc library.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudanvrtc.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudanvrtc.cpp">%TRUE if the library could be loaded, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="cuda_quark_from_id" c:identifier="gst_cuda_quark_from_id" version="1.22" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">the GQuark for given @id or 0 if @id is unknown value</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.cpp">a #GstCudaQuarkId</doc> + <type name="CudaQuarkId" c:type="GstCudaQuarkId"/> + </parameter> + </parameters> + </function> + <function-macro name="cuda_result" c:identifier="gst_cuda_result" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h"/> + <parameters> + <parameter name="result"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudautils.h">CUDA device API return code `CUresult`</doc> + </parameter> + </parameters> + </function-macro> + <function name="is_cuda_memory" c:identifier="gst_is_cuda_memory" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">Check if @mem is a cuda memory</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/cuda/gstcudamemory.cpp">A #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstGL-1.0.gir b/girs/GstGL-1.0.gir new file mode 100644 index 0000000000..8c9f84166f --- /dev/null +++ b/girs/GstGL-1.0.gir @@ -0,0 +1,11089 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <include name="GstBase" version="1.0"/> + <include name="GstVideo" version="1.0"/> + <package name="gstreamer-gl-1.0"/> + <c:include name="gst/gl/gl.h"/> + <namespace name="GstGL" version="1.0" shared-library="libgstgl-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <constant name="BUFFER_POOL_OPTION_GL_SYNC_META" value="GstBufferPoolOptionGLSyncMeta" c:type="GST_BUFFER_POOL_OPTION_GL_SYNC_META"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h">An option that can be activated on bufferpools to request OpenGL +synchronization metadata on buffers from the pool.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="BUFFER_POOL_OPTION_GL_TEXTURE_TARGET_2D" value="GstBufferPoolOptionGLTextureTarget2D" c:type="GST_BUFFER_POOL_OPTION_GL_TEXTURE_TARGET_2D"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">String used for %GST_GL_TEXTURE_TARGET_2D as a #GstBufferPool pool option</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="BUFFER_POOL_OPTION_GL_TEXTURE_TARGET_EXTERNAL_OES" value="GstBufferPoolOptionGLTextureTargetExternalOES" c:type="GST_BUFFER_POOL_OPTION_GL_TEXTURE_TARGET_EXTERNAL_OES"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">String used for %GST_GL_TEXTURE_TARGET_EXTERNAL_OES as a #GstBufferPool pool option</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="BUFFER_POOL_OPTION_GL_TEXTURE_TARGET_RECTANGLE" value="GstBufferPoolOptionGLTextureTargetRectangle" c:type="GST_BUFFER_POOL_OPTION_GL_TEXTURE_TARGET_RECTANGLE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">String used for %GST_GL_TEXTURE_TARGET_RECTANGLE as a #GstBufferPool pool option</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="CAPS_FEATURE_MEMORY_GL_BUFFER" value="memory:GLBuffer" c:type="GST_CAPS_FEATURE_MEMORY_GL_BUFFER"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">Name of the caps feature indicating the use of GL buffers</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="CAPS_FEATURE_MEMORY_GL_MEMORY" value="memory:GLMemory" c:type="GST_CAPS_FEATURE_MEMORY_GL_MEMORY"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">Name of the caps feature for indicating the use of #GstGLMemory</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <bitfield name="GLAPI" glib:type-name="GstGLAPI" glib:get-type="gst_gl_api_get_type" c:type="GstGLAPI"> + <member name="none" value="0" c:identifier="GST_GL_API_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">no API</doc> + </member> + <member name="opengl" value="1" c:identifier="GST_GL_API_OPENGL" glib:nick="opengl"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">Desktop OpenGL up to and including 3.1. The + compatibility profile when the OpenGL version is >= 3.2</doc> + </member> + <member name="opengl3" value="2" c:identifier="GST_GL_API_OPENGL3" glib:nick="opengl3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">Desktop OpenGL >= 3.2 core profile</doc> + </member> + <member name="gles1" value="32768" c:identifier="GST_GL_API_GLES1" glib:nick="gles1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">OpenGL ES 1.x</doc> + </member> + <member name="gles2" value="65536" c:identifier="GST_GL_API_GLES2" glib:nick="gles2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">OpenGL ES 2.x and 3.x</doc> + </member> + <member name="any" value="4294967295" c:identifier="GST_GL_API_ANY" glib:nick="any"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">Any OpenGL API</doc> + </member> + <function name="from_string" c:identifier="gst_gl_api_from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">The #GstGLAPI represented by @api_s</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </return-value> + <parameters> + <parameter name="api_s" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">a space separated string of OpenGL apis</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="to_string" c:identifier="gst_gl_api_to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">A space separated string of the OpenGL api's enabled in @api</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">a #GstGLAPI to stringify</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + </parameters> + </function> + </bitfield> + <record name="GLAllocationParams" c:type="GstGLAllocationParams" glib:type-name="GstGLAllocationParams" glib:get-type="gst_gl_allocation_params_get_type" c:symbol-prefix="gl_allocation_params"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <field name="struct_size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the size of the struct (including and subclass data)</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="copy" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLAllocationParamsCopyFunc</doc> + <type name="GLAllocationParamsCopyFunc" c:type="GstGLAllocationParamsCopyFunc"/> + </field> + <field name="free" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLAllocationParamsFreeFunc</doc> + <type name="GLAllocationParamsFreeFunc" c:type="GstGLAllocationParamsFreeFunc"/> + </field> + <field name="alloc_flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">allocation flags</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="alloc_size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the allocation size</doc> + <type name="gsize" c:type="gsize"/> + </field> + <field name="alloc_params" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the #GstAllocationParams</doc> + <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/> + </field> + <field name="context" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="notify" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="user_data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">argument to call @notify with</doc> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="wrapped_data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the wrapped data pointer</doc> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="gl_handle" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the wrapped OpenGL handle</doc> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="copy" c:identifier="gst_gl_allocation_params_copy" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a copy of the #GstGLAllocationParams specified by + @src</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the #GstGLAllocationParams to initialize</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </instance-parameter> + </parameters> + </method> + <method name="copy_data" c:identifier="gst_gl_allocation_params_copy_data" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">Copies the dynamically allocated data from @src to @dest. Direct subclasses +should call this function in their own overridden copy function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the source #GstGLAllocationParams</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </instance-parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the destination #GstGLAllocationParams</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_gl_allocation_params_free" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">Frees the #GstGLAllocationParams and all associated data.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the #GstGLAllocationParams to initialize</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </instance-parameter> + </parameters> + </method> + <method name="free_data" c:identifier="gst_gl_allocation_params_free_data" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">Frees the dynamically allocated data in @params. Direct subclasses +should call this function in their own overridden free function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the source #GstGLAllocationParams</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_gl_allocation_params_init" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">@notify will be called once for each allocated memory using these @params +when freeing the memory.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">whether the parameters could be initialized</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the #GstGLAllocationParams to initialize</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </instance-parameter> + <parameter name="struct_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the struct size of the implementation</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="alloc_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">some alloc flags</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="copy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a copy function</doc> + <type name="GLAllocationParamsCopyFunc" c:type="GstGLAllocationParamsCopyFunc"/> + </parameter> + <parameter name="free" transfer-ownership="none" scope="notified" closure="9" destroy="10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a free function</doc> + <type name="GLAllocationParamsFreeFunc" c:type="GstGLAllocationParamsFreeFunc"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="alloc_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the number of bytes to allocate.</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="alloc_params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a #GstAllocationParams to apply</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="wrapped_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a sysmem data pointer to initialize the allocation with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="gl_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a GL handle to initialize the allocation with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">user data to call @notify with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + </record> + <callback name="GLAllocationParamsCopyFunc" c:type="GstGLAllocationParamsCopyFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Copies the parameters from @src into @dest. The subclass must compose copy +functions from the superclass.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the source #GstGLAllocationParams to copy from</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the source #GstGLAllocationParams to copy</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </parameter> + </parameters> + </callback> + <callback name="GLAllocationParamsFreeFunc" c:type="GstGLAllocationParamsFreeFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Free any dynamically allocated data. The subclass must call the superclass' +free.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLAllocationParams</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="GLAsyncDebug" c:type="GstGLAsyncDebug"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h">#GstGLAsyncDebug an opaque structure and should only be accessed through the +provided API.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <field name="state_flags" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="cat" readable="0" private="1"> + <type name="Gst.DebugCategory" c:type="GstDebugCategory*"/> + </field> + <field name="level" readable="0" private="1"> + <type name="Gst.DebugLevel" c:type="GstDebugLevel"/> + </field> + <field name="file" readable="0" private="1"> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="function" readable="0" private="1"> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="line" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="object" readable="0" private="1"> + <type name="GObject.Object" c:type="GObject*"/> + </field> + <field name="debug_msg" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="callback" readable="0" private="1"> + <type name="GLAsyncDebugLogGetMessage" c:type="GstGLAsyncDebugLogGetMessage"/> + </field> + <field name="user_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="free" c:identifier="gst_gl_async_debug_free" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">Frees @ad</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a #GstGLAsyncDebug</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </instance-parameter> + </parameters> + </method> + <method name="freeze" c:identifier="gst_gl_async_debug_freeze" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">freeze the debug output. While frozen, any call to +gst_gl_async_debug_output_log_msg() will not output any messages but +subsequent calls to gst_gl_async_debug_store_log_msg() will overwrite previous +messages.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a #GstGLAsyncDebug</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_gl_async_debug_init" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">Initialize @ad. Intended for use with #GstGLAsyncDebug's that are embedded +in other structs.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a #GstGLAsyncDebug</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </instance-parameter> + </parameters> + </method> + <method name="output_log_msg" c:identifier="gst_gl_async_debug_output_log_msg"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">Outputs a previously stored debug message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the #GstGLAsyncDebug to store the message in</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </instance-parameter> + </parameters> + </method> + <method name="store_log_msg" c:identifier="gst_gl_async_debug_store_log_msg" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">Stores a debug message for later output by gst_gl_async_debug_output_log_msg()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the #GstGLAsyncDebug to store the message in</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </instance-parameter> + <parameter name="cat" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the #GstDebugCategory to output the message in</doc> + <type name="Gst.DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the #GstDebugLevel</doc> + <type name="Gst.DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the file where the debug message originates from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the function where the debug message originates from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the line in @file where the debug message originates from</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a #GObject to associate with the debug message</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the list of arguments for @format</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="store_log_msg_valist" c:identifier="gst_gl_async_debug_store_log_msg_valist" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">Stores a debug message for later output by gst_gl_async_debug_output_log_msg()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the #GstGLAsyncDebug to store the message in</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </instance-parameter> + <parameter name="cat" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the #GstDebugCategory to output the message in</doc> + <type name="Gst.DebugCategory" c:type="GstDebugCategory*"/> + </parameter> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the #GstDebugLevel</doc> + <type name="Gst.DebugLevel" c:type="GstDebugLevel"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the file where the debug message originates from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="function" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the function where the debug message originates from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the line in @file where the debug message originates from</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a #GObject to associate with the debug message</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a printf style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="varargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">the list of arguments for @format</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="thaw" c:identifier="gst_gl_async_debug_thaw" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">unfreeze the debug output. See gst_gl_async_debug_freeze() for what freezing means</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a #GstGLAsyncDebug</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </instance-parameter> + </parameters> + </method> + <method name="unset" c:identifier="gst_gl_async_debug_unset"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">Unset any dynamically allocated data. Intended for use with +#GstGLAsyncDebug's that are embedded in other structs.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a #GstGLAsyncDebug</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </instance-parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_gl_async_debug_new" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">Free with gst_gl_async_debug_free()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a new #GstGLAsyncDebug</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </return-value> + </function> + </record> + <callback name="GLAsyncDebugLogGetMessage" c:type="GstGLAsyncDebugLogGetMessage"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="0"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="GLBaseFilter" c:symbol-prefix="gl_base_filter" c:type="GstGLBaseFilter" parent="GstBase.BaseTransform" glib:type-name="GstGLBaseFilter" glib:get-type="gst_gl_base_filter_get_type" glib:type-struct="GLBaseFilterClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c">#GstGLBaseFilter handles the nitty gritty details of retrieving an OpenGL +context. It also provided some wrappers around #GstBaseTransform's +`start()`, `stop()` and `set_caps()` virtual methods that ensure an OpenGL +context is available and current in the calling thread.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <virtual-method name="gl_set_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="GLBaseFilter" c:type="GstGLBaseFilter*"/> + </instance-parameter> + <parameter name="incaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="outcaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="gl_start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="GLBaseFilter" c:type="GstGLBaseFilter*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="gl_stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="GLBaseFilter" c:type="GstGLBaseFilter*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="find_gl_context" c:identifier="gst_gl_base_filter_find_gl_context" version="1.16"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c">Whether an OpenGL context could be retrieved or created successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c">a #GstGLBaseFilter</doc> + <type name="GLBaseFilter" c:type="GstGLBaseFilter*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_gl_context" c:identifier="gst_gl_base_filter_get_gl_context" version="1.18"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c">the #GstGLContext found by @filter</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c">a #GstGLBaseFilter</doc> + <type name="GLBaseFilter" c:type="GstGLBaseFilter*"/> + </instance-parameter> + </parameters> + </method> + <property name="context" transfer-ownership="none"> + <type name="GLContext"/> + </property> + <field name="parent"> + <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/> + </field> + <field name="display"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h">the currently configured #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </field> + <field name="context"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h">the currently configured #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="in_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h">the currently configured input #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </field> + <field name="out_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h">the currently configured output #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLBaseFilterPrivate" c:type="GstGLBaseFilterPrivate*"/> + </field> + </class> + <record name="GLBaseFilterClass" c:type="GstGLBaseFilterClass" glib:is-gtype-struct-for="GLBaseFilter"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h">The base class for GStreamer GL Filter.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <field name="parent_class"> + <type name="GstBase.BaseTransformClass" c:type="GstBaseTransformClass"/> + </field> + <field name="supported_gl_api"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h">the logical-OR of #GstGLAPI's supported by this element</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </field> + <field name="gl_start"> + <callback name="gl_start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="GLBaseFilter" c:type="GstGLBaseFilter*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="gl_stop"> + <callback name="gl_stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="GLBaseFilter" c:type="GstGLBaseFilter*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="gl_set_caps"> + <callback name="gl_set_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="GLBaseFilter" c:type="GstGLBaseFilter*"/> + </parameter> + <parameter name="incaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="outcaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GLBaseFilterPrivate" c:type="GstGLBaseFilterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <record name="GLBaseMemory" c:type="GstGLBaseMemory" glib:type-name="GstGLBaseMemory" glib:get-type="gst_gl_base_memory_get_type" c:symbol-prefix="gl_base_memory"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">GstGLBaseMemory is a #GstMemory subclass providing the basis of support +for the mapping of GL buffers. + +Data is uploaded or downloaded from the GPU as is necessary.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <field name="mem" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the parent object</doc> + <type name="Gst.Memory" c:type="GstMemory"/> + </field> + <field name="context" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the #GstGLContext to use for GL operations</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="lock" writable="1"> + <type name="GLib.Mutex" c:type="GMutex"/> + </field> + <field name="map_flags" writable="1"> + <type name="Gst.MapFlags" c:type="GstMapFlags"/> + </field> + <field name="map_count" writable="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="gl_map_count" writable="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="data" writable="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="query" writable="1"> + <type name="GLQuery" c:type="GstGLQuery*"/> + </field> + <field name="alloc_size" readable="0" private="1"> + <type name="gsize" c:type="gsize"/> + </field> + <field name="alloc_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="user_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="alloc_data" c:identifier="gst_gl_base_memory_alloc_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">Note: only intended for subclass usage to allocate the system memory buffer +on demand. If there is already a non-NULL data pointer in @gl_mem->data, +then this function imply returns TRUE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">whether the system memory could be allocated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a #GstGLBaseMemory</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_gl_base_memory_init" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">Initializes @mem with the required parameters</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the #GstGLBaseMemory to initialize</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </instance-parameter> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the #GstAllocator to initialize with</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the parent #GstMemory to initialize with</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the #GstGLContext to initialize with</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the @GstAllocationParams to initialize with</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the number of bytes to be allocated</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">user data to call @notify with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="memcpy" c:identifier="gst_gl_base_memory_memcpy" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">whether the copy succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the source #GstGLBaseMemory</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </instance-parameter> + <parameter name="dest" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the destination #GstGLBaseMemory</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the offset to start at</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the number of bytes to copy</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </method> + <function name="alloc" c:identifier="gst_gl_base_memory_alloc" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a new #GstGLBaseMemory from @allocator with the requested @params.</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a #GstGLBaseMemoryAllocator</doc> + <type name="GLBaseMemoryAllocator" c:type="GstGLBaseMemoryAllocator*"/> + </parameter> + <parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the #GstGLAllocationParams to allocate the memory with</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </parameter> + </parameters> + </function> + <function name="init_once" c:identifier="gst_gl_base_memory_init_once" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">Initializes the GL Base Memory allocator. It is safe to call this function +multiple times. This must be called before any other GstGLBaseMemory operation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + </record> + <class name="GLBaseMemoryAllocator" c:symbol-prefix="gl_base_memory_allocator" c:type="GstGLBaseMemoryAllocator" version="1.8" parent="Gst.Allocator" abstract="1" glib:type-name="GstGLBaseMemoryAllocator" glib:get-type="gst_gl_base_memory_allocator_get_type" glib:type-struct="GLBaseMemoryAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Opaque #GstGLBaseMemoryAllocator struct</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <virtual-method name="alloc"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a newly allocated #GstGLBaseMemory from @allocator and @params</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </return-value> + <parameters> + <instance-parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemoryAllocator</doc> + <type name="GLBaseMemoryAllocator" c:type="GstGLBaseMemoryAllocator*"/> + </instance-parameter> + <parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the #GstGLAllocationParams to allocate the memory with</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </parameter> + </parameters> + </virtual-method> + <field name="parent" readable="0" private="1"> + <type name="Gst.Allocator" c:type="GstAllocator"/> + </field> + <field name="fallback_mem_copy" readable="0" private="1"> + <type name="Gst.MemoryCopyFunction" c:type="GstMemoryCopyFunction"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <callback name="GLBaseMemoryAllocatorAllocFunction" c:type="GstGLBaseMemoryAllocatorAllocFunction" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Note: not called with a GL context current</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a newly allocated #GstGLBaseMemory from @allocator and @params</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemoryAllocator</doc> + <type name="GLBaseMemoryAllocator" c:type="GstGLBaseMemoryAllocator*"/> + </parameter> + <parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the #GstGLAllocationParams to allocate the memory with</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </parameter> + </parameters> + </callback> + <record name="GLBaseMemoryAllocatorClass" c:type="GstGLBaseMemoryAllocatorClass" glib:is-gtype-struct-for="GLBaseMemoryAllocator" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the parent class</doc> + <type name="Gst.AllocatorClass" c:type="GstAllocatorClass"/> + </field> + <field name="alloc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemoryAllocatorAllocFunction</doc> + <type name="GLBaseMemoryAllocatorAllocFunction" c:type="GstGLBaseMemoryAllocatorAllocFunction"/> + </field> + <field name="create"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemoryAllocatorCreateFunction</doc> + <type name="GLBaseMemoryAllocatorCreateFunction" c:type="GstGLBaseMemoryAllocatorCreateFunction"/> + </field> + <field name="map"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemoryAllocatorMapFunction</doc> + <type name="GLBaseMemoryAllocatorMapFunction" c:type="GstGLBaseMemoryAllocatorMapFunction"/> + </field> + <field name="unmap"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemoryAllocatorUnmapFunction</doc> + <type name="GLBaseMemoryAllocatorUnmapFunction" c:type="GstGLBaseMemoryAllocatorUnmapFunction"/> + </field> + <field name="copy"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemoryAllocatorCopyFunction</doc> + <type name="GLBaseMemoryAllocatorCopyFunction" c:type="GstGLBaseMemoryAllocatorCopyFunction"/> + </field> + <field name="destroy"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemoryAllocatorDestroyFunction</doc> + <type name="GLBaseMemoryAllocatorDestroyFunction" c:type="GstGLBaseMemoryAllocatorDestroyFunction"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="GLBaseMemoryAllocatorCopyFunction" c:type="GstGLBaseMemoryAllocatorCopyFunction" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Also see gst_memory_copy();</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the newly copied #GstGLMemory or %NULL</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemory</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the offset to copy from</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the number of bytes to copy</doc> + <type name="gssize" c:type="gssize"/> + </parameter> + </parameters> + </callback> + <callback name="GLBaseMemoryAllocatorCreateFunction" c:type="GstGLBaseMemoryAllocatorCreateFunction" version="1.8" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">As this virtual method is called with an OpenGL context current, use this +function to allocate and OpenGL resources needed for your application</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">whether the creation succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemory</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </parameter> + </parameters> + </callback> + <callback name="GLBaseMemoryAllocatorDestroyFunction" c:type="GstGLBaseMemoryAllocatorDestroyFunction" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Destroy any resources allocated throughout the lifetime of @mem</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemory</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </parameter> + </parameters> + </callback> + <callback name="GLBaseMemoryAllocatorMapFunction" c:type="GstGLBaseMemoryAllocatorMapFunction" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Also see gst_memory_map();</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the mapped pointer</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemory</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstMapInfo to map with</doc> + <type name="Gst.MapInfo" c:type="GstMapInfo*"/> + </parameter> + <parameter name="maxsize" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the size to map</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </callback> + <callback name="GLBaseMemoryAllocatorUnmapFunction" c:type="GstGLBaseMemoryAllocatorUnmapFunction" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Also see gst_memory_unmap();</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstGLBaseMemory</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a #GstMapInfo to map with</doc> + <type name="Gst.MapInfo" c:type="GstMapInfo*"/> + </parameter> + </parameters> + </callback> + <enumeration name="GLBaseMemoryError" glib:type-name="GstGLBaseMemoryError" glib:get-type="gst_gl_base_memory_error_get_type" c:type="GstGLBaseMemoryError" glib:error-domain="gst-gl-base-memory-error-quark"> + <member name="failed" value="0" c:identifier="GST_GL_BASE_MEMORY_ERROR_FAILED" glib:nick="failed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">generic failure</doc> + </member> + <member name="old_libs" value="1" c:identifier="GST_GL_BASE_MEMORY_ERROR_OLD_LIBS" glib:nick="old-libs"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the implementation is too old and doesn't + implement enough features</doc> + </member> + <member name="resource_unavailable" value="2" c:identifier="GST_GL_BASE_MEMORY_ERROR_RESOURCE_UNAVAILABLE" glib:nick="resource-unavailable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">a resource could not be found</doc> + </member> + <function name="quark" c:identifier="gst_gl_base_memory_error_quark"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the quark used for #GstGLBaseMemory in #GError's</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <bitfield name="GLBaseMemoryTransfer" glib:type-name="GstGLBaseMemoryTransfer" glib:get-type="gst_gl_base_memory_transfer_get_type" c:type="GstGLBaseMemoryTransfer"> + <member name="download" value="1048576" c:identifier="GST_GL_BASE_MEMORY_TRANSFER_NEED_DOWNLOAD" glib:nick="download"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the texture needs downloading + to the data pointer</doc> + </member> + <member name="upload" value="2097152" c:identifier="GST_GL_BASE_MEMORY_TRANSFER_NEED_UPLOAD" glib:nick="upload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">the data pointer needs uploading + to the texture</doc> + </member> + </bitfield> + <class name="GLBaseSrc" c:symbol-prefix="gl_base_src" c:type="GstGLBaseSrc" version="1.18" parent="GstBase.PushSrc" abstract="1" glib:type-name="GstGLBaseSrc" glib:get-type="gst_gl_base_src_get_type" glib:type-struct="GLBaseSrcClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.c">#GstGLBaseSrc handles the nitty gritty details of retrieving an OpenGL +context. It also provided some wrappers around #GstBaseSrc's `start()` and +`stop()` virtual methods that ensure an OpenGL context is available and +current in the calling thread.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <virtual-method name="fill_gl_memory"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="GLBaseSrc" c:type="GstGLBaseSrc*"/> + </instance-parameter> + <parameter name="mem" transfer-ownership="none"> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="gl_start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="GLBaseSrc" c:type="GstGLBaseSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="gl_stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <type name="GLBaseSrc" c:type="GstGLBaseSrc*"/> + </instance-parameter> + </parameters> + </virtual-method> + <property name="timestamp-offset" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <field name="parent"> + <type name="GstBase.PushSrc" c:type="GstPushSrc"/> + </field> + <field name="display"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h">the currently configured #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </field> + <field name="context"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h">the currently configured #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="out_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h">the currently configured output #GstVideoInfo</doc> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="out_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h">the currently configured output #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </field> + <field name="running_time"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h">the total running time</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLBaseSrcPrivate" c:type="GstGLBaseSrcPrivate*"/> + </field> + </class> + <record name="GLBaseSrcClass" c:type="GstGLBaseSrcClass" glib:is-gtype-struct-for="GLBaseSrc" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h">The base class for GStreamer GL Video sources.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <field name="parent_class"> + <type name="GstBase.PushSrcClass" c:type="GstPushSrcClass"/> + </field> + <field name="supported_gl_api"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h">the logical-OR of #GstGLAPI's supported by this element</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </field> + <field name="gl_start"> + <callback name="gl_start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="GLBaseSrc" c:type="GstGLBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="gl_stop"> + <callback name="gl_stop"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="GLBaseSrc" c:type="GstGLBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="fill_gl_memory"> + <callback name="fill_gl_memory"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="GLBaseSrc" c:type="GstGLBaseSrc*"/> + </parameter> + <parameter name="mem" transfer-ownership="none"> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GLBaseSrcPrivate" c:type="GstGLBaseSrcPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <record name="GLBuffer" c:type="GstGLBuffer" glib:type-name="GstGLBuffer" glib:get-type="gst_gl_buffer_get_type" c:symbol-prefix="gl_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">GstGLBuffer is a #GstMemory subclass providing support for the mapping of +GL buffers. + +Data is uploaded or downloaded from the GPU as is necessary.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <field name="mem" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">the parent object</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory"/> + </field> + <field name="id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">the buffer id for this memory</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="target" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">the OpenGL target of this texture for binding purposes</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="usage_hints" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">the OpenGL usage hints this buffer was created with</doc> + <type name="guint" c:type="guint"/> + </field> + <function name="init_once" c:identifier="gst_gl_buffer_init_once" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">Initializes the GL Buffer allocator. It is safe to call this function +multiple times. This must be called before any other #GstGLBuffer operation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + </record> + <record name="GLBufferAllocationParams" c:type="GstGLBufferAllocationParams" glib:type-name="GstGLBufferAllocationParams" glib:get-type="gst_gl_buffer_allocation_params_get_type" c:symbol-prefix="gl_buffer_allocation_params"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <field name="parent" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">parent object</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams"/> + </field> + <field name="gl_target" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">the OpenGL target to bind the buffer to</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="gl_usage" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">the OpenGL usage hint to create the buffer with</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <constructor name="new" c:identifier="gst_gl_buffer_allocation_params_new" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">a new #GstGLBufferAllocationParams for allocating OpenGL buffer + objects</doc> + <type name="GLBufferAllocationParams" c:type="GstGLBufferAllocationParams*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="alloc_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">the size in bytes to allocate</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="alloc_params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">the #GstAllocationParams for @tex_id</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="gl_target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">the OpenGL target to allocate</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="gl_usage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">the OpenGL usage hint to allocate with</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + </record> + <class name="GLBufferAllocator" c:symbol-prefix="gl_buffer_allocator" c:type="GstGLBufferAllocator" parent="GLBaseMemoryAllocator" glib:type-name="GstGLBufferAllocator" glib:get-type="gst_gl_buffer_allocator_get_type" glib:type-struct="GLBufferAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">Opaque #GstGLBufferAllocator struct</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <field name="parent"> + <type name="GLBaseMemoryAllocator" c:type="GstGLBaseMemoryAllocator"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLBufferAllocatorClass" c:type="GstGLBufferAllocatorClass" glib:is-gtype-struct-for="GLBufferAllocator"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">The #GstGLBufferAllocatorClass only contains private data</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <field name="parent_class"> + <type name="GLBaseMemoryAllocatorClass" c:type="GstGLBaseMemoryAllocatorClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="GLBufferPool" c:symbol-prefix="gl_buffer_pool" c:type="GstGLBufferPool" parent="Gst.BufferPool" glib:type-name="GstGLBufferPool" glib:get-type="gst_gl_buffer_pool_get_type" glib:type-struct="GLBufferPoolClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">a #GstGLBufferPool is an object that allocates buffers with #GstGLBaseMemory + +A #GstGLBufferPool is created with gst_gl_buffer_pool_new() + +#GstGLBufferPool implements the VideoMeta buffer pool option +%GST_BUFFER_POOL_OPTION_VIDEO_META, the VideoAligment buffer pool option +%GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT as well as the OpenGL specific +%GST_BUFFER_POOL_OPTION_GL_SYNC_META buffer pool option.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h"/> + <constructor name="new" c:identifier="gst_gl_buffer_pool_new"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">a #GstBufferPool that allocates buffers with #GstGLMemory</doc> + <type name="Gst.BufferPool" c:type="GstBufferPool*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">the #GstGLContext to use</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </constructor> + <method name="get_gl_allocation_params" c:identifier="gst_gl_buffer_pool_get_gl_allocation_params" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">The returned #GstGLAllocationParams will by %NULL before the first successful +call to gst_buffer_pool_set_config(). Subsequent successful calls to +gst_buffer_pool_set_config() will cause this function to return a new +#GstGLAllocationParams which may or may not contain the same information.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">a copy of the #GstGLAllocationParams being used by the @pool</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">the #GstGLBufferPool</doc> + <type name="GLBufferPool" c:type="GstGLBufferPool*"/> + </instance-parameter> + </parameters> + </method> + <field name="bufferpool"> + <type name="Gst.BufferPool" c:type="GstBufferPool"/> + </field> + <field name="context"> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLBufferPoolPrivate" c:type="GstGLBufferPoolPrivate*"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLBufferPoolClass" c:type="GstGLBufferPoolClass" glib:is-gtype-struct-for="GLBufferPool"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h">The #GstGLBufferPoolClass structure contains only private data</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h"/> + <field name="parent_class"> + <type name="Gst.BufferPoolClass" c:type="GstBufferPoolClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GLBufferPoolPrivate" c:type="GstGLBufferPoolPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <class name="GLColorConvert" c:symbol-prefix="gl_color_convert" c:type="GstGLColorConvert" parent="Gst.Object" glib:type-name="GstGLColorConvert" glib:get-type="gst_gl_color_convert_get_type" glib:type-struct="GLColorConvertClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">#GstGLColorConvert is an object that converts between color spaces and/or +formats using OpenGL Shaders. + +A #GstGLColorConvert can be created with gst_gl_color_convert_new(), the +configuration negotiated with gst_gl_color_convert_transform_caps() and the +conversion performed with gst_gl_color_convert_perform(). + +The glcolorconvertelement provides a GStreamer element that uses +#GstGLColorConvert to convert between video formats and color spaces.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <constructor name="new" c:identifier="gst_gl_color_convert_new" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a new #GstGLColorConvert object</doc> + <type name="GLColorConvert" c:type="GstGLColorConvert*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </constructor> + <function name="fixate_caps" c:identifier="gst_gl_color_convert_fixate_caps" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">Provides an implementation of #GstBaseTransformClass.fixate_caps()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">the fixated #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a #GstGLContext to use for transforming @caps</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a #GstPadDirection</doc> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">the #GstCaps of @direction</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="other" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">the #GstCaps to fixate</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="transform_caps" c:identifier="gst_gl_color_convert_transform_caps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">Provides an implementation of #GstBaseTransformClass.transform_caps()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">the converted #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a #GstGLContext to use for transforming @caps</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a #GstPadDirection</doc> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">the #GstCaps to transform</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a set of filter #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <method name="decide_allocation" c:identifier="gst_gl_color_convert_decide_allocation" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">Provides an implementation of #GstBaseTransformClass.decide_allocation()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">whether the allocation parameters were successfully chosen</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a #GstGLColorConvert</doc> + <type name="GLColorConvert" c:type="GstGLColorConvert*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a completed ALLOCATION #GstQuery</doc> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </method> + <method name="perform" c:identifier="gst_gl_color_convert_perform" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">Converts the data contained by @inbuf using the formats specified by the +#GstCaps passed to gst_gl_color_convert_set_caps()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a converted #GstBuffer or %NULL</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a #GstGLColorConvert</doc> + <type name="GLColorConvert" c:type="GstGLColorConvert*"/> + </instance-parameter> + <parameter name="inbuf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">the #GstGLMemory filled #GstBuffer to convert</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="set_caps" c:identifier="gst_gl_color_convert_set_caps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">Initializes @convert with the information required for conversion.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="convert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">a #GstGLColorConvert</doc> + <type name="GLColorConvert" c:type="GstGLColorConvert*"/> + </instance-parameter> + <parameter name="in_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">input #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="out_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.c">output #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="context" readable="0" private="1"> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="in_info" readable="0" private="1"> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="out_info" readable="0" private="1"> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="initted" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="passthrough" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="inbuf" readable="0" private="1"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="outbuf" readable="0" private="1"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="fbo" readable="0" private="1"> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </field> + <field name="shader" readable="0" private="1"> + <type name="GLShader" c:type="GstGLShader*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLColorConvertPrivate" c:type="GstGLColorConvertPrivate*"/> + </field> + <field name="_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLColorConvertClass" c:type="GstGLColorConvertClass" glib:is-gtype-struct-for="GLColorConvert"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h">The #GstGLColorConvertClass struct only contains private data</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <field name="object_class" readable="0" private="1"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GLColorConvertPrivate" c:type="GstGLColorConvertPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <enumeration name="GLConfigCaveat" version="1.20" glib:type-name="GstGLConfigCaveat" glib:get-type="gst_gl_config_caveat_get_type" c:type="GstGLConfigCaveat"> + <member name="none" value="0" c:identifier="GST_GL_CONFIG_CAVEAT_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">none</doc> + </member> + <member name="slow" value="1" c:identifier="GST_GL_CONFIG_CAVEAT_SLOW" glib:nick="slow"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">slow</doc> + </member> + <member name="non_conformant" value="2" c:identifier="GST_GL_CONFIG_CAVEAT_NON_CONFORMANT" glib:nick="non-conformant"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">non-conformant</doc> + </member> + <function name="to_string" c:identifier="gst_gl_config_caveat_to_string" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.c">a string version of @caveat or %NULL if @caveat does not + exist.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="caveat" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.c">the #GstGLConfigCaveat</doc> + <type name="GLConfigCaveat" c:type="GstGLConfigCaveat"/> + </parameter> + </parameters> + </function> + </enumeration> + <bitfield name="GLConfigSurfaceType" version="1.20" glib:type-name="GstGLConfigSurfaceType" glib:get-type="gst_gl_config_surface_type_get_type" c:type="GstGLConfigSurfaceType"> + <member name="none" value="0" c:identifier="GST_GL_CONFIG_SURFACE_TYPE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">none</doc> + </member> + <member name="window" value="1" c:identifier="GST_GL_CONFIG_SURFACE_TYPE_WINDOW" glib:nick="window"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">window</doc> + </member> + <member name="pbuffer" value="2" c:identifier="GST_GL_CONFIG_SURFACE_TYPE_PBUFFER" glib:nick="pbuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">pbuffer</doc> + </member> + <member name="pixmap" value="4" c:identifier="GST_GL_CONFIG_SURFACE_TYPE_PIXMAP" glib:nick="pixmap"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">pixmap</doc> + </member> + <function name="to_string" c:identifier="gst_gl_config_surface_type_to_string" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.c">a string version of @caveat or %NULL if @surface_type does not + exist.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="surface_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.c">the #GstGLConfigSurfaceType</doc> + <type name="GLConfigSurfaceType" c:type="GstGLConfigSurfaceType"/> + </parameter> + </parameters> + </function> + </bitfield> + <class name="GLContext" c:symbol-prefix="gl_context" c:type="GstGLContext" parent="Gst.Object" abstract="1" glib:type-name="GstGLContext" glib:get-type="gst_gl_context_get_type" glib:type-struct="GLContextClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">#GstGLContext wraps an OpenGL context object in a uniform API. As a result +of the limitation on OpenGL context, this object is not thread safe unless +specified and must only be activated in a single thread. + +Environment variables: +- `GST_GL_API`: select which OpenGL API to create and OpenGL context for. + Depending on the platform, the available values are + 'opengl', 'opengl3' (core profile), and 'gles2'. See the + the #GstGLAPI enumeration for more details. +- `GST_GL_PLATFORM`: select which OpenGL platform to create an OpenGL + context with. Depending on the platform and the + dependencies available build-time, the available values + are, 'glx', 'egl', 'cgl', 'wgl', and 'eagl' +- `GST_GL_CONFIG`: select the configuration used for creating the OpenGL + context and OpenGL surface. Written out as a GstStructure + that has been serialized to string. e.g. + `GST_GL_CONFIG="gst-gl-context-config,red-size=8,green-size=8,blue-size=8,alpha-size=8,depth-size=16"`. + Not all platforms will support the same level of + functionality.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <constructor name="new" c:identifier="gst_gl_context_new" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Create a new #GstGLContext with the specified @display</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a new #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </return-value> + <parameters> + <parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_wrapped" c:identifier="gst_gl_context_new_wrapped" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Wraps an existing OpenGL context into a #GstGLContext. + +Note: The caller is responsible for ensuring that the OpenGL context +represented by @handle stays alive while the returned #GstGLContext is +active. + +@context_type must not be %GST_GL_PLATFORM_NONE or %GST_GL_PLATFORM_ANY + +@available_apis must not be %GST_GL_API_NONE or %GST_GL_API_ANY</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext wrapping @handle</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </return-value> + <parameters> + <parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </parameter> + <parameter name="handle" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the OpenGL context to wrap</doc> + <type name="guintptr" c:type="guintptr"/> + </parameter> + <parameter name="context_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLPlatform specifying the type of context in @handle</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </parameter> + <parameter name="available_apis" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLAPI containing the available OpenGL apis in @handle</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + </parameters> + </constructor> + <function name="default_get_proc_address" c:identifier="gst_gl_context_default_get_proc_address" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">A default implementation of the various GetProcAddress functions that looks +for @name in the OpenGL shared libraries or in the current process. + +See also: gst_gl_context_get_proc_address()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">an address pointing to @name or %NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="gl_api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLAPI</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">then function to get the address of</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_current" c:identifier="gst_gl_context_get_current" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">See also gst_gl_context_activate().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the #GstGLContext active in the current thread or %NULL</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </return-value> + </function> + <function name="get_current_gl_api" c:identifier="gst_gl_context_get_current_gl_api" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">If an error occurs, @major and @minor are not modified and %GST_GL_API_NONE is +returned.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">The version supported by the OpenGL context current in the calling + thread or %GST_GL_API_NONE</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </return-value> + <parameters> + <parameter name="platform" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the #GstGLPlatform to retrieve the API for</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </parameter> + <parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the major version</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the minor version</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="get_current_gl_context" c:identifier="gst_gl_context_get_current_gl_context" version="1.6"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">The OpenGL context handle current in the calling thread or %NULL</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <parameter name="context_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLPlatform specifying the type of context to retrieve</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </parameter> + </parameters> + </function> + <function name="get_proc_address_with_platform" c:identifier="gst_gl_context_get_proc_address_with_platform" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Attempts to use the @context_type specific GetProcAddress implementations +to retrieve @name. + +See also gst_gl_context_get_proc_address().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a function pointer for @name, or %NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="context_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLPlatform</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </parameter> + <parameter name="gl_api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLAPI</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the name of the function to retrieve</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <virtual-method name="activate" invoker="activate" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">(De)activate the OpenGL context represented by this @context. + +In OpenGL terms, calls eglMakeCurrent or similar with this context and the +currently set window. See gst_gl_context_set_window() for details.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Whether the activation succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="activate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">%TRUE to activate, %FALSE to deactivate</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="check_feature" invoker="check_feature" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Check for an OpenGL @feature being supported. + +Note: Most features require that the context be created before it is +possible to determine their existence and so will fail if that is not the +case.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Whether @feature is supported by @context</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a platform specific feature</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="choose_format" throws="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="create_context" throws="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="gl_api" transfer-ownership="none"> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + <parameter name="other_context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="destroy_context"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_config" invoker="get_config" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Retrieve the OpenGL configuration for this context. The context must +have been successfully created for this function to return a valid value. + +Not all implementations currently support retrieving the config and will +return %NULL when not supported.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the configuration chosen for this OpenGL context.</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_gl_api" invoker="get_gl_api" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Get the currently enabled OpenGL api. + +The currently available API may be limited by the #GstGLDisplay in use and/or +the #GstGLWindow chosen.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the available OpenGL api</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_gl_context" invoker="get_gl_context" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Gets the backing OpenGL context used by @context.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">The platform specific backing OpenGL context</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_gl_platform" invoker="get_gl_platform" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Gets the OpenGL platform that used by @context.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">The platform specific backing OpenGL context</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_gl_platform_version" invoker="get_gl_platform_version"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Get the version of the OpenGL platform (GLX, EGL, etc) used. Only valid +after a call to gst_gl_context_create().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">return for the major version</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">return for the minor version</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="request_config" invoker="request_config" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Set the OpenGL configuration for this context. The context must not +have been created for this function to succeed. Setting a %NULL +@config has the affect of removing any specific configuration request. + +Not all implementations currently support retrieving the config and this +function will return FALSE when not supported. + +Note that calling this function may cause a subsequent +gst_gl_context_create() to fail if @config could not be matched with +the platform-specific configuration. + +Note that the actual config used may be differ from the requested values.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">whether @gl_config could be successfully set on @context</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="gl_config" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a configuration structure for + configuring the OpenGL context</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="swap_buffers" invoker="swap_buffers"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Swap the front and back buffers on the window attached to @context. +This will display the frame on the next refresh cycle.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="activate" c:identifier="gst_gl_context_activate" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">(De)activate the OpenGL context represented by this @context. + +In OpenGL terms, calls eglMakeCurrent or similar with this context and the +currently set window. See gst_gl_context_set_window() for details.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Whether the activation succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="activate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">%TRUE to activate, %FALSE to deactivate</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="can_share" c:identifier="gst_gl_context_can_share" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Note: This will always fail for two wrapped #GstGLContext's</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">whether @context and @other_context are able to share OpenGL + resources.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="other_context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">another #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <method name="check_feature" c:identifier="gst_gl_context_check_feature" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Check for an OpenGL @feature being supported. + +Note: Most features require that the context be created before it is +possible to determine their existence and so will fail if that is not the +case.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Whether @feature is supported by @context</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a platform specific feature</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="check_framebuffer_status" c:identifier="gst_gl_context_check_framebuffer_status" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">Must be called with @context current.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">whether whether the current framebuffer is complete</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="fbo_target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">the GL value of the framebuffer target, GL_FRAMEBUFFER, + GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="check_gl_version" c:identifier="gst_gl_context_check_gl_version" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">whether OpenGL context implements the required api and specified +version.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">api type required</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + <parameter name="maj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">major version required</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="min" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">minor version required</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="clear_framebuffer" c:identifier="gst_gl_context_clear_framebuffer" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">Unbind the current framebuffer</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="clear_shader" c:identifier="gst_gl_context_clear_shader"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Clear's the currently set shader from the GL state machine. + +Note: must be called in the GL thread.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="create" c:identifier="gst_gl_context_create" version="1.4" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Creates an OpenGL context with the specified @other_context as a context +to share shareable OpenGL objects with. See the OpenGL specification for +what is shared between OpenGL contexts. + +Since 1.20, the configuration can be overriden with the environment variable +`GST_GL_CONFIG` which is a stringified #GstStructure as would be returned +from gst_gl_context_get_config(). If `GST_GL_CONFIG` is not set, then the +config will be chosen from @other_context by calling +gst_gl_context_get_config() on @other_context. Otherwise, a default +configuration is used. + +Calling gst_gl_context_request_config()) before calling +gst_gl_context_create() will override the config from @other_context but +will not override the `GST_GL_CONFIG` environment variable. + +If an error occurs, and @error is not %NULL, then @error will contain +details of the error and %FALSE will be returned. + +Should only be called once.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">whether the context could successfully be created</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="other_context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext to share OpenGL objects with</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <method name="destroy" c:identifier="gst_gl_context_destroy" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Destroys an OpenGL context. + +Should only be called after gst_gl_context_create() has been successfully +called for this context.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="fill_info" c:identifier="gst_gl_context_fill_info" version="1.6" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Fills @context's info (version, extensions, vtable, etc) from the GL +context in the current thread. Typically used with wrapped contexts to +allow wrapped contexts to be used as regular #GstGLContext's.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_config" c:identifier="gst_gl_context_get_config" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Retrieve the OpenGL configuration for this context. The context must +have been successfully created for this function to return a valid value. + +Not all implementations currently support retrieving the config and will +return %NULL when not supported.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the configuration chosen for this OpenGL context.</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_display" c:identifier="gst_gl_context_get_display" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the #GstGLDisplay associated with this @context</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_gl_api" c:identifier="gst_gl_context_get_gl_api" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Get the currently enabled OpenGL api. + +The currently available API may be limited by the #GstGLDisplay in use and/or +the #GstGLWindow chosen.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the available OpenGL api</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_gl_context" c:identifier="gst_gl_context_get_gl_context" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Gets the backing OpenGL context used by @context.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">The platform specific backing OpenGL context</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_gl_platform" c:identifier="gst_gl_context_get_gl_platform" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Gets the OpenGL platform that used by @context.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">The platform specific backing OpenGL context</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_gl_platform_version" c:identifier="gst_gl_context_get_gl_platform_version"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Get the version of the OpenGL platform (GLX, EGL, etc) used. Only valid +after a call to gst_gl_context_create().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">return for the major version</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">return for the minor version</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_gl_version" c:identifier="gst_gl_context_get_gl_version" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Returns the OpenGL version implemented by @context. See +gst_gl_context_get_gl_api() for retrieving the OpenGL api implemented by +@context.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="maj" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">resulting major version</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="min" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">resulting minor version</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_proc_address" c:identifier="gst_gl_context_get_proc_address" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Get a function pointer to a specified opengl function, @name. If the the +specific function does not exist, NULL is returned instead. + +Platform specific functions (names starting 'egl', 'glX', 'wgl', etc) can also +be retrieved using this method. + +Note: This function may return valid function pointers that may not be valid +to call in @context. The caller is responsible for ensuring that the +returned function is a valid function to call in @context by either checking +the OpenGL API and version or for an appropriate OpenGL extension. + +Note: On success, you need to cast the returned function pointer to the +correct type to be able to call it correctly. On 32-bit Windows, this will +include the `GSTGLAPI` identifier to use the correct calling convention. +e.g. + +|[<!-- language="C" --> +void (GSTGLAPI *PFN_glGetIntegerv) (GLenum name, GLint * ret) +]|</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a function pointer or %NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">an opengl function name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_thread" c:identifier="gst_gl_context_get_thread" version="1.6"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">The #GThread, @context is current in or NULL</doc> + <type name="GLib.Thread" c:type="GThread*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_window" c:identifier="gst_gl_context_get_window" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the currently set window</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_shared" c:identifier="gst_gl_context_is_shared" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Whether the #GstGLContext has been shared with another #GstGLContext</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="request_config" c:identifier="gst_gl_context_request_config" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Set the OpenGL configuration for this context. The context must not +have been created for this function to succeed. Setting a %NULL +@config has the affect of removing any specific configuration request. + +Not all implementations currently support retrieving the config and this +function will return FALSE when not supported. + +Note that calling this function may cause a subsequent +gst_gl_context_create() to fail if @config could not be matched with +the platform-specific configuration. + +Note that the actual config used may be differ from the requested values.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">whether @gl_config could be successfully set on @context</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="gl_config" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a configuration structure for + configuring the OpenGL context</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="set_shared_with" c:identifier="gst_gl_context_set_shared_with" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Will internally set @context as shared with @share</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a wrapped #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="share" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">another #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <method name="set_window" c:identifier="gst_gl_context_set_window" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Set's the current window on @context to @window. The window can only be +changed before gst_gl_context_create() has been called and the @window is not +already running.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Whether the window was successfully updated</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="window" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </method> + <method name="supports_glsl_profile_version" c:identifier="gst_gl_context_supports_glsl_profile_version"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">Whether @context supports the combination of @version with @profile</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </method> + <method name="supports_precision" c:identifier="gst_gl_context_supports_precision" version="1.16"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">whether @context supports the 'precision' specifier in GLSL shaders</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </method> + <method name="supports_precision_highp" c:identifier="gst_gl_context_supports_precision_highp" version="1.16"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">whether @context supports the 'precision highp' specifier in GLSL shaders</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </method> + <method name="swap_buffers" c:identifier="gst_gl_context_swap_buffers"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Swap the front and back buffers on the window attached to @context. +This will display the frame on the next refresh cycle.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="thread_add" c:identifier="gst_gl_context_thread_add" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Execute @func in the OpenGL thread of @context with @data + +MT-safe</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContextThreadFunc</doc> + <type name="GLContextThreadFunc" c:type="GstGLContextThreadFunc"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">user data to call @func with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="display" readable="0" private="1"> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </field> + <field name="window" readable="0" private="1"> + <type name="GLWindow" c:type="GstGLWindow*"/> + </field> + <field name="gl_vtable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">a list of OpenGL function pointers</doc> + <type name="GLFuncs" c:type="GstGLFuncs*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLContextPrivate" c:type="GstGLContextPrivate*"/> + </field> + <field name="_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLContextClass" c:type="GstGLContextClass" glib:is-gtype-struct-for="GLContext"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <field name="parent_class"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="get_current_context"> + <callback name="get_current_context"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="guintptr" c:type="guintptr"/> + </return-value> + </callback> + </field> + <field name="get_gl_context"> + <callback name="get_gl_context"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">The platform specific backing OpenGL context</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_gl_api"> + <callback name="get_gl_api"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the available OpenGL api</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_gl_platform"> + <callback name="get_gl_platform"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">The platform specific backing OpenGL context</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext:</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_proc_address"> + <callback name="get_proc_address"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="gl_api" transfer-ownership="none"> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="activate"> + <callback name="activate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Whether the activation succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="activate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">%TRUE to activate, %FALSE to deactivate</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="choose_format"> + <callback name="choose_format" throws="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_context"> + <callback name="create_context" throws="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="gl_api" transfer-ownership="none"> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + <parameter name="other_context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="destroy_context"> + <callback name="destroy_context"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="swap_buffers"> + <callback name="swap_buffers"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="check_feature"> + <callback name="check_feature"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">Whether @feature is supported by @context</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="feature" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a platform specific feature</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_gl_platform_version"> + <callback name="get_gl_platform_version"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">return for the major version</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">return for the minor version</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_config"> + <callback name="get_config"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the configuration chosen for this OpenGL context.</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="request_config"> + <callback name="request_config"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">whether @gl_config could be successfully set on @context</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="gl_config" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">a configuration structure for + configuring the OpenGL context</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="GLContextError" glib:type-name="GstGLContextError" glib:get-type="gst_gl_context_error_get_type" c:type="GstGLContextError" glib:error-domain="gst-gl-context-error-quark"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">OpenGL context errors.</doc> + <member name="failed" value="0" c:identifier="GST_GL_CONTEXT_ERROR_FAILED" glib:nick="failed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">Failed for an unspecified reason</doc> + </member> + <member name="wrong_config" value="1" c:identifier="GST_GL_CONTEXT_ERROR_WRONG_CONFIG" glib:nick="wrong-config"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">The configuration requested is not correct</doc> + </member> + <member name="wrong_api" value="2" c:identifier="GST_GL_CONTEXT_ERROR_WRONG_API" glib:nick="wrong-api"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">The OpenGL API requested is not correct</doc> + </member> + <member name="old_libs" value="3" c:identifier="GST_GL_CONTEXT_ERROR_OLD_LIBS" glib:nick="old-libs"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">The OpenGL libraries are too old</doc> + </member> + <member name="create_context" value="4" c:identifier="GST_GL_CONTEXT_ERROR_CREATE_CONTEXT" glib:nick="create-context"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">glXCreateContext (or similar) failed</doc> + </member> + <member name="resource_unavailable" value="5" c:identifier="GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE" glib:nick="resource-unavailable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">A resource is not available</doc> + </member> + <function name="quark" c:identifier="gst_gl_context_error_quark"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the quark used for #GstGLContext in #GError's</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <record name="GLContextPrivate" c:type="GstGLContextPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <callback name="GLContextThreadFunc" c:type="GstGLContextThreadFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">Represents a function to run in the GL thread with @context and @data</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="GLDisplay" c:symbol-prefix="gl_display" c:type="GstGLDisplay" parent="Gst.Object" glib:type-name="GstGLDisplay" glib:get-type="gst_gl_display_get_type" glib:type-struct="GLDisplayClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">#GstGLDisplay represents a connection to the underlying windowing system. +Elements are required to make use of #GstContext to share and propagate +a #GstGLDisplay. + +There are a number of environment variables that influence the choice of +platform and window system specific functionality. +- GST_GL_WINDOW influences the window system to use. Common values are + 'x11', 'wayland', 'win32' or 'cocoa'. +- GST_GL_PLATFORM influences the OpenGL platform to use. Common values are + 'egl', 'glx', 'wgl' or 'cgl'. +- GST_GL_API influences the OpenGL API requested by the OpenGL platform. + Common values are 'opengl', 'opengl3' and 'gles2'. + +> Certain window systems require a special function to be called to +> initialize threading support. As this GStreamer GL library does not preclude +> concurrent access to the windowing system, it is strongly advised that +> applications ensure that threading support has been initialized before any +> other toolkit/library functionality is accessed. Failure to do so could +> result in sudden application abortion during execution. The most notably +> example of such a function is X11's XInitThreads\().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <constructor name="new" c:identifier="gst_gl_display_new" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a new #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </return-value> + </constructor> + <constructor name="new_with_type" c:identifier="gst_gl_display_new_with_type" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">Will always return a #GstGLDisplay of a single type. This differs from +gst_gl_display_new() and the seemingly equivalent call +gst_gl_display_new_with_type (GST_GL_DISPLAY_TYPE_ANY) in that the latter +may return NULL.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a new #GstGLDisplay or %NULL if @type is + not supported</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">#GstGLDisplayType</doc> + <type name="GLDisplayType" c:type="GstGLDisplayType"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="create_window" invoker="create_window"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a new #GstGLWindow for @display or %NULL.</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_handle" invoker="get_handle" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">the native handle for the display</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="add_context" c:identifier="gst_gl_display_add_context" version="1.6"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">whether @context was successfully added. %FALSE may be returned +if there already exists another context for @context's active thread. + +Must be called with the object lock held.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <method name="create_context" c:identifier="gst_gl_display_create_context" version="1.6" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">It requires the display's object lock to be held.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">whether a new context could be created.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + <parameter name="other_context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">other #GstGLContext to share resources with.</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="p_context" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">resulting #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext**"/> + </parameter> + </parameters> + </method> + <method name="create_window" c:identifier="gst_gl_display_create_window"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a new #GstGLWindow for @display or %NULL.</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + </parameters> + </method> + <method name="ensure_context" c:identifier="gst_gl_display_ensure_context" version="1.24" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">Ensures that the display has a valid GL context for the current thread. If +@context already contains a valid context, this does nothing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">wether @context contains a valid context.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + <parameter name="other_context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">other #GstGLContext to share resources with.</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="context" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">the resulting #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext**"/> + </parameter> + </parameters> + </method> + <method name="filter_gl_api" c:identifier="gst_gl_display_filter_gl_api"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">limit the use of OpenGL to the requested @gl_api. This is intended to allow +application and elements to request a specific set of OpenGL API's based on +what they support. See gst_gl_context_get_gl_api() for the retrieving the +API supported by a #GstGLContext.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + <parameter name="gl_api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLAPI to filter with</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + </parameters> + </method> + <method name="find_window" c:identifier="gst_gl_display_find_window" version="1.12" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">Execute @compare_func over the list of windows stored by @display. The +first argument to @compare_func is the #GstGLWindow being checked and the +second argument is @data.</doc> + <doc-deprecated xml:space="preserve">Use gst_gl_display_retrieve_window() instead.</doc-deprecated> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">The first #GstGLWindow that causes a match + from @compare_func</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">some data to pass to @compare_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="compare_func" transfer-ownership="none" scope="call"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a comparison function to run</doc> + <type name="GLib.CompareFunc" c:type="GCompareFunc"/> + </parameter> + </parameters> + </method> + <method name="get_gl_api" c:identifier="gst_gl_display_get_gl_api"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">see gst_gl_display_filter_gl_api() for what the returned value represents</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">the #GstGLAPI configured for @display</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_gl_api_unlocked" c:identifier="gst_gl_display_get_gl_api_unlocked"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <type name="GLAPI" c:type="GstGLAPI"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_gl_context_for_thread" c:identifier="gst_gl_display_get_gl_context_for_thread" version="1.6"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">the #GstGLContext current on @thread or %NULL + +Must be called with the object lock held.</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + <parameter name="thread" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GThread</doc> + <type name="GLib.Thread" c:type="GThread*"/> + </parameter> + </parameters> + </method> + <method name="get_handle" c:identifier="gst_gl_display_get_handle" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">the native handle for the display</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_handle_type" c:identifier="gst_gl_display_get_handle_type" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">the #GstGLDisplayType of @display</doc> + <type name="GLDisplayType" c:type="GstGLDisplayType"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_context" c:identifier="gst_gl_display_remove_context" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">Must be called with the object lock held.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">the #GstGLContext to remove</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <method name="remove_window" c:identifier="gst_gl_display_remove_window" version="1.12"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">if @window could be removed from @display</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLWindow to remove</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </method> + <method name="retrieve_window" c:identifier="gst_gl_display_retrieve_window" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">Execute @compare_func over the list of windows stored by @display. The +first argument to @compare_func is the #GstGLWindow being checked and the +second argument is @data.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">The first #GstGLWindow that causes a match + from @compare_func</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </return-value> + <parameters> + <instance-parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">some data to pass to @compare_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="compare_func" transfer-ownership="none" scope="call"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a comparison function to run</doc> + <type name="GLib.CompareFunc" c:type="GCompareFunc"/> + </parameter> + </parameters> + </method> + <field name="object" readable="0" private="1"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="type" readable="0" private="1"> + <type name="GLDisplayType" c:type="GstGLDisplayType"/> + </field> + <field name="windows" readable="0" private="1"> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </field> + <field name="main_context" readable="0" private="1"> + <type name="GLib.MainContext" c:type="GMainContext*"/> + </field> + <field name="main_loop" readable="0" private="1"> + <type name="GLib.MainLoop" c:type="GMainLoop*"/> + </field> + <field name="event_source" readable="0" private="1"> + <type name="GLib.Source" c:type="GSource*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLDisplayPrivate" c:type="GstGLDisplayPrivate*"/> + </field> + <glib:signal name="create-context" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">Overrides the @GstGLContext creation mechanism. +It can be called in any thread and it is emitted with +display's object lock held.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">the new context.</doc> + <type name="GLContext"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">other context to share resources with.</doc> + <type name="GLContext"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="GLDisplayClass" c:type="GstGLDisplayClass" glib:is-gtype-struct-for="GLDisplay"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <field name="object_class"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="get_handle"> + <callback name="get_handle"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">the native handle for the display</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_window"> + <callback name="create_window"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a new #GstGLWindow for @display or %NULL.</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </return-value> + <parameters> + <parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GLDisplayPrivate" c:type="GstGLDisplayPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <bitfield name="GLDisplayType" glib:type-name="GstGLDisplayType" glib:get-type="gst_gl_display_type_get_type" c:type="GstGLDisplayType"> + <member name="none" value="0" c:identifier="GST_GL_DISPLAY_TYPE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">no display type</doc> + </member> + <member name="x11" value="1" c:identifier="GST_GL_DISPLAY_TYPE_X11" glib:nick="x11"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">X11 display</doc> + </member> + <member name="wayland" value="2" c:identifier="GST_GL_DISPLAY_TYPE_WAYLAND" glib:nick="wayland"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">Wayland display</doc> + </member> + <member name="cocoa" value="4" c:identifier="GST_GL_DISPLAY_TYPE_COCOA" glib:nick="cocoa"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">Cocoa display</doc> + </member> + <member name="win32" value="8" c:identifier="GST_GL_DISPLAY_TYPE_WIN32" glib:nick="win32"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">Win32 display</doc> + </member> + <member name="dispmanx" value="16" c:identifier="GST_GL_DISPLAY_TYPE_DISPMANX" glib:nick="dispmanx"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">Dispmanx display</doc> + </member> + <member name="egl" value="32" c:identifier="GST_GL_DISPLAY_TYPE_EGL" glib:nick="egl"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">EGL display</doc> + </member> + <member name="viv_fb" value="64" c:identifier="GST_GL_DISPLAY_TYPE_VIV_FB" glib:nick="viv-fb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">Vivante Framebuffer display</doc> + </member> + <member name="gbm" value="128" c:identifier="GST_GL_DISPLAY_TYPE_GBM" glib:nick="gbm"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">Mesa3D GBM display</doc> + </member> + <member name="egl_device" value="256" c:identifier="GST_GL_DISPLAY_TYPE_EGL_DEVICE" glib:nick="egl-device"> + </member> + <member name="eagl" value="512" c:identifier="GST_GL_DISPLAY_TYPE_EAGL" glib:nick="eagl"> + </member> + <member name="winrt" value="1024" c:identifier="GST_GL_DISPLAY_TYPE_WINRT" glib:nick="winrt"> + </member> + <member name="android" value="2048" c:identifier="GST_GL_DISPLAY_TYPE_ANDROID" glib:nick="android"> + </member> + <member name="any" value="4294967295" c:identifier="GST_GL_DISPLAY_TYPE_ANY" glib:nick="any"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">any display type</doc> + </member> + </bitfield> + <class name="GLFilter" c:symbol-prefix="gl_filter" c:type="GstGLFilter" parent="GLBaseFilter" glib:type-name="GstGLFilter" glib:get-type="gst_gl_filter_get_type" glib:type-struct="GLFilterClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">#GstGLFilter helps to implement simple OpenGL filter elements taking a +single input and producing a single output with a #GstGLFramebuffer</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <function name="add_rgba_pad_templates" c:identifier="gst_gl_filter_add_rgba_pad_templates"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="klass" transfer-ownership="none"> + <type name="GLFilterClass" c:type="GstGLFilterClass*"/> + </parameter> + </parameters> + </function> + <virtual-method name="filter"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="GLFilter" c:type="GstGLFilter*"/> + </instance-parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="filter_texture" invoker="filter_texture" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">Calls filter_texture vfunc with correctly mapped #GstGLMemorys</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">whether the transformation succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">a #GstGLFilter</doc> + <type name="GLFilter" c:type="GstGLFilter*"/> + </instance-parameter> + <parameter name="input" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">an input buffer</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + <parameter name="output" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">an output buffer</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="init_fbo"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="GLFilter" c:type="GstGLFilter*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="set_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="GLFilter" c:type="GstGLFilter*"/> + </instance-parameter> + <parameter name="incaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="outcaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="transform_internal_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="GLFilter" c:type="GstGLFilter*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="filter_caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <method name="draw_fullscreen_quad" c:identifier="gst_gl_filter_draw_fullscreen_quad" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">Render a fullscreen quad using the current GL state. The only GL state this +modifies is the necessary vertex/index buffers and, if necessary, a +Vertex Array Object for drawing a fullscreen quad. Framebuffer state, +any shaders, viewport state, etc must be setup by the caller.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">a #GstGLFilter</doc> + <type name="GLFilter" c:type="GstGLFilter*"/> + </instance-parameter> + </parameters> + </method> + <method name="filter_texture" c:identifier="gst_gl_filter_filter_texture" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">Calls filter_texture vfunc with correctly mapped #GstGLMemorys</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">whether the transformation succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">a #GstGLFilter</doc> + <type name="GLFilter" c:type="GstGLFilter*"/> + </instance-parameter> + <parameter name="input" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">an input buffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="output" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">an output buffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="render_to_target" c:identifier="gst_gl_filter_render_to_target" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">Transforms @input into @output using @func on through FBO.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">the return value of @func</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">a #GstGLFilter</doc> + <type name="GLFilter" c:type="GstGLFilter*"/> + </instance-parameter> + <parameter name="input" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">the input texture</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + <parameter name="output" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">the output texture</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">the function to transform @input into @output. called with @data</doc> + <type name="GLFilterRenderFunc" c:type="GstGLFilterRenderFunc"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">the data associated with @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="render_to_target_with_shader" c:identifier="gst_gl_filter_render_to_target_with_shader" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">Transforms @input into @output using @shader with a FBO. + +See also: gst_gl_filter_render_to_target()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">a #GstGLFilter</doc> + <type name="GLFilter" c:type="GstGLFilter*"/> + </instance-parameter> + <parameter name="input" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">the input texture</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + <parameter name="output" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">the output texture</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + <parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">the shader to use.</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="GLBaseFilter" c:type="GstGLBaseFilter"/> + </field> + <field name="in_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">the video info for input buffers</doc> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="out_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">the video info for output buffers</doc> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="in_texture_target"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">The texture target of the input buffers (usually 2D)</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </field> + <field name="out_texture_target"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">The texture target of the output buffers (usually 2D)</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </field> + <field name="out_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">the output #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </field> + <field name="fbo"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">#GstGLFramebuffer object used for transformations (only for subclass usage)</doc> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </field> + <field name="gl_result" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="inbuf" readable="0" private="1"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="outbuf" readable="0" private="1"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="default_shader" readable="0" private="1"> + <type name="GLShader" c:type="GstGLShader*"/> + </field> + <field name="valid_attributes" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="vao" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="vbo_indices" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="vertex_buffer" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="draw_attr_position_loc" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="draw_attr_texture_loc" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLFilterClass" c:type="GstGLFilterClass" glib:is-gtype-struct-for="GLFilter"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <field name="parent_class"> + <type name="GLBaseFilterClass" c:type="GstGLBaseFilterClass"/> + </field> + <field name="set_caps"> + <callback name="set_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="GLFilter" c:type="GstGLFilter*"/> + </parameter> + <parameter name="incaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="outcaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="filter"> + <callback name="filter"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="GLFilter" c:type="GstGLFilter*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="filter_texture"> + <callback name="filter_texture"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">whether the transformation succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">a #GstGLFilter</doc> + <type name="GLFilter" c:type="GstGLFilter*"/> + </parameter> + <parameter name="input" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">an input buffer</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + <parameter name="output" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">an output buffer</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="init_fbo"> + <callback name="init_fbo"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="GLFilter" c:type="GstGLFilter*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform_internal_caps"> + <callback name="transform_internal_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="GLFilter" c:type="GstGLFilter*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="filter_caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="GLFilterRenderFunc" c:type="GstGLFilterRenderFunc" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">whether the render succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">the #GstGLFilter</doc> + <type name="GLFilter" c:type="GstGLFilter*"/> + </parameter> + <parameter name="in_tex" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">the input #GstGLMemory to render</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <enumeration name="GLFormat" glib:type-name="GstGLFormat" glib:get-type="gst_gl_format_get_type" c:type="GstGLFormat"> + <member name="luminance" value="6409" c:identifier="GST_GL_LUMINANCE" glib:nick="luminance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Single component replicated across R, G, and B textures + components</doc> + </member> + <member name="alpha" value="6406" c:identifier="GST_GL_ALPHA" glib:nick="alpha"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Single component stored in the A texture component</doc> + </member> + <member name="luminance_alpha" value="6410" c:identifier="GST_GL_LUMINANCE_ALPHA" glib:nick="luminance-alpha"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Combination of #GST_GL_LUMINANCE and #GST_GL_ALPHA</doc> + </member> + <member name="red" value="6403" c:identifier="GST_GL_RED" glib:nick="red"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Single component stored in the R texture component</doc> + </member> + <member name="r8" value="33321" c:identifier="GST_GL_R8" glib:nick="r8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Single 8-bit component stored in the R texture component</doc> + </member> + <member name="rg" value="33319" c:identifier="GST_GL_RG" glib:nick="rg"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Two components stored in the R and G texture components</doc> + </member> + <member name="rg8" value="33323" c:identifier="GST_GL_RG8" glib:nick="rg8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Two 8-bit components stored in the R and G texture components</doc> + </member> + <member name="rgb" value="6407" c:identifier="GST_GL_RGB" glib:nick="rgb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Three components stored in the R, G, and B texture components</doc> + </member> + <member name="rgb8" value="32849" c:identifier="GST_GL_RGB8" glib:nick="rgb8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Three 8-bit components stored in the R, G, and B + texture components</doc> + </member> + <member name="rgb565" value="36194" c:identifier="GST_GL_RGB565" glib:nick="rgb565"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Three components of bit depth 5, 6 and 5 stored in the R, G, + and B texture components respectively.</doc> + </member> + <member name="rgb16" value="32852" c:identifier="GST_GL_RGB16" glib:nick="rgb16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Three 16-bit components stored in the R, G, and B + texture components</doc> + </member> + <member name="rgba" value="6408" c:identifier="GST_GL_RGBA" glib:nick="rgba"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Four components stored in the R, G, B, and A texture + components respectively.</doc> + </member> + <member name="rgba8" value="32856" c:identifier="GST_GL_RGBA8" glib:nick="rgba8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Four 8-bit components stored in the R, G, B, and A texture + components respectively.</doc> + </member> + <member name="rgba16" value="32859" c:identifier="GST_GL_RGBA16" glib:nick="rgba16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Four 16-bit components stored in the R, G, B, and A texture + components respectively.</doc> + </member> + <member name="depth_component16" value="33189" c:identifier="GST_GL_DEPTH_COMPONENT16" glib:nick="depth-component16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">A single 16-bit component for depth information.</doc> + </member> + <member name="depth24_stencil8" value="35056" c:identifier="GST_GL_DEPTH24_STENCIL8" glib:nick="depth24-stencil8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">A 24-bit component for depth information and + a 8-bit component for stencil informat.</doc> + </member> + <member name="rgb10_a2" value="32857" c:identifier="GST_GL_RGB10_A2" glib:nick="rgb10-a2"> + </member> + <member name="r16" value="33322" c:identifier="GST_GL_R16" glib:nick="r16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Single 16-bit component stored in the R texture component</doc> + </member> + <member name="rg16" value="33324" c:identifier="GST_GL_RG16" glib:nick="rg16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">Two 16-bit components stored in the R and G texture components</doc> + </member> + <function name="from_video_info" c:identifier="gst_gl_format_from_video_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the #GstGLFormat necessary for holding the data in @plane of @vinfo</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="vinfo" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstVideoInfo</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the plane number in @vinfo</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="is_supported" c:identifier="gst_gl_format_is_supported" version="1.16"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">Whether @format is supported by @context based on the OpenGL API, + version, or available OpenGL extension/s.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the #GstGLFormat to check is supported by @context</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + </parameters> + </function> + <function name="type_from_sized_gl_format" c:identifier="gst_gl_format_type_from_sized_gl_format" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">Get the unsized format and type from @format for usage in glReadPixels, +glTex{Sub}Image*, glTexImage* and similar functions.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the sized internal #GstGLFormat</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="unsized_format" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">location for the resulting unsized #GstGLFormat</doc> + <type name="GLFormat" c:type="GstGLFormat*"/> + </parameter> + <parameter name="gl_type" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">location for the resulting GL type</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="type_n_bytes" c:identifier="gst_gl_format_type_n_bytes"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the number of bytes the specified @format, @type combination takes +per pixel</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the OpenGL format, `GL_RGBA`, `GL_LUMINANCE`, etc</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the OpenGL type, `GL_UNSIGNED_BYTE`, `GL_FLOAT`, etc</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + </enumeration> + <class name="GLFramebuffer" c:symbol-prefix="gl_framebuffer" c:type="GstGLFramebuffer" version="1.10" parent="Gst.Object" glib:type-name="GstGLFramebuffer" glib:get-type="gst_gl_framebuffer_get_type" glib:type-struct="GLFramebufferClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">A #GstGLFramebuffer represents and holds an OpenGL framebuffer object with +it's associated attachments. + +A #GstGLFramebuffer can be created with gst_gl_framebuffer_new() or +gst_gl_framebuffer_new_with_default_depth() and bound with +gst_gl_framebuffer_bind(). Other resources can be bound with +gst_gl_framebuffer_attach() + +Note: OpenGL framebuffers are not shareable resources so cannot be used +between multiple OpenGL contexts.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <constructor name="new" c:identifier="gst_gl_framebuffer_new" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">This function will internally create an OpenGL framebuffer object and must +be called on @context's OpenGL thread.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a new #GstGLFramebuffer</doc> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_with_default_depth" c:identifier="gst_gl_framebuffer_new_with_default_depth" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">This function will internally create an OpenGL framebuffer object and must +be called on @context's OpenGL thread.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a new #GstGLFramebuffer with a depth buffer of @width and @height</doc> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">width for the depth buffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">for the depth buffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <method name="attach" c:identifier="gst_gl_framebuffer_attach" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">attach @mem to @attachment_point + +Must be called with the same OpenGL context current that @fb was created +with.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="fb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a #GstGLFramebuffer</doc> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </instance-parameter> + <parameter name="attachment_point" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">the OpenGL attachment point to bind @mem to</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">the memory object to bind to @attachment_point</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </parameter> + </parameters> + </method> + <method name="bind" c:identifier="gst_gl_framebuffer_bind" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">Bind @fb into the current thread + +Must be called with the same OpenGL context current that @fb was created +with.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="fb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a #GstGLFramebuffer</doc> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="draw_to_texture" c:identifier="gst_gl_framebuffer_draw_to_texture" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">Perform the steps necessary to have the output of a glDraw* command in +@func update the contents of @mem. + +Note: this function does not map @mem for writing with OpenGL and that must +be done manually by the caller using any of the mapping functions such as +gst_memory_map() with the map flags %GST_MAP_WRITE | %GST_MAP_GL. + +Must be called with the same OpenGL context current that @fb was created +with.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">the result of executing @func</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="fb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a #GstGLFramebuffer</doc> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </instance-parameter> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">the #GstGLMemory to draw to</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">the function to run</doc> + <type name="GLFramebufferFunc" c:type="GstGLFramebufferFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">data to pass to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="get_effective_dimensions" c:identifier="gst_gl_framebuffer_get_effective_dimensions" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">Retrieve the effective dimensions from the current attachments attached to +@fb.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="fb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a #GstGLFramebuffer</doc> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </instance-parameter> + <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">output width</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">output height</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_id" c:identifier="gst_gl_framebuffer_get_id" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">the OpenGL id for @fb</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="fb" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.c">a #GstGLFramebuffer</doc> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </instance-parameter> + </parameters> + </method> + <field name="object" readable="0" private="1"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="context" readable="0" private="1"> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="fbo_id" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="attachments" readable="0" private="1"> + <array name="GLib.Array" c:type="GArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLFramebufferPrivate" c:type="GstGLFramebufferPrivate*"/> + </field> + </class> + <record name="GLFramebufferClass" c:type="GstGLFramebufferClass" glib:is-gtype-struct-for="GLFramebuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h">Opaque #GstGLFramebufferClass struct</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <field name="object_class" readable="0" private="1"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <callback name="GLFramebufferFunc" c:type="GstGLFramebufferFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h">callback definition for operating through a #GstGLFramebuffer object</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="stuff" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="GLFramebufferPrivate" c:type="GstGLFramebufferPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + </record> + <record name="GLFuncs" c:type="GstGLFuncs" disguised="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">Structure containing function pointers to OpenGL functions. + +Each field is named exactly the same as the OpenGL function without the +`gl` prefix.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <record name="GLMemory" c:type="GstGLMemory" glib:type-name="GstGLMemory" glib:get-type="gst_gl_memory_get_type" c:symbol-prefix="gl_memory"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">GstGLMemory is a #GstGLBaseMemory subclass providing support for the mapping of +OpenGL textures. + +#GstGLMemory is created or wrapped through gst_gl_base_memory_alloc() +with #GstGLVideoAllocationParams. + +Data is uploaded or downloaded from the GPU as is necessary. + +The #GstCaps that is used for #GstGLMemory based buffers should contain +the %GST_CAPS_FEATURE_MEMORY_GL_MEMORY as a #GstCapsFeatures and should +contain a 'texture-target' field with one of the #GstGLTextureTarget values +as a string, i.e. some combination of 'texture-target=(string){2D, +rectangle, external-oes}'.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <field name="mem" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the parent #GstGLBaseMemory object</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory"/> + </field> + <field name="tex_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the GL texture id for this memory</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="tex_target" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the GL texture target for this memory</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </field> + <field name="tex_format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the texture type</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </field> + <field name="info" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the texture's #GstVideoInfo</doc> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="valign" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">data alignment for system memory mapping</doc> + <type name="GstVideo.VideoAlignment" c:type="GstVideoAlignment"/> + </field> + <field name="plane" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">data plane in @info</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="tex_scaling" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">GL shader scaling parameters for @valign and/or width/height</doc> + <array zero-terminated="0" fixed-size="2"> + <type name="gfloat" c:type="gfloat"/> + </array> + </field> + <field name="texture_wrapped" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="unpack_length" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="tex_width" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="copy_into" c:identifier="gst_gl_memory_copy_into" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Copies @gl_mem into the texture specified by @tex_id. The format of @tex_id +is specified by @tex_format, @width and @height.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Whether the copy succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLMemory</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + <parameter name="tex_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">OpenGL texture id</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + <parameter name="tex_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLFormat</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">width of @tex_id</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">height of @tex_id</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="copy_teximage" c:identifier="gst_gl_memory_copy_teximage" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Copies the texture in #GstGLMemory into the texture specified by @tex_id, +@out_target, @out_tex_format, @out_width and @out_height.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">whether the copy succeeded.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="src" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the source #GstGLMemory</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + <parameter name="tex_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the destination texture id</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="out_target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the destination #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + <parameter name="out_tex_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the destination #GstGLFormat</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="out_width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the destination width</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="out_height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the destination height</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_texture_format" c:identifier="gst_gl_memory_get_texture_format" version="1.12"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLFormat of @gl_mem</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLMemory</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_texture_height" c:identifier="gst_gl_memory_get_texture_height" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the texture height of @gl_mem</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLMemory</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_texture_id" c:identifier="gst_gl_memory_get_texture_id" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the OpenGL texture handle of @gl_mem</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLMemory</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_texture_target" c:identifier="gst_gl_memory_get_texture_target" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLTextureTarget of @gl_mem</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLMemory</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_texture_width" c:identifier="gst_gl_memory_get_texture_width" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the texture width of @gl_mem</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLMemory</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_gl_memory_init" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Initializes @mem with the required parameters. @info is assumed to have +already have been modified with gst_video_info_align().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLBaseMemory to initialize</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstAllocator to initialize with</doc> + <type name="Gst.Allocator" c:type="GstAllocator*"/> + </parameter> + <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the parent #GstMemory to initialize with</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLContext to initialize with</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLTextureTarget for this #GstGLMemory</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + <parameter name="tex_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLFormat for this #GstGLMemory</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the @GstAllocationParams to initialize with</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstVideoInfo for this #GstGLMemory</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the plane number (starting from 0) for this #GstGLMemory</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="valign" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">optional #GstVideoAlignment parameters</doc> + <type name="GstVideo.VideoAlignment" c:type="const GstVideoAlignment*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">user data to call @notify with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="read_pixels" c:identifier="gst_gl_memory_read_pixels" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Reads the texture in #GstGLMemory into @write_pointer if no buffer is bound +to `GL_PIXEL_PACK_BUFFER`. Otherwise @write_pointer is the byte offset into +the currently bound `GL_PIXEL_PACK_BUFFER` buffer to store the result of +glReadPixels. See the OpenGL specification for glReadPixels for more +details.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">whether theread operation succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLMemory</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + <parameter name="write_pointer" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the data pointer to pass to glReadPixels</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="texsubimage" c:identifier="gst_gl_memory_texsubimage" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Reads the texture in @read_pointer into @gl_mem. + +See gst_gl_memory_read_pixels() for what @read_pointer signifies.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLMemory</doc> + <type name="GLMemory" c:type="GstGLMemory*"/> + </instance-parameter> + <parameter name="read_pointer" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the data pointer to pass to glTexSubImage</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <function name="init_once" c:identifier="gst_gl_memory_init_once" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Initializes the GL Base Texture allocator. It is safe to call this function +multiple times. This must be called before any other GstGLMemory operation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="setup_buffer" c:identifier="gst_gl_memory_setup_buffer" version="1.8" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">whether the buffer was correctly setup</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the @GstGLMemoryAllocator to allocate from</doc> + <type name="GLMemoryAllocator" c:type="GstGLMemoryAllocator*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstBuffer to setup</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLVideoAllocationParams to allocate with</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </parameter> + <parameter name="tex_formats" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c"> + a list of #GstGLFormat's to allocate with.</doc> + <array length="5" zero-terminated="0" c:type="GstGLFormat*"> + <type name="GLFormat" c:type="GstGLFormat"/> + </array> + </parameter> + <parameter name="wrapped_data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c"> + a list of wrapped data pointers</doc> + <array length="5" zero-terminated="0" c:type="gpointer*"> + <type name="gpointer"/> + </array> + </parameter> + <parameter name="n_wrapped_pointers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the number of elements in @tex_formats and @wrapped_data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + </record> + <class name="GLMemoryAllocator" c:symbol-prefix="gl_memory_allocator" c:type="GstGLMemoryAllocator" parent="GLBaseMemoryAllocator" glib:type-name="GstGLMemoryAllocator" glib:get-type="gst_gl_memory_allocator_get_type" glib:type-struct="GLMemoryAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">Opaque #GstGLMemoryAllocator struct</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <function name="get_default" c:identifier="gst_gl_memory_allocator_get_default" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the default #GstGLMemoryAllocator supported by + @context</doc> + <type name="GLMemoryAllocator" c:type="GstGLMemoryAllocator*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </function> + <field name="parent" readable="0" private="1"> + <type name="GLBaseMemoryAllocator" c:type="GstGLBaseMemoryAllocator"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLMemoryAllocatorClass" c:type="GstGLMemoryAllocatorClass" glib:is-gtype-struct-for="GLMemoryAllocator"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="GLBaseMemoryAllocatorClass" c:type="GstGLBaseMemoryAllocatorClass"/> + </field> + <field name="map"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">provide a custom map implementation</doc> + <type name="GLBaseMemoryAllocatorMapFunction" c:type="GstGLBaseMemoryAllocatorMapFunction"/> + </field> + <field name="copy"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">provide a custom copy implementation</doc> + <type name="GLBaseMemoryAllocatorCopyFunction" c:type="GstGLBaseMemoryAllocatorCopyFunction"/> + </field> + <field name="unmap"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">provide a custom unmap implementation</doc> + <type name="GLBaseMemoryAllocatorUnmapFunction" c:type="GstGLBaseMemoryAllocatorUnmapFunction"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GLMemoryPBO" c:type="GstGLMemoryPBO" glib:type-name="GstGLMemoryPBO" glib:get-type="gst_gl_memory_pbo_get_type" c:symbol-prefix="gl_memory_pbo"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">#GstGLMemoryPBO is created or wrapped through gst_gl_base_memory_alloc() +with #GstGLVideoAllocationParams. + +Data is uploaded or downloaded from the GPU as is necessary.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <field name="mem" readable="0" private="1"> + <type name="GLMemory" c:type="GstGLMemory"/> + </field> + <field name="pbo" readable="0" private="1"> + <type name="GLBuffer" c:type="GstGLBuffer*"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="copy_into_texture" c:identifier="gst_gl_memory_pbo_copy_into_texture" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">Copies @gl_mem into the texture specified by @tex_id. The format of @tex_id +is specified by @tex_format, @width and @height. + +If @respecify is %TRUE, then the copy is performed in terms of the texture +data. This is useful for splitting RGBA textures into RG or R textures or +vice versa. The requirement for this to succeed is that the backing texture +data must be the same size, i.e. say a RGBA8 texture is converted into a RG8 +texture, then the RG texture must have twice as many pixels available for +output as the RGBA texture. + +Otherwise, if @respecify is %FALSE, then the copy is performed per texel +using glCopyTexImage. See the OpenGL specification for details on the +mappings between texture formats.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">Whether the copy succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">a #GstGLMemoryPBO</doc> + <type name="GLMemoryPBO" c:type="GstGLMemoryPBO*"/> + </instance-parameter> + <parameter name="tex_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">the destination texture id</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">the destination #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + <parameter name="tex_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">the destination #GstGLFormat</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">width of @tex_id</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">height of @tex_id</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="stride" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">stride of the backing texture data</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="respecify" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">whether to copy the data or copy per texel</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="download_transfer" c:identifier="gst_gl_memory_pbo_download_transfer" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">Transfer the texture data from the texture into the PBO if necessary.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">a #GstGLMemoryPBO</doc> + <type name="GLMemoryPBO" c:type="GstGLMemoryPBO*"/> + </instance-parameter> + </parameters> + </method> + <method name="upload_transfer" c:identifier="gst_gl_memory_pbo_upload_transfer" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">Transfer the texture data from the PBO into the texture if necessary.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">a #GstGLMemoryPBO</doc> + <type name="GLMemoryPBO" c:type="GstGLMemoryPBO*"/> + </instance-parameter> + </parameters> + </method> + <function name="init_once" c:identifier="gst_gl_memory_pbo_init_once"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + </record> + <class name="GLMemoryPBOAllocator" c:symbol-prefix="gl_memory_pbo_allocator" c:type="GstGLMemoryPBOAllocator" parent="GLMemoryAllocator" glib:type-name="GstGLMemoryPBOAllocator" glib:get-type="gst_gl_memory_pbo_allocator_get_type" glib:type-struct="GLMemoryPBOAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h">Opaque #GstGLMemoryPBOAllocator struct</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <field name="parent"> + <type name="GLMemoryAllocator" c:type="GstGLMemoryAllocator"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLMemoryPBOAllocatorClass" c:type="GstGLMemoryPBOAllocatorClass" glib:is-gtype-struct-for="GLMemoryPBOAllocator"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h">Only contains private data</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <field name="parent_class"> + <type name="GLMemoryAllocatorClass" c:type="GstGLMemoryAllocatorClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="GLOverlayCompositor" c:symbol-prefix="gl_overlay_compositor" c:type="GstGLOverlayCompositor" parent="Gst.Object" glib:type-name="GstGLOverlayCompositor" glib:get-type="gst_gl_overlay_compositor_get_type" glib:type-struct="GLOverlayCompositorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h">Opaque #GstGLOverlayCompositor object</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <constructor name="new" c:identifier="gst_gl_overlay_compositor_new"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <return-value transfer-ownership="none"> + <type name="GLOverlayCompositor" c:type="GstGLOverlayCompositor*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </constructor> + <function name="add_caps" c:identifier="gst_gl_overlay_compositor_add_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <method name="draw_overlays" c:identifier="gst_gl_overlay_compositor_draw_overlays"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="compositor" transfer-ownership="none"> + <type name="GLOverlayCompositor" c:type="GstGLOverlayCompositor*"/> + </instance-parameter> + </parameters> + </method> + <method name="free_overlays" c:identifier="gst_gl_overlay_compositor_free_overlays"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="compositor" transfer-ownership="none"> + <type name="GLOverlayCompositor" c:type="GstGLOverlayCompositor*"/> + </instance-parameter> + </parameters> + </method> + <method name="upload_overlays" c:identifier="gst_gl_overlay_compositor_upload_overlays"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="compositor" transfer-ownership="none"> + <type name="GLOverlayCompositor" c:type="GstGLOverlayCompositor*"/> + </instance-parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <property name="yinvert" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="context" readable="0" private="1"> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="last_window_width" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="last_window_height" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="overlays" readable="0" private="1"> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </field> + <field name="shader" readable="0" private="1"> + <type name="GLShader" c:type="GstGLShader*"/> + </field> + <field name="position_attrib" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="texcoord_attrib" readable="0" private="1"> + <type name="gint" c:type="gint"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLOverlayCompositorClass" c:type="GstGLOverlayCompositorClass" glib:is-gtype-struct-for="GLOverlayCompositor"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <field name="object_class"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="GLPlatform" glib:type-name="GstGLPlatform" glib:get-type="gst_gl_platform_get_type" c:type="GstGLPlatform"> + <member name="none" value="0" c:identifier="GST_GL_PLATFORM_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">no platform</doc> + </member> + <member name="egl" value="1" c:identifier="GST_GL_PLATFORM_EGL" glib:nick="egl"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">the EGL platform used primarily with the X11, wayland + and android window systems as well as on embedded Linux</doc> + </member> + <member name="glx" value="2" c:identifier="GST_GL_PLATFORM_GLX" glib:nick="glx"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">the GLX platform used primarily with the X11 window system</doc> + </member> + <member name="wgl" value="4" c:identifier="GST_GL_PLATFORM_WGL" glib:nick="wgl"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">the WGL platform used primarily on Windows</doc> + </member> + <member name="cgl" value="8" c:identifier="GST_GL_PLATFORM_CGL" glib:nick="cgl"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">the CGL platform used primarily on OS X</doc> + </member> + <member name="eagl" value="16" c:identifier="GST_GL_PLATFORM_EAGL" glib:nick="eagl"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">the EAGL platform used primarily on iOS</doc> + </member> + <member name="any" value="4294967295" c:identifier="GST_GL_PLATFORM_ANY" glib:nick="any"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">any OpenGL platform</doc> + </member> + <function name="from_string" c:identifier="gst_gl_platform_from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">The #GstGLPlatform represented by @platform_s</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </return-value> + <parameters> + <parameter name="platform_s" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">a space separated string of OpenGL platformss</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="to_string" c:identifier="gst_gl_platform_to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">A space separated string of the OpenGL platforms enabled in @platform</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="platform" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">a #GstGLPlatform to stringify</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </parameter> + </parameters> + </function> + </bitfield> + <record name="GLQuery" c:type="GstGLQuery" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">A #GstGLQuery represents and holds an OpenGL query object. Various types of +queries can be run or counters retrieved.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <field name="context" readable="0" private="1"> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="query_type" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="query_id" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="supported" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="start_called" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="debug" readable="0" private="1"> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="counter" c:identifier="gst_gl_query_counter" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">Record the result of a counter</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLQuery</doc> + <type name="GLQuery" c:type="GstGLQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="end" c:identifier="gst_gl_query_end" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">End counting the query</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLQuery</doc> + <type name="GLQuery" c:type="GstGLQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_gl_query_free" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">Frees a #GstGLQuery</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLQuery</doc> + <type name="GLQuery" c:type="GstGLQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="init" c:identifier="gst_gl_query_init" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLQuery</doc> + <type name="GLQuery" c:type="GstGLQuery*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="query_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">the #GstGLQueryType</doc> + <type name="GLQueryType" c:type="GstGLQueryType"/> + </parameter> + </parameters> + </method> + <method name="result" c:identifier="gst_gl_query_result" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">the result of the query</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLQuery</doc> + <type name="GLQuery" c:type="GstGLQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="start" c:identifier="gst_gl_query_start" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">Start counting the query</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLQuery</doc> + <type name="GLQuery" c:type="GstGLQuery*"/> + </instance-parameter> + </parameters> + </method> + <method name="unset" c:identifier="gst_gl_query_unset" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">Free any dynamically allocated resources</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLQuery</doc> + <type name="GLQuery" c:type="GstGLQuery*"/> + </instance-parameter> + </parameters> + </method> + <function name="local_gl_context" c:identifier="gst_gl_query_local_gl_context"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">Performs a GST_QUERY_CONTEXT query of type "gst.gl.local_context" on all +#GstPads in @element of @direction for the local OpenGL context used by +GStreamer elements.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">whether @context_ptr contains a #GstGLContext</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstElement to query from</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">the #GstPadDirection to query</doc> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="context_ptr" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">location containing the current and/or resulting + #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext**"/> + </parameter> + </parameters> + </function> + <function name="new" c:identifier="gst_gl_query_new" version="1.10" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">Free with gst_gl_query_free()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a new #GstGLQuery</doc> + <type name="GLQuery" c:type="GstGLQuery*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="query_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">the #GstGLQueryType to create</doc> + <type name="GLQueryType" c:type="GstGLQueryType"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="GLQueryType" glib:type-name="GstGLQueryType" glib:get-type="gst_gl_query_type_get_type" c:type="GstGLQueryType"> + <member name="none" value="0" c:identifier="GST_GL_QUERY_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h">no query</doc> + </member> + <member name="time_elapsed" value="1" c:identifier="GST_GL_QUERY_TIME_ELAPSED" glib:nick="time-elapsed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h">query the time elapsed</doc> + </member> + <member name="timestamp" value="2" c:identifier="GST_GL_QUERY_TIMESTAMP" glib:nick="timestamp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h">query the current time</doc> + </member> + </enumeration> + <record name="GLRenderbuffer" c:type="GstGLRenderbuffer" version="1.10" glib:type-name="GstGLRenderbuffer" glib:get-type="gst_gl_renderbuffer_get_type" c:symbol-prefix="gl_renderbuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">GstGLRenderbuffer is a #GstGLBaseMemory subclass providing support for +OpenGL renderbuffers. + +#GstGLRenderbuffer is created or wrapped through gst_gl_base_memory_alloc() +with #GstGLRenderbufferAllocationParams.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <field name="mem" readable="0" private="1"> + <type name="GLBaseMemory" c:type="GstGLBaseMemory"/> + </field> + <field name="renderbuffer_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">the GL texture id for this memory</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="renderbuffer_format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">the texture type</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </field> + <field name="width" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">the width</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="height" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">the height</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="renderbuffer_wrapped" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="get_format" c:identifier="gst_gl_renderbuffer_get_format" version="1.12"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the #GstGLFormat of @gl_mem</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a #GstGLRenderbuffer</doc> + <type name="GLRenderbuffer" c:type="GstGLRenderbuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_height" c:identifier="gst_gl_renderbuffer_get_height" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the configured height of @gl_mem</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a #GstGLRenderbuffer</doc> + <type name="GLRenderbuffer" c:type="GstGLRenderbuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_id" c:identifier="gst_gl_renderbuffer_get_id" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the OpenGL renderbuffer handle of @gl_mem</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a #GstGLRenderbuffer</doc> + <type name="GLRenderbuffer" c:type="GstGLRenderbuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_width" c:identifier="gst_gl_renderbuffer_get_width" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the configured width of @gl_mem</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="gl_mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a #GstGLRenderbuffer</doc> + <type name="GLRenderbuffer" c:type="GstGLRenderbuffer*"/> + </instance-parameter> + </parameters> + </method> + <function name="init_once" c:identifier="gst_gl_renderbuffer_init_once" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">Initializes the GL Base Texture allocator. It is safe to call this function +multiple times. This must be called before any other GstGLRenderbuffer operation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + </record> + <record name="GLRenderbufferAllocationParams" c:type="GstGLRenderbufferAllocationParams" glib:type-name="GstGLRenderbufferAllocationParams" glib:get-type="gst_gl_renderbuffer_allocation_params_get_type" c:symbol-prefix="gl_renderbuffer_allocation_params"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">Allocation parameters</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <field name="parent" readable="0" private="1"> + <type name="GLAllocationParams" c:type="GstGLAllocationParams"/> + </field> + <field name="renderbuffer_format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">the #GstGLFormat</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </field> + <field name="width" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">the width</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="height" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">the height</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <constructor name="new" c:identifier="gst_gl_renderbuffer_allocation_params_new" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a new #GstGLRenderbufferAllocationParams for allocating #GstGLRenderbuffer's</doc> + <type name="GLRenderbufferAllocationParams" c:type="GstGLRenderbufferAllocationParams*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="alloc_params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the #GstAllocationParams for sysmem mappings of the texture</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="renderbuffer_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the #GstGLFormat for the created textures</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the width of the renderbuffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the height of the renderbuffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_wrapped" c:identifier="gst_gl_renderbuffer_allocation_params_new_wrapped" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a new #GstGLRenderbufferAllocationParams for wrapping @gl_handle as a + renderbuffer</doc> + <type name="GLRenderbufferAllocationParams" c:type="GstGLRenderbufferAllocationParams*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="alloc_params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the #GstAllocationParams for @tex_id</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="renderbuffer_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the #GstGLFormat for @tex_id</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the width of the renderbuffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the height of the renderbuffer</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="gl_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">the GL handle to wrap</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">user data to call @notify with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + </record> + <class name="GLRenderbufferAllocator" c:symbol-prefix="gl_renderbuffer_allocator" c:type="GstGLRenderbufferAllocator" parent="GLBaseMemoryAllocator" glib:type-name="GstGLRenderbufferAllocator" glib:get-type="gst_gl_renderbuffer_allocator_get_type" glib:type-struct="GLRenderbufferAllocatorClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">Opaque #GstGLRenderbufferAllocator struct</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <field name="parent"> + <type name="GLBaseMemoryAllocator" c:type="GstGLBaseMemoryAllocator"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLRenderbufferAllocatorClass" c:type="GstGLRenderbufferAllocatorClass" glib:is-gtype-struct-for="GLRenderbufferAllocator"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">The #GstGLRenderbufferAllocatorClass only contains private data</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <field name="parent_class"> + <type name="GLBaseMemoryAllocatorClass" c:type="GstGLBaseMemoryAllocatorClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="GLSLError" version="1.8" glib:type-name="GstGLSLError" glib:get-type="gst_glsl_error_get_type" c:type="GstGLSLError" glib:error-domain="gst-glsl-error-quark"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">Compilation stage that caused an error</doc> + <member name="compile" value="0" c:identifier="GST_GLSL_ERROR_COMPILE" glib:nick="compile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">Compilation error occurred</doc> + </member> + <member name="link" value="1" c:identifier="GST_GLSL_ERROR_LINK" glib:nick="link"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">Link error occurred</doc> + </member> + <member name="program" value="2" c:identifier="GST_GLSL_ERROR_PROGRAM" glib:nick="program"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">General program error occurred</doc> + </member> + <function name="quark" c:identifier="gst_glsl_error_quark"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the quark used for GstGLSL in #GError's</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <bitfield name="GLSLProfile" version="1.8" glib:type-name="GstGLSLProfile" glib:get-type="gst_glsl_profile_get_type" c:type="GstGLSLProfile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">GLSL profiles</doc> + <member name="none" value="0" c:identifier="GST_GLSL_PROFILE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">no profile supported/available</doc> + </member> + <member name="es" value="1" c:identifier="GST_GLSL_PROFILE_ES" glib:nick="es"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">OpenGL|ES profile</doc> + </member> + <member name="core" value="2" c:identifier="GST_GLSL_PROFILE_CORE" glib:nick="core"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">OpenGL core profile</doc> + </member> + <member name="compatibility" value="4" c:identifier="GST_GLSL_PROFILE_COMPATIBILITY" glib:nick="compatibility"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">OpenGL compatibility profile</doc> + </member> + <member name="any" value="4294967295" c:identifier="GST_GLSL_PROFILE_ANY" glib:nick="any"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">any OpenGL/OpenGL|ES profile</doc> + </member> + <function name="from_string" c:identifier="gst_glsl_profile_from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the #GstGLSLProfile of @string or %GST_GLSL_PROFILE_NONE on error</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a GLSL version string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="to_string" c:identifier="gst_glsl_profile_to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the name for @profile or %NULL on error</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </function> + </bitfield> + <class name="GLSLStage" c:symbol-prefix="glsl_stage" c:type="GstGLSLStage" parent="Gst.Object" glib:type-name="GstGLSLStage" glib:get-type="gst_glsl_stage_get_type" glib:type-struct="GLSLStageClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">#GstGLSLStage holds and represents a single OpenGL shader stage.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <constructor name="new" c:identifier="gst_glsl_stage_new" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a new #GstGLSLStage of the specified @type</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">the GL enum shader stage type</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_default_fragment" c:identifier="gst_glsl_stage_new_default_fragment" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a new #GstGLSLStage with the default fragment shader</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_default_vertex" c:identifier="gst_glsl_stage_new_default_vertex" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a new #GstGLSLStage with the default vertex shader</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_with_string" c:identifier="gst_glsl_stage_new_with_string" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a new #GstGLSLStage of the specified @type</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">the GL enum shader stage type</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">the #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">the #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a shader string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_with_strings" c:identifier="gst_glsl_stage_new_with_strings" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a new #GstGLSLStage of the specified @type</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">the GL enum shader stage type</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">the #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">the #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + <parameter name="n_strings" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">the number of strings in @str</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c"> + an array of strings concatted together to produce a shader</doc> + <array length="4" zero-terminated="0" c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </constructor> + <method name="compile" c:identifier="gst_glsl_stage_compile" version="1.8" throws="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">whether the compilation succeeded</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLSLStage</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_handle" c:identifier="gst_glsl_stage_get_handle" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">The GL handle for this shader stage</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLSLStage</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_profile" c:identifier="gst_glsl_stage_get_profile" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">The GLSL profile for the current shader stage</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </return-value> + <parameters> + <instance-parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLSLStage</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_shader_type" c:identifier="gst_glsl_stage_get_shader_type" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">The GL shader type for this shader stage</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLSLStage</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_version" c:identifier="gst_glsl_stage_get_version" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">The GLSL version for the current shader stage</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </return-value> + <parameters> + <instance-parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLSLStage</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_strings" c:identifier="gst_glsl_stage_set_strings" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">Replaces the current shader string with @str.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLSLStage</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </instance-parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + <parameter name="n_strings" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">number of strings in @str</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.c">a GLSL shader string</doc> + <array length="2" zero-terminated="0" c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="context" readable="0" private="1"> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLSLStagePrivate" c:type="GstGLSLStagePrivate*"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLSLStageClass" c:type="GstGLSLStageClass" glib:is-gtype-struct-for="GLSLStage"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h">Opaque #GstGLSLStageClass struct</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <field name="parent" readable="0" private="1"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GLSLStagePrivate" c:type="GstGLSLStagePrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <enumeration name="GLSLVersion" version="1.8" glib:type-name="GstGLSLVersion" glib:get-type="gst_glsl_version_get_type" c:type="GstGLSLVersion"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">GLSL version list</doc> + <member name="none" value="0" c:identifier="GST_GLSL_VERSION_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">no version</doc> + </member> + <member name="100" value="100" c:identifier="GST_GLSL_VERSION_100" glib:nick="100"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 100 (only valid for ES)</doc> + </member> + <member name="110" value="110" c:identifier="GST_GLSL_VERSION_110" glib:nick="110"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 110 (only valid for compatibility desktop GL)</doc> + </member> + <member name="120" value="120" c:identifier="GST_GLSL_VERSION_120" glib:nick="120"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 120 (only valid for compatibility desktop GL)</doc> + </member> + <member name="130" value="130" c:identifier="GST_GLSL_VERSION_130" glib:nick="130"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 130 (only valid for compatibility desktop GL)</doc> + </member> + <member name="140" value="140" c:identifier="GST_GLSL_VERSION_140" glib:nick="140"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 140 (only valid for compatibility desktop GL)</doc> + </member> + <member name="150" value="150" c:identifier="GST_GLSL_VERSION_150" glib:nick="150"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 150 (valid for compatibility/core desktop GL)</doc> + </member> + <member name="300" value="300" c:identifier="GST_GLSL_VERSION_300" glib:nick="300"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 300 (only valid for ES)</doc> + </member> + <member name="310" value="310" c:identifier="GST_GLSL_VERSION_310" glib:nick="310"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 310 (only valid for ES)</doc> + </member> + <member name="320" value="320" c:identifier="GST_GLSL_VERSION_320" glib:nick="320"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 320 (only valid for ES)</doc> + </member> + <member name="330" value="330" c:identifier="GST_GLSL_VERSION_330" glib:nick="330"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 330 (valid for compatibility/core desktop GL)</doc> + </member> + <member name="400" value="400" c:identifier="GST_GLSL_VERSION_400" glib:nick="400"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 400 (valid for compatibility/core desktop GL)</doc> + </member> + <member name="410" value="410" c:identifier="GST_GLSL_VERSION_410" glib:nick="410"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 410 (valid for compatibility/core desktop GL)</doc> + </member> + <member name="420" value="420" c:identifier="GST_GLSL_VERSION_420" glib:nick="420"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 420 (valid for compatibility/core desktop GL)</doc> + </member> + <member name="430" value="430" c:identifier="GST_GLSL_VERSION_430" glib:nick="430"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 430 (valid for compatibility/core desktop GL)</doc> + </member> + <member name="440" value="440" c:identifier="GST_GLSL_VERSION_440" glib:nick="440"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 440 (valid for compatibility/core desktop GL)</doc> + </member> + <member name="450" value="450" c:identifier="GST_GLSL_VERSION_450" glib:nick="450"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h">version 450 (valid for compatibility/core desktop GL)</doc> + </member> + <function name="from_string" c:identifier="gst_glsl_version_from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the #GstGLSLVersion of @string or %GST_GLSL_VERSION_NONE on error</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a GLSL version string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="profile_from_string" c:identifier="gst_glsl_version_profile_from_string"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">Note: this function expects either a `#version` GLSL preprocesser directive +or a valid GLSL version and/or profile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">TRUE if a valid `#version` string was found, FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a valid GLSL `#version` string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="version_ret" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">resulting #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion*"/> + </parameter> + <parameter name="profile_ret" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">resulting #GstGLSLVersion</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile*"/> + </parameter> + </parameters> + </function> + <function name="profile_to_string" c:identifier="gst_glsl_version_profile_to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the combined GLSL `#version` string for @version and @profile</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLVersion</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </function> + <function name="to_string" c:identifier="gst_glsl_version_to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the name of @version or %NULL on error</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + </parameters> + </function> + </enumeration> + <function-macro name="GLSL_STAGE" c:identifier="GST_GLSL_STAGE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GLSL_STAGE_CLASS" c:identifier="GST_GLSL_STAGE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <parameters> + <parameter name="k"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GLSL_STAGE_GET_CLASS" c:identifier="GST_GLSL_STAGE_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <class name="GLShader" c:symbol-prefix="gl_shader" c:type="GstGLShader" parent="Gst.Object" glib:type-name="GstGLShader" glib:get-type="gst_gl_shader_get_type" glib:type-struct="GLShaderClass"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <constructor name="new" c:identifier="gst_gl_shader_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a new empty @shader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_default" c:identifier="gst_gl_shader_new_default" version="1.8" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a default @shader or %NULL on failure</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_link_with_stages" c:identifier="gst_gl_shader_new_link_with_stages" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Each stage will attempt to be compiled and attached to @shader. Then +the shader will be linked. On error, %NULL will be returned and @error will +contain the details of the error. + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a new @shader with the specified stages.</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GError</doc> + <type name="GLib.Error" c:type="GError**"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a NULL terminated list of #GstGLSLStage's</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <constructor name="new_with_stages" c:identifier="gst_gl_shader_new_with_stages" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Each stage will attempt to be compiled and attached to @shader. On error, +%NULL will be returned and @error will contain the details of the error. + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a new @shader with the specified stages.</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GError</doc> + <type name="GLib.Error" c:type="GError**"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a NULL terminated list of #GstGLSLStage's</doc> + <varargs/> + </parameter> + </parameters> + </constructor> + <function name="string_fragment_external_oes_get_default" c:identifier="gst_gl_shader_string_fragment_external_oes_get_default" version="1.16"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a passthrough shader string for copying an input external-oes + texture to the output</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </function> + <function name="string_fragment_get_default" c:identifier="gst_gl_shader_string_fragment_get_default" version="1.16"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a passthrough shader string for copying an input texture to + the output</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </function> + <function name="string_get_highest_precision" c:identifier="gst_gl_shader_string_get_highest_precision" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">Generates a shader string that defines the precision of float types in +GLSL shaders. This is particularly needed for fragment shaders in a +GLSL ES context where there is no default precision specified. + +Practically, this will return the string 'precision mediump float' +or 'precision highp float' depending on if high precision floats are +determined to be supported.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a shader string defining the precision of float types based on + @context, @version and @profile</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshaderstrings.c">a #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </function> + <method name="attach" c:identifier="gst_gl_shader_attach" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Attaches @stage to @shader. @stage must have been successfully compiled +with gst_glsl_stage_compile(). + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">whether @stage could be attached to @shader</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLSLStage to attach</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </parameter> + </parameters> + </method> + <method name="attach_unlocked" c:identifier="gst_gl_shader_attach_unlocked" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Attaches @stage to @shader. @stage must have been successfully compiled +with gst_glsl_stage_compile(). + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">whether @stage could be attached to @shader</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLSLStage to attach</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </parameter> + </parameters> + </method> + <method name="bind_attribute_location" c:identifier="gst_gl_shader_bind_attribute_location"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Bind attribute @name to the specified location @index using +`glBindAttributeLocation()`.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">attribute index to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the attribute</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="bind_frag_data_location" c:identifier="gst_gl_shader_bind_frag_data_location"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Bind attribute @name to the specified location @index using +`glBindFragDataLocation()`.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">attribute index to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the attribute</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="compile_attach_stage" c:identifier="gst_gl_shader_compile_attach_stage" version="1.8" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Compiles @stage and attaches it to @shader. + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">whether @stage could be compiled and attached to @shader</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLSLStage to attach</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </parameter> + </parameters> + </method> + <method name="detach" c:identifier="gst_gl_shader_detach" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Detaches @stage from @shader. @stage must have been successfully attached +to @shader with gst_gl_shader_attach() or gst_gl_shader_attach_unlocked(). + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLSLStage to attach</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </parameter> + </parameters> + </method> + <method name="detach_unlocked" c:identifier="gst_gl_shader_detach_unlocked" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Detaches @stage from @shader. @stage must have been successfully attached +to @shader with gst_gl_shader_attach() or gst_gl_shader_attach_unlocked(). + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="stage" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLSLStage to attach</doc> + <type name="GLSLStage" c:type="GstGLSLStage*"/> + </parameter> + </parameters> + </method> + <method name="get_attribute_location" c:identifier="gst_gl_shader_get_attribute_location"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">the attribute index for @name in @shader or -1 on failure</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the attribute</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_program_handle" c:identifier="gst_gl_shader_get_program_handle" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">the GL program handle for this shader</doc> + <type name="gint" c:type="int"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_linked" c:identifier="gst_gl_shader_is_linked" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">whether @shader has been successfully linked</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + </parameters> + </method> + <method name="link" c:identifier="gst_gl_shader_link" version="1.8" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Links the current list of #GstGLSLStage's in @shader. + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">whether @shader could be linked together.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + </parameters> + </method> + <method name="release" c:identifier="gst_gl_shader_release" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Releases the shader and stages. + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + </parameters> + </method> + <method name="release_unlocked" c:identifier="gst_gl_shader_release_unlocked" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Releases the shader and stages. + +Note: must be called in the GL thread</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_uniform_1f" c:identifier="gst_gl_shader_set_uniform_1f"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform1f()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_1fv" c:identifier="gst_gl_shader_set_uniform_1fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform1fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of values to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <array length="1" zero-terminated="0" c:type="const gfloat*"> + <type name="gfloat" c:type="gfloat"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_uniform_1i" c:identifier="gst_gl_shader_set_uniform_1i"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform1i()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_1iv" c:identifier="gst_gl_shader_set_uniform_1iv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform1iv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of values to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <array length="1" zero-terminated="0" c:type="const gint*"> + <type name="gint" c:type="gint"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_uniform_2f" c:identifier="gst_gl_shader_set_uniform_2f"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform2f()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="v0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">first value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + <parameter name="v1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">second value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_2fv" c:identifier="gst_gl_shader_set_uniform_2fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform2fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of values to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <array length="1" zero-terminated="0" c:type="const gfloat*"> + <type name="gfloat" c:type="gfloat"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_uniform_2i" c:identifier="gst_gl_shader_set_uniform_2i"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform2i()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="v0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">first value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="v1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">second value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_2iv" c:identifier="gst_gl_shader_set_uniform_2iv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform2iv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of values to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <array length="1" zero-terminated="0" c:type="const gint*"> + <type name="gint" c:type="gint"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_uniform_3f" c:identifier="gst_gl_shader_set_uniform_3f"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform3f()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="v0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">first value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + <parameter name="v1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">second value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + <parameter name="v2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">third value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_3fv" c:identifier="gst_gl_shader_set_uniform_3fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform3fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of values to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <array length="1" zero-terminated="0" c:type="const gfloat*"> + <type name="gfloat" c:type="gfloat"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_uniform_3i" c:identifier="gst_gl_shader_set_uniform_3i"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform3i()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="v0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">first value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="v1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">second value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="v2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">third value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_3iv" c:identifier="gst_gl_shader_set_uniform_3iv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform3iv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of values to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <array length="1" zero-terminated="0" c:type="const gint*"> + <type name="gint" c:type="gint"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_uniform_4f" c:identifier="gst_gl_shader_set_uniform_4f"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform4f()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="v0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">first value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + <parameter name="v1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">second value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + <parameter name="v2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">third value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + <parameter name="v3" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">fourth value to set</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_4fv" c:identifier="gst_gl_shader_set_uniform_4fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform4fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of values to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <array length="1" zero-terminated="0" c:type="const gfloat*"> + <type name="gfloat" c:type="gfloat"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_uniform_4i" c:identifier="gst_gl_shader_set_uniform_4i"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform4i()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="v0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">first value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="v1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">second value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="v2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">third value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="v3" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">fourth value to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_4iv" c:identifier="gst_gl_shader_set_uniform_4iv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniform4iv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of values to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <array length="1" zero-terminated="0" c:type="const gint*"> + <type name="gint" c:type="gint"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_uniform_matrix_2fv" c:identifier="gst_gl_shader_set_uniform_matrix_2fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniformMatrix2fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of 2x2 matrices to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="transpose" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">transpose the matrix</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">matrix to set</doc> + <type name="gfloat" c:type="const gfloat*"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_matrix_2x3fv" c:identifier="gst_gl_shader_set_uniform_matrix_2x3fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniformMatrix2x3fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of 2x3 matrices to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="transpose" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">transpose the matrix</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <type name="gfloat" c:type="const gfloat*"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_matrix_2x4fv" c:identifier="gst_gl_shader_set_uniform_matrix_2x4fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniformMatrix2x4fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of 2x4 matrices to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="transpose" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">transpose the matrix</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <type name="gfloat" c:type="const gfloat*"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_matrix_3fv" c:identifier="gst_gl_shader_set_uniform_matrix_3fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniformMatrix3fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of 3x3 matrices to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="transpose" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">transpose the matrix</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <type name="gfloat" c:type="const gfloat*"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_matrix_3x2fv" c:identifier="gst_gl_shader_set_uniform_matrix_3x2fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniformMatrix3x2fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of 3x2 matrices to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="transpose" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">transpose the matrix</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <type name="gfloat" c:type="const gfloat*"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_matrix_3x4fv" c:identifier="gst_gl_shader_set_uniform_matrix_3x4fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniformMatrix3x4fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of 3x4 matrices to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="transpose" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">transpose the matrix</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <type name="gfloat" c:type="const gfloat*"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_matrix_4fv" c:identifier="gst_gl_shader_set_uniform_matrix_4fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniformMatrix4fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of 4x4 matrices to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="transpose" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">transpose the matrix</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <type name="gfloat" c:type="const gfloat*"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_matrix_4x2fv" c:identifier="gst_gl_shader_set_uniform_matrix_4x2fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniformMatrix4x2fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of 4x2 matrices to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="transpose" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">transpose the matrix</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <type name="gfloat" c:type="const gfloat*"/> + </parameter> + </parameters> + </method> + <method name="set_uniform_matrix_4x3fv" c:identifier="gst_gl_shader_set_uniform_matrix_4x3fv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Perform `glUniformMatrix4x3fv()` for @name on @shader</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">name of the uniform</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">number of 4x3 matrices to set</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="transpose" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">transpose the matrix</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">values to set</doc> + <type name="gfloat" c:type="const gfloat*"/> + </parameter> + </parameters> + </method> + <method name="use" c:identifier="gst_gl_shader_use"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">Mark's @shader as being used for the next GL draw command. + +Note: must be called in the GL thread and @shader must have been linked.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="shader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.c">a #GstGLShader</doc> + <type name="GLShader" c:type="GstGLShader*"/> + </instance-parameter> + </parameters> + </method> + <property name="linked" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="parent"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="context"> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLShaderPrivate" c:type="GstGLShaderPrivate*"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLShaderClass" c:type="GstGLShaderClass" glib:is-gtype-struct-for="GLShader"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + </record> + <record name="GLShaderPrivate" c:type="GstGLShaderPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <enumeration name="GLStereoDownmix" glib:type-name="GstGLStereoDownmix" glib:get-type="gst_gl_stereo_downmix_get_type" c:type="GstGLStereoDownmix"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h">Output anaglyph type to generate when downmixing to mono</doc> + <member name="green_magenta_dubois" value="0" c:identifier="GST_GL_STEREO_DOWNMIX_ANAGLYPH_GREEN_MAGENTA_DUBOIS" glib:nick="green-magenta-dubois"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h">Dubois optimised Green-Magenta anaglyph</doc> + </member> + <member name="red_cyan_dubois" value="1" c:identifier="GST_GL_STEREO_DOWNMIX_ANAGLYPH_RED_CYAN_DUBOIS" glib:nick="red-cyan-dubois"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h">Dubois optimised Red-Cyan anaglyph</doc> + </member> + <member name="amber_blue_dubois" value="2" c:identifier="GST_GL_STEREO_DOWNMIX_ANAGLYPH_AMBER_BLUE_DUBOIS" glib:nick="amber-blue-dubois"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h">Dubois optimised Amber-Blue anaglyph</doc> + </member> + </enumeration> + <record name="GLSyncMeta" c:type="GstGLSyncMeta"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">#GstGLSyncMeta provides the ability to synchronize the OpenGL command stream +with the CPU or with other OpenGL contexts.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <field name="parent" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h">the parent #GstMeta</doc> + <type name="Gst.Meta" c:type="GstMeta"/> + </field> + <field name="context" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h">the #GstGLContext used to allocate the meta</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h">a custom data pointer for the implementation</doc> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="set_sync"> + <callback name="set_sync"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sync" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_sync_gl"> + <callback name="set_sync_gl"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sync" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="wait"> + <callback name="wait"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sync" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="wait_gl"> + <callback name="wait_gl"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sync" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="wait_cpu"> + <callback name="wait_cpu"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sync" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="wait_cpu_gl"> + <callback name="wait_cpu_gl"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sync" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="copy"> + <callback name="copy"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="sbuffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="dest" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="dbuffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="free"> + <callback name="free"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sync" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="free_gl"> + <callback name="free_gl"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sync" transfer-ownership="none"> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </callback> + </field> + <method name="set_sync_point" c:identifier="gst_gl_sync_meta_set_sync_point" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">Set a sync point to possibly wait on at a later time.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="sync_meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstGLSyncMeta</doc> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <method name="wait" c:identifier="gst_gl_sync_meta_wait" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">Insert a wait into @context's command stream ensuring all previous OpenGL +commands before @sync_meta have completed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="sync_meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstGLSyncMeta</doc> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <method name="wait_cpu" c:identifier="gst_gl_sync_meta_wait_cpu" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">Perform a wait so that the sync point has passed from the CPU's perspective +What that means, is that all GL operations changing CPU-visible data before +the sync point are now visible.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="sync_meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstGLSyncMeta</doc> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <function name="get_info" c:identifier="gst_gl_sync_meta_get_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <enumeration name="GLTextureTarget" version="1.8" glib:type-name="GstGLTextureTarget" glib:get-type="gst_gl_texture_target_get_type" c:type="GstGLTextureTarget"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_enums.h">The OpenGL texture target that an OpenGL texture can be bound to. The +gst_gl_value_set_texture_target_from_mask(), +gst_gl_value_get_texture_target_mask(), and +gst_gl_value_set_texture_target() functions can be used for handling texture +targets with #GValue's when e.g. dealing with #GstCaps.</doc> + <member name="none" value="0" c:identifier="GST_GL_TEXTURE_TARGET_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_enums.h">no texture target</doc> + </member> + <member name="2d" value="1" c:identifier="GST_GL_TEXTURE_TARGET_2D" glib:nick="2d"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_enums.h">2D texture target (`GL_TEXTURE_2D`)</doc> + </member> + <member name="rectangle" value="2" c:identifier="GST_GL_TEXTURE_TARGET_RECTANGLE" glib:nick="rectangle"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_enums.h">rectangle texture target + (`GL_TEXTURE_RECTANGLE`)</doc> + </member> + <member name="external_oes" value="3" c:identifier="GST_GL_TEXTURE_TARGET_EXTERNAL_OES" glib:nick="external-oes"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_enums.h">external oes texture target + (`GL_TEXTURE_EXTERNAL_OES`)</doc> + </member> + <function name="from_gl" c:identifier="gst_gl_texture_target_from_gl"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the #GstGLTextureTarget that's equiavalant to @target or + %GST_GL_TEXTURE_TARGET_NONE</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </return-value> + <parameters> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">an OpenGL texture binding target</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="from_string" c:identifier="gst_gl_texture_target_from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the #GstGLTextureTarget represented by @str or + %GST_GL_TEXTURE_TARGET_NONE</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a string equivalent to one of the GST_GL_TEXTURE_TARGET_*_STR values</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="to_buffer_pool_option" c:identifier="gst_gl_texture_target_to_buffer_pool_option"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a string representing the @GstBufferPoolOption specified by @target</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + </parameters> + </function> + <function name="to_gl" c:identifier="gst_gl_texture_target_to_gl"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the OpenGL value for binding the @target with glBindTexture() and + similar functions or 0</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + </parameters> + </function> + <function name="to_string" c:identifier="gst_gl_texture_target_to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the stringified version of @target or %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + </parameters> + </function> + </enumeration> + <class name="GLUpload" c:symbol-prefix="gl_upload" c:type="GstGLUpload" parent="Gst.Object" glib:type-name="GstGLUpload" glib:get-type="gst_gl_upload_get_type" glib:type-struct="GLUploadClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">#GstGLUpload is an object that uploads data from system memory into GL textures. + +A #GstGLUpload can be created with gst_gl_upload_new()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <constructor name="new" c:identifier="gst_gl_upload_new"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">a new #GstGLUpload object</doc> + <type name="GLUpload" c:type="GstGLUpload*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </constructor> + <function name="get_input_template_caps" c:identifier="gst_gl_upload_get_input_template_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + </function> + <method name="get_caps" c:identifier="gst_gl_upload_get_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="upload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">a #GstGLUpload</doc> + <type name="GLUpload" c:type="GstGLUpload*"/> + </instance-parameter> + <parameter name="in_caps" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">the input #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps**"/> + </parameter> + <parameter name="out_caps" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">the output #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps**"/> + </parameter> + </parameters> + </method> + <method name="perform_with_buffer" c:identifier="gst_gl_upload_perform_with_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">Uploads @buffer using the transformation specified by +gst_gl_upload_set_caps() creating a new #GstBuffer in @outbuf_ptr.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">whether the upload was successful</doc> + <type name="GLUploadReturn" c:type="GstGLUploadReturn"/> + </return-value> + <parameters> + <instance-parameter name="upload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">a #GstGLUpload</doc> + <type name="GLUpload" c:type="GstGLUpload*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">input #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf_ptr" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">resulting #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </method> + <method name="propose_allocation" c:identifier="gst_gl_upload_propose_allocation"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">Adds the required allocation parameters to support uploading.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="upload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">a #GstGLUpload</doc> + <type name="GLUpload" c:type="GstGLUpload*"/> + </instance-parameter> + <parameter name="decide_query" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">a #GstQuery from a decide allocation</doc> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">the proposed allocation query</doc> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </method> + <method name="set_caps" c:identifier="gst_gl_upload_set_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">Initializes @upload with the information required for upload.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">whether @in_caps and @out_caps could be set on @upload</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="upload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">a #GstGLUpload</doc> + <type name="GLUpload" c:type="GstGLUpload*"/> + </instance-parameter> + <parameter name="in_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">input #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="out_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.c">output #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_context" c:identifier="gst_gl_upload_set_context"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="upload" transfer-ownership="none"> + <type name="GLUpload" c:type="GstGLUpload*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <method name="transform_caps" c:identifier="gst_gl_upload_transform_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="upload" transfer-ownership="none"> + <type name="GLUpload" c:type="GstGLUpload*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="context"> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLUploadPrivate" c:type="GstGLUploadPrivate*"/> + </field> + <field name="_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLUploadClass" c:type="GstGLUploadClass" glib:is-gtype-struct-for="GLUpload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h">The #GstGLUploadClass struct only contains private data</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <field name="object_class"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GLUploadPrivate" c:type="GstGLUploadPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <enumeration name="GLUploadReturn" glib:type-name="GstGLUploadReturn" glib:get-type="gst_gl_upload_return_get_type" c:type="GstGLUploadReturn"> + <member name="done" value="1" c:identifier="GST_GL_UPLOAD_DONE" glib:nick="done"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h">No further processing required</doc> + </member> + <member name="error" value="-1" c:identifier="GST_GL_UPLOAD_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h">An unspecified error occurred</doc> + </member> + <member name="unsupported" value="-2" c:identifier="GST_GL_UPLOAD_UNSUPPORTED" glib:nick="unsupported"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h">The configuration is unsupported.</doc> + </member> + <member name="reconfigure" value="-3" c:identifier="GST_GL_UPLOAD_RECONFIGURE" glib:nick="reconfigure"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h">This element requires a reconfiguration.</doc> + </member> + <member name="unshared_gl_context" value="-100" c:identifier="GST_GL_UPLOAD_UNSHARED_GL_CONTEXT" glib:nick="unshared-gl-context"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h">private return value.</doc> + </member> + </enumeration> + <record name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams" glib:type-name="GstGLVideoAllocationParams" glib:get-type="gst_gl_video_allocation_params_get_type" c:symbol-prefix="gl_video_allocation_params"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <field name="parent" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the parent #GstGLAllocationParams structure</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams"/> + </field> + <field name="v_info" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the #GstVideoInfo to allocate</doc> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo*"/> + </field> + <field name="plane" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the video plane index to allocate</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="valign" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the #GstVideoAlignment to align the system representation to (may be %NULL for the default)</doc> + <type name="GstVideo.VideoAlignment" c:type="GstVideoAlignment*"/> + </field> + <field name="target" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the #GstGLTextureTarget to allocate</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </field> + <field name="tex_format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">the #GstGLFormat to allocate</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <constructor name="new" c:identifier="gst_gl_video_allocation_params_new" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a new #GstGLVideoAllocationParams for allocating #GstGLMemory's</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="alloc_params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstAllocationParams for sysmem mappings of the texture</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="v_info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstVideoInfo for the texture</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the video plane of @v_info to allocate</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="valign" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">any #GstVideoAlignment applied to symem mappings of the texture</doc> + <type name="GstVideo.VideoAlignment" c:type="const GstVideoAlignment*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLTextureTarget for the created textures</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + <parameter name="tex_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLFormat for the created textures</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_wrapped_data" c:identifier="gst_gl_video_allocation_params_new_wrapped_data" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a new #GstGLVideoAllocationParams for wrapping @wrapped_data</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="alloc_params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstAllocationParams for @wrapped_data</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="v_info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstVideoInfo for @wrapped_data</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the video plane @wrapped_data represents</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="valign" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">any #GstVideoAlignment applied to symem mappings of @wrapped_data</doc> + <type name="GstVideo.VideoAlignment" c:type="const GstVideoAlignment*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLTextureTarget for @wrapped_data</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + <parameter name="tex_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLFormat for @wrapped_data</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="wrapped_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the data pointer to wrap</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">user data to call @notify with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_wrapped_gl_handle" c:identifier="gst_gl_video_allocation_params_new_wrapped_gl_handle" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">@gl_handle is defined by the specific OpenGL handle being wrapped +For #GstGLMemory and #GstGLMemoryPBO it is an OpenGL texture id. +Other memory types may define it to require a different type of parameter.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a new #GstGLVideoAllocationParams for wrapping @gl_handle</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="alloc_params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstAllocationParams for @tex_id</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="v_info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstVideoInfo for @tex_id</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the video plane @tex_id represents</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="valign" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">any #GstVideoAlignment applied to symem mappings of @tex_id</doc> + <type name="GstVideo.VideoAlignment" c:type="const GstVideoAlignment*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLTextureTarget for @tex_id</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + <parameter name="tex_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLFormat for @tex_id</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="gl_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the GL handle to wrap</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">user data to call @notify with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_wrapped_texture" c:identifier="gst_gl_video_allocation_params_new_wrapped_texture" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a new #GstGLVideoAllocationParams for wrapping @tex_id</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="alloc_params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstAllocationParams for @tex_id</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="v_info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstVideoInfo for @tex_id</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the video plane @tex_id represents</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="valign" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">any #GstVideoAlignment applied to symem mappings of @tex_id</doc> + <type name="GstVideo.VideoAlignment" c:type="const GstVideoAlignment*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLTextureTarget for @tex_id</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + <parameter name="tex_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLFormat for @tex_id</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="tex_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the GL texture to wrap</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">user data to call @notify with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + <method name="copy_data" c:identifier="gst_gl_video_allocation_params_copy_data" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Copy and set any dynamically allocated resources in @dest_vid. Intended +for subclass usage only to chain up at the end of a subclass copy function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="src_vid" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">source #GstGLVideoAllocationParams to copy from</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </instance-parameter> + <parameter name="dest_vid" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">destination #GstGLVideoAllocationParams to copy into</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </parameter> + </parameters> + </method> + <method name="free_data" c:identifier="gst_gl_video_allocation_params_free_data" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Unset and free any dynamically allocated resources. Intended for subclass +usage only to chain up at the end of a subclass free function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLVideoAllocationParams</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </instance-parameter> + </parameters> + </method> + <method name="init_full" c:identifier="gst_gl_video_allocation_params_init_full" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Intended for subclass usage</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">initializes @params with the parameters specified</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLVideoAllocationParams to initialize</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </instance-parameter> + <parameter name="struct_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the size of the struct in @params</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="alloc_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">some allocation flags</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="copy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a copy function</doc> + <type name="GLAllocationParamsCopyFunc" c:type="GstGLAllocationParamsCopyFunc"/> + </parameter> + <parameter name="free" transfer-ownership="none" scope="notified" closure="13" destroy="14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a free function</doc> + <type name="GLAllocationParamsFreeFunc" c:type="GstGLAllocationParamsFreeFunc"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="alloc_params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstAllocationParams for @wrapped_data</doc> + <type name="Gst.AllocationParams" c:type="const GstAllocationParams*"/> + </parameter> + <parameter name="v_info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstVideoInfo for @wrapped_data</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the video plane @wrapped_data represents</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="valign" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">any #GstVideoAlignment applied to symem mappings of @wrapped_data</doc> + <type name="GstVideo.VideoAlignment" c:type="const GstVideoAlignment*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + <parameter name="tex_format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLFormat</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="wrapped_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the optional data pointer to wrap</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="gl_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the optional OpenGL handle to wrap or 0</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">user data to call @notify with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GDestroyNotify</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + </record> + <class name="GLViewConvert" c:symbol-prefix="gl_view_convert" c:type="GstGLViewConvert" parent="Gst.Object" glib:type-name="GstGLViewConvert" glib:get-type="gst_gl_view_convert_get_type" glib:type-struct="GLViewConvertClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">Convert stereoscopic/multiview video using fragment shaders.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <constructor name="new" c:identifier="gst_gl_view_convert_new" version="1.6"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a new #GstGLViewConvert</doc> + <type name="GLViewConvert" c:type="GstGLViewConvert*"/> + </return-value> + </constructor> + <method name="fixate_caps" c:identifier="gst_gl_view_convert_fixate_caps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">Provides an implementation of #GstBaseTransformClass.fixate_caps()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">the fixated #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="viewconvert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstGLViewConvert</doc> + <type name="GLViewConvert" c:type="GstGLViewConvert*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstPadDirection</doc> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">the #GstCaps of @direction</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="othercaps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">the #GstCaps to fixate</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="get_output" c:identifier="gst_gl_view_convert_get_output" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">Retrieve the processed output buffer placing the output in @outbuf_ptr.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="viewconvert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstGLViewConvert</doc> + <type name="GLViewConvert" c:type="GstGLViewConvert*"/> + </instance-parameter> + <parameter name="outbuf_ptr" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </method> + <method name="perform" c:identifier="gst_gl_view_convert_perform" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">Converts the data contained by @inbuf using the formats specified by the +#GstCaps passed to gst_gl_view_convert_set_caps()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a converted #GstBuffer or %NULL</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="viewconvert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstGLViewConvert</doc> + <type name="GLViewConvert" c:type="GstGLViewConvert*"/> + </instance-parameter> + <parameter name="inbuf" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">the #GstGLMemory filled #GstBuffer to convert</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="reset" c:identifier="gst_gl_view_convert_reset" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">Reset @viewconvert to the default state. Further operation will require +setting the caps with gst_gl_view_convert_set_caps().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="viewconvert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstGLViewConvert</doc> + <type name="GLViewConvert" c:type="GstGLViewConvert*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_caps" c:identifier="gst_gl_view_convert_set_caps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">Initializes @viewconvert with the information required for conversion.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="viewconvert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstGLViewConvert</doc> + <type name="GLViewConvert" c:type="GstGLViewConvert*"/> + </instance-parameter> + <parameter name="in_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">input #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="out_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">output #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_context" c:identifier="gst_gl_view_convert_set_context" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">Set @context on @viewconvert</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="viewconvert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstGLViewConvert</doc> + <type name="GLViewConvert" c:type="GstGLViewConvert*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">the #GstGLContext to set</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </method> + <method name="submit_input_buffer" c:identifier="gst_gl_view_convert_submit_input_buffer" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">Submit @input to be processed by @viewconvert</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="viewconvert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstGLViewConvert</doc> + <type name="GLViewConvert" c:type="GstGLViewConvert*"/> + </instance-parameter> + <parameter name="is_discont" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">true if we have a discontinuity</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="input" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="transform_caps" c:identifier="gst_gl_view_convert_transform_caps" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">Provides an implementation of #GstBaseTransformClass.transform_caps()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">the converted #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="viewconvert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstGLViewConvert</doc> + <type name="GLViewConvert" c:type="GstGLViewConvert*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a #GstPadDirection</doc> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">the #GstCaps to transform</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.c">a set of filter #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <property name="downmix-mode" writable="1" transfer-ownership="none"> + <type name="GLStereoDownmix"/> + </property> + <property name="input-flags-override" writable="1" transfer-ownership="none"> + <type name="GstVideo.VideoMultiviewFlags"/> + </property> + <property name="input-mode-override" writable="1" transfer-ownership="none"> + <type name="GstVideo.VideoMultiviewMode"/> + </property> + <property name="output-flags-override" writable="1" transfer-ownership="none"> + <type name="GstVideo.VideoMultiviewFlags"/> + </property> + <property name="output-mode-override" writable="1" transfer-ownership="none"> + <type name="GstVideo.VideoMultiviewMode"/> + </property> + <field name="object"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="context"> + <type name="GLContext" c:type="GstGLContext*"/> + </field> + <field name="shader"> + <type name="GLShader" c:type="GstGLShader*"/> + </field> + <field name="input_mode_override"> + <type name="GstVideo.VideoMultiviewMode" c:type="GstVideoMultiviewMode"/> + </field> + <field name="input_flags_override"> + <type name="GstVideo.VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/> + </field> + <field name="output_mode_override"> + <type name="GstVideo.VideoMultiviewMode" c:type="GstVideoMultiviewMode"/> + </field> + <field name="output_flags_override"> + <type name="GstVideo.VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/> + </field> + <field name="downmix_mode"> + <type name="GLStereoDownmix" c:type="GstGLStereoDownmix"/> + </field> + <field name="in_info"> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="out_info"> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="from_texture_target"> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </field> + <field name="to_texture_target"> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </field> + <field name="caps_passthrough"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="initted"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="reconfigure"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="fbo"> + <type name="GLFramebuffer" c:type="GstGLFramebuffer*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLViewConvertPrivate" c:type="GstGLViewConvertPrivate*"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GLViewConvertClass" c:type="GstGLViewConvertClass" glib:is-gtype-struct-for="GLViewConvert"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h">Opaque #GstGLViewConvertClass struct</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <field name="object_class" readable="0" private="1"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_padding" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GLViewConvertPrivate" c:type="GstGLViewConvertPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <class name="GLWindow" c:symbol-prefix="gl_window" c:type="GstGLWindow" parent="Gst.Object" abstract="1" glib:type-name="GstGLWindow" glib:get-type="gst_gl_window_get_type" glib:type-struct="GLWindowClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">GstGLWindow represents a window that elements can render into. A window can +either be a user visible window (onscreen) or hidden (offscreen).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <constructor name="new" c:identifier="gst_gl_window_new" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a new #GstGLWindow using @display's connection</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </return-value> + <parameters> + <parameter name="display" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="controls_viewport" invoker="controls_viewport" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Checks if @window controls the GL viewport.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">%TRUE if @window controls the GL viewport, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="draw" invoker="draw" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Redraw the window contents. Implementations should invoke the draw callback.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_display" invoker="get_display" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the windowing system display handle for this @window</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_window_handle" invoker="get_window_handle" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the window handle we are currently rendering into</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_events" invoker="handle_events"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Tell a @window that it should handle events from the window system. These +events are forwarded upstream as navigation events. In some window systems +events are not propagated in the window hierarchy if a client is listening +for them. This method allows you to disable events handling completely +from the @window.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="handle_events" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #gboolean indicating if events should be handled or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="has_output_surface" invoker="has_output_surface" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Query whether @window has output surface or not</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">%TRUE if @window has useable output surface</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="open" throws="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="queue_resize" invoker="queue_resize"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Queue resizing of @window.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="quit" invoker="quit" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Quit the runloop's execution.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="run" invoker="run" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Start the execution of the runloop.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="send_message" invoker="send_message" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Invoke @callback with data on the window thread. @callback is guaranteed to +have executed when this function returns.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="callback" transfer-ownership="none" scope="async" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">function to invoke</doc> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">data to invoke @callback with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="send_message_async" invoker="send_message_async" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Invoke @callback with @data on the window thread. The callback may not +have been executed when this function returns.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">function to invoke</doc> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">data to invoke @callback with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">called when @data is not needed anymore</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_preferred_size" invoker="set_preferred_size" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Set the preferred width and height of the window. Implementations are free +to ignore this information.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">new preferred width</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">new preferred height</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_render_rectangle" invoker="set_render_rectangle"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Tell a @window that it should render into a specific region of the window +according to the #GstVideoOverlay interface.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">whether the specified region could be set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="x" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">x position</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">y position</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">width</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">height</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_window_handle" invoker="set_window_handle" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Sets the window that this @window should render into. Some implementations +require this to be called with a valid handle before drawing can commence.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="handle" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">handle to the window</doc> + <type name="guintptr" c:type="guintptr"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="show" invoker="show" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Present the window to the screen.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="controls_viewport" c:identifier="gst_gl_window_controls_viewport" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Checks if @window controls the GL viewport.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">%TRUE if @window controls the GL viewport, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <method name="draw" c:identifier="gst_gl_window_draw" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Redraw the window contents. Implementations should invoke the draw callback.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_context" c:identifier="gst_gl_window_get_context" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the #GstGLContext associated with this @window</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_display" c:identifier="gst_gl_window_get_display" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the windowing system display handle for this @window</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_surface_dimensions" c:identifier="gst_gl_window_get_surface_dimensions" version="1.6"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">resulting surface width</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">resulting surface height</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_window_handle" c:identifier="gst_gl_window_get_window_handle" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the window handle we are currently rendering into</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <method name="handle_events" c:identifier="gst_gl_window_handle_events"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Tell a @window that it should handle events from the window system. These +events are forwarded upstream as navigation events. In some window systems +events are not propagated in the window hierarchy if a client is listening +for them. This method allows you to disable events handling completely +from the @window.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="handle_events" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #gboolean indicating if events should be handled or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="has_output_surface" c:identifier="gst_gl_window_has_output_surface" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Query whether @window has output surface or not</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">%TRUE if @window has useable output surface</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <method name="queue_resize" c:identifier="gst_gl_window_queue_resize"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Queue resizing of @window.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <method name="quit" c:identifier="gst_gl_window_quit" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Quit the runloop's execution.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <method name="resize" c:identifier="gst_gl_window_resize"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Resize @window to the given @width and @height.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">new width</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">new height</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="run" c:identifier="gst_gl_window_run" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Start the execution of the runloop.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <method name="send_key_event" c:identifier="gst_gl_window_send_key_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="event_type" transfer-ownership="none"> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="key_str" transfer-ownership="none"> + <type name="utf8" c:type="const char*"/> + </parameter> + </parameters> + </method> + <method name="send_message" c:identifier="gst_gl_window_send_message" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Invoke @callback with data on the window thread. @callback is guaranteed to +have executed when this function returns.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="callback" transfer-ownership="none" scope="async" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">function to invoke</doc> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">data to invoke @callback with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="send_message_async" c:identifier="gst_gl_window_send_message_async" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Invoke @callback with @data on the window thread. The callback may not +have been executed when this function returns.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">function to invoke</doc> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">data to invoke @callback with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">called when @data is not needed anymore</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="send_mouse_event" c:identifier="gst_gl_window_send_mouse_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="event_type" transfer-ownership="none"> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="button" transfer-ownership="none"> + <type name="gint" c:type="int"/> + </parameter> + <parameter name="posx" transfer-ownership="none"> + <type name="gdouble" c:type="double"/> + </parameter> + <parameter name="posy" transfer-ownership="none"> + <type name="gdouble" c:type="double"/> + </parameter> + </parameters> + </method> + <method name="send_scroll_event" c:identifier="gst_gl_window_send_scroll_event" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Notify a @window about a scroll event. A scroll signal holding the event +coordinates will be emitted.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="posx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">x position of the mouse cursor</doc> + <type name="gdouble" c:type="double"/> + </parameter> + <parameter name="posy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">y position of the mouse cursor</doc> + <type name="gdouble" c:type="double"/> + </parameter> + <parameter name="delta_x" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the x offset of the scroll event</doc> + <type name="gdouble" c:type="double"/> + </parameter> + <parameter name="delta_y" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the y offset of the scroll event</doc> + <type name="gdouble" c:type="double"/> + </parameter> + </parameters> + </method> + <method name="set_close_callback" c:identifier="gst_gl_window_set_close_callback" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Sets the callback called when the window is about to close.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">function to invoke</doc> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">data to invoke @callback with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">called when @data is not needed any more</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_draw_callback" c:identifier="gst_gl_window_set_draw_callback" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Sets the draw callback called every time gst_gl_window_draw() is called</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">function to invoke</doc> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">data to invoke @callback with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">called when @data is not needed any more</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_preferred_size" c:identifier="gst_gl_window_set_preferred_size" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Set the preferred width and height of the window. Implementations are free +to ignore this information.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">new preferred width</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">new preferred height</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_render_rectangle" c:identifier="gst_gl_window_set_render_rectangle"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Tell a @window that it should render into a specific region of the window +according to the #GstVideoOverlay interface.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">whether the specified region could be set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="x" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">x position</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">y position</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">width</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">height</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_resize_callback" c:identifier="gst_gl_window_set_resize_callback" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Sets the resize callback called every time a resize of the window occurs.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">function to invoke</doc> + <type name="GLWindowResizeCB" c:type="GstGLWindowResizeCB"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">data to invoke @callback with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">called when @data is not needed any more</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_window_handle" c:identifier="gst_gl_window_set_window_handle" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Sets the window that this @window should render into. Some implementations +require this to be called with a valid handle before drawing can commence.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + <parameter name="handle" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">handle to the window</doc> + <type name="guintptr" c:type="guintptr"/> + </parameter> + </parameters> + </method> + <method name="show" c:identifier="gst_gl_window_show" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Present the window to the screen.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </instance-parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="lock" readable="0" private="1"> + <type name="GLib.Mutex" c:type="GMutex"/> + </field> + <field name="display" readable="0" private="1"> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </field> + <field name="context_ref" readable="0" private="1"> + <type name="GObject.WeakRef" c:type="GWeakRef"/> + </field> + <field name="is_drawing" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="draw" readable="0" private="1"> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </field> + <field name="draw_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="draw_notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="close" readable="0" private="1"> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </field> + <field name="close_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="close_notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="resize" readable="0" private="1"> + <type name="GLWindowResizeCB" c:type="GstGLWindowResizeCB"/> + </field> + <field name="resize_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="resize_notify" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="queue_resize" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="main_context" readable="0" private="1"> + <type name="GLib.MainContext" c:type="GMainContext*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GLWindowPrivate" c:type="GstGLWindowPrivate*"/> + </field> + <field name="_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="key-event" when="last" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Will be emitted when a key event is received by the GstGLwindow.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the name of the event</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the id of the key pressed</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="mouse-event" when="last" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Will be emitted when a mouse event is received by the GstGLwindow.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the name of the event</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="button" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the id of the button</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="x" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the x coordinate of the mouse event</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the y coordinate of the mouse event</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="scroll-event" when="last" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Will be emitted when a mouse scroll event is received by the GstGLwindow.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="x" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the x coordinate of the mouse event</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the y coordinate of the mouse event</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="delta_x" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the x offset of the scroll event</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="delta_y" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the y offset of the scroll event</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="window-handle-changed" when="last" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Will be emitted when the window handle has been set into the native +implementation, but before the context is re-activated. By using this +signal, elements can refresh associated resource without relying on +direct handle comparision.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + </class> + <callback name="GLWindowCB" c:type="GstGLWindowCB"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="GLWindowClass" c:type="GstGLWindowClass" glib:is-gtype-struct-for="GLWindow"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h">Parent class</doc> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="get_display"> + <callback name="get_display"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the windowing system display handle for this @window</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_window_handle"> + <callback name="set_window_handle"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + <parameter name="handle" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">handle to the window</doc> + <type name="guintptr" c:type="guintptr"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_window_handle"> + <callback name="get_window_handle"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the window handle we are currently rendering into</doc> + <type name="guintptr" c:type="guintptr"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="draw"> + <callback name="draw"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="run"> + <callback name="run"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="quit"> + <callback name="quit"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="send_message"> + <callback name="send_message"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" scope="async" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">function to invoke</doc> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">data to invoke @callback with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="send_message_async"> + <callback name="send_message_async"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="2" destroy="3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">function to invoke</doc> + <type name="GLWindowCB" c:type="GstGLWindowCB"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">data to invoke @callback with</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">called when @data is not needed anymore</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </callback> + </field> + <field name="open"> + <callback name="open" throws="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close"> + <callback name="close"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_events"> + <callback name="handle_events"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + <parameter name="handle_events" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #gboolean indicating if events should be handled or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_preferred_size"> + <callback name="set_preferred_size"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">new preferred width</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">new preferred height</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="show"> + <callback name="show"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_render_rectangle"> + <callback name="set_render_rectangle"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">whether the specified region could be set</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + <parameter name="x" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">x position</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">y position</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">width</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">height</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="queue_resize"> + <callback name="queue_resize"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="controls_viewport"> + <callback name="controls_viewport"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">%TRUE if @window controls the GL viewport, otherwise %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="has_output_surface"> + <callback name="has_output_surface"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">%TRUE if @window has useable output surface</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="window" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc> + <type name="GLWindow" c:type="GstGLWindow*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="GLWindowError" glib:type-name="GstGLWindowError" glib:get-type="gst_gl_window_error_get_type" c:type="GstGLWindowError" glib:error-domain="gst-gl-window-error-quark"> + <member name="failed" value="0" c:identifier="GST_GL_WINDOW_ERROR_FAILED" glib:nick="failed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h">failed for a unspecified reason</doc> + </member> + <member name="old_libs" value="1" c:identifier="GST_GL_WINDOW_ERROR_OLD_LIBS" glib:nick="old-libs"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h">the implementation is too old</doc> + </member> + <member name="resource_unavailable" value="2" c:identifier="GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE" glib:nick="resource-unavailable"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h">no such resource was found</doc> + </member> + <function name="quark" c:identifier="gst_gl_window_error_quark"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the quark used for #GstGLWindow in #GError's</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <record name="GLWindowPrivate" c:type="GstGLWindowPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgl_fwd.h"/> + </record> + <callback name="GLWindowResizeCB" c:type="GstGLWindowResizeCB"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </callback> + <constant name="GL_ALLOCATION_PARAMS_ALLOC_FLAG_ALLOC" value="1" c:type="GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_ALLOC"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">GL Allocation flag indicating that the implementation should allocate the +necessary resources.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="GL_ALLOCATION_PARAMS_ALLOC_FLAG_BUFFER" value="16" c:type="GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_BUFFER"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">GL allocation flag indicating the allocation of a GL buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="GL_ALLOCATION_PARAMS_ALLOC_FLAG_USER" value="65536" c:type="GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_USER"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Values >= than #GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_USER can be used for +user-defined purposes.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="GL_ALLOCATION_PARAMS_ALLOC_FLAG_VIDEO" value="8" c:type="GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_VIDEO"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">GL allocation flag indicating the allocation of 2D video frames</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_GPU_HANDLE" value="4" c:type="GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_GPU_HANDLE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">GL Allocation flag for using the provided GPU handle as storage.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_SYSMEM" value="2" c:type="GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_SYSMEM"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">GL Allocation flag for using the provided system memory data as storage.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="GL_API_GLES1_NAME" value="gles1" c:type="GST_GL_API_GLES1_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">The name for %GST_GL_API_GLES1 used in various places</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_API_GLES2_NAME" value="gles2" c:type="GST_GL_API_GLES2_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">The name for %GST_GL_API_GLES2 used in various places</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_API_OPENGL3_NAME" value="opengl3" c:type="GST_GL_API_OPENGL3_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">The name for %GST_GL_API_OPENGL3 used in various places</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_API_OPENGL_NAME" value="opengl" c:type="GST_GL_API_OPENGL_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h">The name for %GST_GL_API_OPENGL used in various places</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_ASYNC_CAT_LEVEL_LOG_valist" c:identifier="GST_GL_ASYNC_CAT_LEVEL_LOG_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h">Stores a debug message in @ad for later output</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <parameters> + <parameter name="ad"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h">the #GstGLAsyncDebug to store the message in</doc> + </parameter> + <parameter name="cat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h">the #GstDebugCategory to output the message in</doc> + </parameter> + <parameter name="level"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h">the #GstDebugLevel</doc> + </parameter> + <parameter name="object"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h">a #GObject to associate with the debug message</doc> + </parameter> + <parameter name="format"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h">a printf style format string</doc> + </parameter> + <parameter name="varargs"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h">the list of arguments for @format</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_FILTER" c:identifier="GST_GL_BASE_FILTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_FILTER_CLASS" c:identifier="GST_GL_BASE_FILTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_FILTER_GET_CLASS" c:identifier="GST_GL_BASE_FILTER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_MEMORY_ALLOCATOR" c:identifier="GST_GL_BASE_MEMORY_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_MEMORY_ALLOCATOR_CAST" c:identifier="GST_GL_BASE_MEMORY_ALLOCATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_GL_BASE_MEMORY_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_MEMORY_ALLOCATOR_GET_CLASS" c:identifier="GST_GL_BASE_MEMORY_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_BASE_MEMORY_ALLOCATOR_NAME" value="GLBaseMemory" c:type="GST_GL_BASE_MEMORY_ALLOCATOR_NAME" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">The name of the GL buffer allocator</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_BASE_MEMORY_CAST" c:identifier="GST_GL_BASE_MEMORY_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <parameters> + <parameter name="mem"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_SRC" c:identifier="GST_GL_BASE_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_SRC_CLASS" c:identifier="GST_GL_BASE_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BASE_SRC_GET_CLASS" c:identifier="GST_GL_BASE_SRC_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BUFFER_ALLOCATOR" c:identifier="GST_GL_BUFFER_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BUFFER_ALLOCATOR_CAST" c:identifier="GST_GL_BUFFER_ALLOCATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BUFFER_ALLOCATOR_CLASS" c:identifier="GST_GL_BUFFER_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BUFFER_ALLOCATOR_GET_CLASS" c:identifier="GST_GL_BUFFER_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_BUFFER_ALLOCATOR_NAME" value="GLBuffer" c:type="GST_GL_BUFFER_ALLOCATOR_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h">The name of the GL buffer allocator</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_BUFFER_POOL" c:identifier="GST_GL_BUFFER_POOL" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_BUFFER_POOL_CAST" c:identifier="GST_GL_BUFFER_POOL_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_COLOR_CONVERT" c:identifier="GST_GL_COLOR_CONVERT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_COLOR_CONVERT_CAST" c:identifier="GST_GL_COLOR_CONVERT_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_COLOR_CONVERT_CLASS" c:identifier="GST_GL_COLOR_CONVERT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_COLOR_CONVERT_EXT_FORMATS" value=", BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE" c:type="GST_GL_COLOR_CONVERT_EXT_FORMATS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_COLOR_CONVERT_FORMATS" value="{ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, GBRA, GBR, RGBP, BGRP, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, AYUV, VUYA, Y410, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4" c:type="GST_GL_COLOR_CONVERT_FORMATS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h">The currently supported formats that can be converted</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_COLOR_CONVERT_VIDEO_CAPS" value="video/x-raw(" c:type="GST_GL_COLOR_CONVERT_VIDEO_CAPS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h">The currently supported #GstCaps that can be converted</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_CONFIG_ATTRIB_GTYPE" c:identifier="GST_GL_CONFIG_ATTRIB_GTYPE" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">Get a reference to the #GType of a particular configuration field. + +e.g. for `CONFIG_ID`: `GST_GL_CONFIG_ATTRIB_GTYPE (CONFIG_ID)`</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h"/> + <parameters> + <parameter name="UPPER_NAME"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_CONFIG_ATTRIB_NAME" c:identifier="GST_GL_CONFIG_ATTRIB_NAME" version="1.20" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">Get a reference to the variable name of a particular configuration field. + +e.g. for `CONFIG_ID`: `GST_GL_CONFIG_ATTRIB_NAME (CONFIG_ID)`</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h"/> + <parameters> + <parameter name="UPPER_NAME"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_CONFIG_STRUCTURE_NAME" value="gst-gl-context-config" c:type="GST_GL_CONFIG_STRUCTURE_NAME" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h">The canonical name of a #GstStructure that contains a configuration for a +#GstGLContext.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_CONFIG_STRUCTURE_SET_ARGS" c:identifier="GST_GL_CONFIG_STRUCTURE_SET_ARGS" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h"/> + <parameters> + <parameter name="def_name"> + </parameter> + <parameter name="ctype"> + </parameter> + <parameter name="val"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_CONTEXT" c:identifier="GST_GL_CONTEXT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_CONTEXT_CLASS" c:identifier="GST_GL_CONTEXT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <parameters> + <parameter name="k"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_CONTEXT_GET_CLASS" c:identifier="GST_GL_CONTEXT_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_CONTEXT_TYPE_CGL" value="gst.gl.context.CGL" c:type="GST_GL_CONTEXT_TYPE_CGL"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_CONTEXT_TYPE_EAGL" value="gst.gl.context.EAGL" c:type="GST_GL_CONTEXT_TYPE_EAGL"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_CONTEXT_TYPE_EGL" value="gst.gl.context.EGL" c:type="GST_GL_CONTEXT_TYPE_EGL"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_CONTEXT_TYPE_GLX" value="gst.gl.context.GLX" c:type="GST_GL_CONTEXT_TYPE_GLX"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_CONTEXT_TYPE_WGL" value="gst.gl.context.WGL" c:type="GST_GL_CONTEXT_TYPE_WGL"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_DEPRECATED_FOR" c:identifier="GST_GL_DEPRECATED_FOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gl-prelude.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_DISPLAY" c:identifier="GST_GL_DISPLAY" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_DISPLAY_CAST" c:identifier="GST_GL_DISPLAY_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_DISPLAY_CLASS" c:identifier="GST_GL_DISPLAY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_DISPLAY_CONTEXT_TYPE" value="gst.gl.GLDisplay" c:type="GST_GL_DISPLAY_CONTEXT_TYPE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h">The name used in #GstContext queries for requesting a #GstGLDisplay</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_DISPLAY_GET_CLASS" c:identifier="GST_GL_DISPLAY_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_FILTER" c:identifier="GST_GL_FILTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_FILTER_CLASS" c:identifier="GST_GL_FILTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_FILTER_GET_CLASS" c:identifier="GST_GL_FILTER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_FRAMEBUFFER" c:identifier="GST_GL_FRAMEBUFFER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_FRAMEBUFFER_CAST" c:identifier="GST_GL_FRAMEBUFFER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_FRAMEBUFFER_CLASS" c:identifier="GST_GL_FRAMEBUFFER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_MEMORY_ALLOCATOR" c:identifier="GST_GL_MEMORY_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_MEMORY_ALLOCATOR_CAST" c:identifier="GST_GL_MEMORY_ALLOCATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_GL_MEMORY_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_MEMORY_ALLOCATOR_GET_CLASS" c:identifier="GST_GL_MEMORY_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_MEMORY_ALLOCATOR_NAME" value="GLMemory" c:type="GST_GL_MEMORY_ALLOCATOR_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">The name of the GL memory allocator</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_MEMORY_CAST" c:identifier="GST_GL_MEMORY_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_MEMORY_PBO_ALLOCATOR" c:identifier="GST_GL_MEMORY_PBO_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_MEMORY_PBO_ALLOCATOR_CAST" c:identifier="GST_GL_MEMORY_PBO_ALLOCATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_MEMORY_PBO_ALLOCATOR_CLASS" c:identifier="GST_GL_MEMORY_PBO_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_MEMORY_PBO_ALLOCATOR_GET_CLASS" c:identifier="GST_GL_MEMORY_PBO_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_MEMORY_PBO_ALLOCATOR_NAME" value="GLMemoryPBO" c:type="GST_GL_MEMORY_PBO_ALLOCATOR_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h">The name of the GL Memory PBO allocator</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_MEMORY_VIDEO_EXT_FORMATS" value=", BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE" c:type="GST_GL_MEMORY_VIDEO_EXT_FORMATS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_MEMORY_VIDEO_FORMATS_STR" value="{ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, GBRA, GBR, RGBP, BGRP, RGB, BGR, RGB16, BGR16, AYUV, VUYA, Y410, I420, YV12, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4" c:type="GST_GL_MEMORY_VIDEO_FORMATS_STR"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">List of video formats that are supported by #GstGLMemory</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_OVERLAY_COMPOSITOR" c:identifier="GST_GL_OVERLAY_COMPOSITOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_OVERLAY_COMPOSITOR_CAST" c:identifier="GST_GL_OVERLAY_COMPOSITOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_OVERLAY_COMPOSITOR_CLASS" c:identifier="GST_GL_OVERLAY_COMPOSITOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_RENDERBUFFER_ALLOCATOR" c:identifier="GST_GL_RENDERBUFFER_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_RENDERBUFFER_ALLOCATOR_CAST" c:identifier="GST_GL_RENDERBUFFER_ALLOCATOR_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_RENDERBUFFER_ALLOCATOR_CLASS" c:identifier="GST_GL_RENDERBUFFER_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_RENDERBUFFER_ALLOCATOR_GET_CLASS" c:identifier="GST_GL_RENDERBUFFER_ALLOCATOR_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_RENDERBUFFER_ALLOCATOR_NAME" value="GLRenderbuffer" c:type="GST_GL_RENDERBUFFER_ALLOCATOR_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h">The name of the GL renderbuffer allocator</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_RENDERBUFFER_CAST" c:identifier="GST_GL_RENDERBUFFER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_SHADER" c:identifier="GST_GL_SHADER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_SHADER_CLASS" c:identifier="GST_GL_SHADER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <parameters> + <parameter name="k"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_SHADER_GET_CLASS" c:identifier="GST_GL_SHADER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <constant name="GL_TEXTURE_TARGET_2D_STR" value="2D" c:type="GST_GL_TEXTURE_TARGET_2D_STR"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">String used for %GST_GL_TEXTURE_TARGET_2D in things like caps values</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_TEXTURE_TARGET_EXTERNAL_OES_STR" value="external-oes" c:type="GST_GL_TEXTURE_TARGET_EXTERNAL_OES_STR"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">String used for %GST_GL_TEXTURE_TARGET_EXTERNAL_OES in things like caps values</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="GL_TEXTURE_TARGET_RECTANGLE_STR" value="rectangle" c:type="GST_GL_TEXTURE_TARGET_RECTANGLE_STR"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h">String used for %GST_GL_TEXTURE_TARGET_RECTANGLE in things like caps values</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="GL_UPLOAD" c:identifier="GST_GL_UPLOAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_UPLOAD_CAST" c:identifier="GST_GL_UPLOAD_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_UPLOAD_CLASS" c:identifier="GST_GL_UPLOAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_VIEW_CONVERT" c:identifier="GST_GL_VIEW_CONVERT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_VIEW_CONVERT_CLASS" c:identifier="GST_GL_VIEW_CONVERT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_VIEW_CONVERT_GET_CLASS" c:identifier="GST_GL_VIEW_CONVERT_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_WINDOW" c:identifier="GST_GL_WINDOW" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_WINDOW_CB" c:identifier="GST_GL_WINDOW_CB" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h">Cast to the current function type for generic window callbacks</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h">the function to cast</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_WINDOW_CLASS" c:identifier="GST_GL_WINDOW_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="k"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_WINDOW_GET_CLASS" c:identifier="GST_GL_WINDOW_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_WINDOW_GET_LOCK" c:identifier="GST_GL_WINDOW_GET_LOCK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="w"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_WINDOW_LOCK" c:identifier="GST_GL_WINDOW_LOCK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="w"> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_WINDOW_RESIZE_CB" c:identifier="GST_GL_WINDOW_RESIZE_CB" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h">Cast to the current function type for window resize callbacks</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="f"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h">the function to cast</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="GL_WINDOW_UNLOCK" c:identifier="GST_GL_WINDOW_UNLOCK" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="w"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GLSL_STAGE" c:identifier="GST_IS_GLSL_STAGE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GLSL_STAGE_CLASS" c:identifier="GST_IS_GLSL_STAGE_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglslstage.h"/> + <parameters> + <parameter name="k"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_BASE_FILTER" c:identifier="GST_IS_GL_BASE_FILTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_BASE_FILTER_CLASS" c:identifier="GST_IS_GL_BASE_FILTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_BASE_MEMORY_ALLOCATOR" c:identifier="GST_IS_GL_BASE_MEMORY_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_BASE_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_IS_GL_BASE_MEMORY_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_BASE_SRC" c:identifier="GST_IS_GL_BASE_SRC" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_BASE_SRC_CLASS" c:identifier="GST_IS_GL_BASE_SRC_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_BUFFER_ALLOCATOR" c:identifier="GST_IS_GL_BUFFER_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_BUFFER_ALLOCATOR_CLASS" c:identifier="GST_IS_GL_BUFFER_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_BUFFER_POOL" c:identifier="GST_IS_GL_BUFFER_POOL" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_COLOR_CONVERT" c:identifier="GST_IS_GL_COLOR_CONVERT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_COLOR_CONVERT_CLASS" c:identifier="GST_IS_GL_COLOR_CONVERT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_CONTEXT" c:identifier="GST_IS_GL_CONTEXT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_CONTEXT_CLASS" c:identifier="GST_IS_GL_CONTEXT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.h"/> + <parameters> + <parameter name="k"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_DISPLAY" c:identifier="GST_IS_GL_DISPLAY" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_DISPLAY_CLASS" c:identifier="GST_IS_GL_DISPLAY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_FILTER" c:identifier="GST_IS_GL_FILTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_FILTER_CLASS" c:identifier="GST_IS_GL_FILTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_FRAMEBUFFER" c:identifier="GST_IS_GL_FRAMEBUFFER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_FRAMEBUFFER_CLASS" c:identifier="GST_IS_GL_FRAMEBUFFER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglframebuffer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_MEMORY_ALLOCATOR" c:identifier="GST_IS_GL_MEMORY_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_IS_GL_MEMORY_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_MEMORY_PBO_ALLOCATOR" c:identifier="GST_IS_GL_MEMORY_PBO_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_MEMORY_PBO_ALLOCATOR_CLASS" c:identifier="GST_IS_GL_MEMORY_PBO_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_OVERLAY_COMPOSITOR" c:identifier="GST_IS_GL_OVERLAY_COMPOSITOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_OVERLAY_COMPOSITOR_CLASS" c:identifier="GST_IS_GL_OVERLAY_COMPOSITOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgloverlaycompositor.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_RENDERBUFFER_ALLOCATOR" c:identifier="GST_IS_GL_RENDERBUFFER_ALLOCATOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_RENDERBUFFER_ALLOCATOR_CLASS" c:identifier="GST_IS_GL_RENDERBUFFER_ALLOCATOR_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_SHADER" c:identifier="GST_IS_GL_SHADER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_SHADER_CLASS" c:identifier="GST_IS_GL_SHADER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglshader.h"/> + <parameters> + <parameter name="k"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_UPLOAD" c:identifier="GST_IS_GL_UPLOAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_UPLOAD_CLASS" c:identifier="GST_IS_GL_UPLOAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglupload.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_VIEW_CONVERT" c:identifier="GST_IS_GL_VIEW_CONVERT" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_VIEW_CONVERT_CLASS" c:identifier="GST_IS_GL_VIEW_CONVERT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_WINDOW" c:identifier="GST_IS_GL_WINDOW" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="o"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_GL_WINDOW_CLASS" c:identifier="GST_IS_GL_WINDOW_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/> + <parameters> + <parameter name="k"> + </parameter> + </parameters> + </function-macro> + <constant name="MAP_GL" value="131072" c:type="GST_MAP_GL"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h">Flag indicating that we should map the GL object instead of to system memory. + +Combining #GST_MAP_GL with #GST_MAP_WRITE has the same semantics as though +you are writing to OpenGL. Conversely, combining #GST_MAP_GL with +#GST_MAP_READ has the same semantics as though you are reading from OpenGL.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function name="buffer_add_gl_sync_meta" c:identifier="gst_buffer_add_gl_sync_meta" version="1.6"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">the #GstGLSyncMeta added to #GstBuffer</doc> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_add_gl_sync_meta_full" c:identifier="gst_buffer_add_gl_sync_meta_full" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">the #GstGLSyncMeta added to #GstBuffer</doc> + <type name="GLSyncMeta" c:type="GstGLSyncMeta*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.c">sync data to hold</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function-macro name="buffer_get_gl_sync_meta" c:identifier="gst_buffer_get_gl_sync_meta" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function name="buffer_pool_config_get_gl_allocation_params" c:identifier="gst_buffer_pool_config_get_gl_allocation_params"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">the currently set #GstGLAllocationParams or %NULL</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">a buffer pool config</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="buffer_pool_config_set_gl_allocation_params" c:identifier="gst_buffer_pool_config_set_gl_allocation_params"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">Sets @params on @config</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">a buffer pool config</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="params" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c">a #GstGLAllocationParams</doc> + <type name="GLAllocationParams" c:type="const GstGLAllocationParams*"/> + </parameter> + </parameters> + </function> + <function name="context_get_gl_display" c:identifier="gst_context_get_gl_display" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">Whether @display was in @context</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstContext</doc> + <type name="Gst.Context" c:type="GstContext*"/> + </parameter> + <parameter name="display" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">resulting #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay**"/> + </parameter> + </parameters> + </function> + <function name="context_set_gl_display" c:identifier="gst_context_set_gl_display" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">Sets @display on @context</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">a #GstContext</doc> + <type name="Gst.Context" c:type="GstContext*"/> + </parameter> + <parameter name="display" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.c">resulting #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </parameter> + </parameters> + </function> + <function name="gl_api_from_string" c:identifier="gst_gl_api_from_string" moved-to="GLAPI.from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">The #GstGLAPI represented by @api_s</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </return-value> + <parameters> + <parameter name="api_s" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">a space separated string of OpenGL apis</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="gl_api_to_string" c:identifier="gst_gl_api_to_string" moved-to="GLAPI.to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">A space separated string of the OpenGL api's enabled in @api</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">a #GstGLAPI to stringify</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + </parameters> + </function> + <function name="gl_async_debug_new" c:identifier="gst_gl_async_debug_new" moved-to="GLAsyncDebug.new" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">Free with gst_gl_async_debug_free()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a new #GstGLAsyncDebug</doc> + <type name="GLAsyncDebug" c:type="GstGLAsyncDebug*"/> + </return-value> + </function> + <function name="gl_base_memory_alloc" c:identifier="gst_gl_base_memory_alloc" moved-to="GLBaseMemory.alloc" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a new #GstGLBaseMemory from @allocator with the requested @params.</doc> + <type name="GLBaseMemory" c:type="GstGLBaseMemory*"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a #GstGLBaseMemoryAllocator</doc> + <type name="GLBaseMemoryAllocator" c:type="GstGLBaseMemoryAllocator*"/> + </parameter> + <parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the #GstGLAllocationParams to allocate the memory with</doc> + <type name="GLAllocationParams" c:type="GstGLAllocationParams*"/> + </parameter> + </parameters> + </function> + <function name="gl_base_memory_error_quark" c:identifier="gst_gl_base_memory_error_quark" moved-to="GLBaseMemoryError.quark"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">the quark used for #GstGLBaseMemory in #GError's</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="gl_base_memory_init_once" c:identifier="gst_gl_base_memory_init_once" moved-to="GLBaseMemory.init_once" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">Initializes the GL Base Memory allocator. It is safe to call this function +multiple times. This must be called before any other GstGLBaseMemory operation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="gl_buffer_init_once" c:identifier="gst_gl_buffer_init_once" moved-to="GLBuffer.init_once" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">Initializes the GL Buffer allocator. It is safe to call this function +multiple times. This must be called before any other #GstGLBuffer operation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="gl_check_extension" c:identifier="gst_gl_check_extension"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfeature.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfeature.c">whether @name is in the space separated list of @ext</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfeature.c">the extension to search for</doc> + <type name="utf8" c:type="const char*"/> + </parameter> + <parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfeature.c">the list of possible extensions</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="gl_config_caveat_to_string" c:identifier="gst_gl_config_caveat_to_string" moved-to="GLConfigCaveat.to_string" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.c">a string version of @caveat or %NULL if @caveat does not + exist.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="caveat" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.c">the #GstGLConfigCaveat</doc> + <type name="GLConfigCaveat" c:type="GstGLConfigCaveat"/> + </parameter> + </parameters> + </function> + <function name="gl_config_surface_type_to_string" c:identifier="gst_gl_config_surface_type_to_string" moved-to="GLConfigSurfaceType.to_string" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.c">a string version of @caveat or %NULL if @surface_type does not + exist.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="surface_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontextconfig.c">the #GstGLConfigSurfaceType</doc> + <type name="GLConfigSurfaceType" c:type="GstGLConfigSurfaceType"/> + </parameter> + </parameters> + </function> + <function name="gl_context_error_quark" c:identifier="gst_gl_context_error_quark" moved-to="GLContextError.quark"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c">the quark used for #GstGLContext in #GError's</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function-macro name="gl_display_lock" c:identifier="gst_gl_display_lock" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <parameters> + <parameter name="display"> + </parameter> + </parameters> + </function-macro> + <function-macro name="gl_display_unlock" c:identifier="gst_gl_display_unlock" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldisplay.h"/> + <parameters> + <parameter name="display"> + </parameter> + </parameters> + </function-macro> + <function name="gl_element_propagate_display_context" c:identifier="gst_gl_element_propagate_display_context"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="display" transfer-ownership="none"> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </parameter> + </parameters> + </function> + <function name="gl_ensure_element_data" c:identifier="gst_gl_ensure_element_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">Perform the steps necessary for retrieving a #GstGLDisplay and (optionally) +an application provided #GstGLContext from the surrounding elements or from +the application using the #GstContext mechanism. + +If the contents of @display_ptr or @other_context_ptr are not %NULL, then no +#GstContext query is necessary for #GstGLDisplay or #GstGLContext retrieval +or is performed. + +This performs #GstContext queries (if necessary) for a winsys display +connection with %GST_GL_DISPLAY_CONTEXT_TYPE, "gst.x11.display.handle", and +"GstWaylandDisplayHandleContextType" stopping after the first successful +retrieval. + +This also performs a #GstContext query (if necessary) for an optional +application provided #GstGLContext using the name "gst.gl.app_context". +The returned #GstGLContext will be shared with a GStreamer created OpenGL context.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">whether a #GstGLDisplay exists in @display_ptr</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">the #GstElement running the query</doc> + <type name="Gst.Element" c:type="gpointer"/> + </parameter> + <parameter name="display_ptr" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">the resulting #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay**"/> + </parameter> + <parameter name="other_context_ptr" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">the resulting #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext**"/> + </parameter> + </parameters> + </function> + <function name="gl_format_from_video_info" c:identifier="gst_gl_format_from_video_info" moved-to="GLFormat.from_video_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the #GstGLFormat necessary for holding the data in @plane of @vinfo</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="vinfo" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstVideoInfo</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the plane number in @vinfo</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="gl_format_is_supported" c:identifier="gst_gl_format_is_supported" moved-to="GLFormat.is_supported" version="1.16"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">Whether @format is supported by @context based on the OpenGL API, + version, or available OpenGL extension/s.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the #GstGLFormat to check is supported by @context</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + </parameters> + </function> + <function name="gl_format_type_from_sized_gl_format" c:identifier="gst_gl_format_type_from_sized_gl_format" moved-to="GLFormat.type_from_sized_gl_format" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">Get the unsized format and type from @format for usage in glReadPixels, +glTex{Sub}Image*, glTexImage* and similar functions.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the sized internal #GstGLFormat</doc> + <type name="GLFormat" c:type="GstGLFormat"/> + </parameter> + <parameter name="unsized_format" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">location for the resulting unsized #GstGLFormat</doc> + <type name="GLFormat" c:type="GstGLFormat*"/> + </parameter> + <parameter name="gl_type" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">location for the resulting GL type</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="gl_format_type_n_bytes" c:identifier="gst_gl_format_type_n_bytes" moved-to="GLFormat.type_n_bytes"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the number of bytes the specified @format, @type combination takes +per pixel</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the OpenGL format, `GL_RGBA`, `GL_LUMINANCE`, etc</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the OpenGL type, `GL_UNSIGNED_BYTE`, `GL_FLOAT`, etc</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="gl_get_affine_transformation_meta_as_ndc" c:identifier="gst_gl_get_affine_transformation_meta_as_ndc" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">Retrieves the stored 4x4 affine transformation matrix stored in @meta in +NDC coordinates. if @meta is NULL, an identity matrix is returned. + +NDC is a left-handed coordinate system +- x - [-1, 1] - +ve X moves right +- y - [-1, 1] - +ve Y moves up +- z - [-1, 1] - +ve Z moves into</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="meta" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstVideoAffineTransformationMeta</doc> + <type name="GstVideo.VideoAffineTransformationMeta" c:type="GstVideoAffineTransformationMeta*"/> + </parameter> + <parameter name="matrix" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">result of the 4x4 matrix</doc> + <array zero-terminated="0" c:type="gfloat*" fixed-size="16"> + <type name="gfloat" c:type="gfloat"/> + </array> + </parameter> + </parameters> + </function> + <function name="gl_get_plane_data_size" c:identifier="gst_gl_get_plane_data_size"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">Retrieve the size in bytes of a video plane of data with a certain alignment</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstVideoInfo</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="align" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstVideoAlignment or %NULL</doc> + <type name="GstVideo.VideoAlignment" c:type="const GstVideoAlignment*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">plane number in @info to retrieve the data size of</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="gl_get_plane_start" c:identifier="gst_gl_get_plane_start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">difference between the supposed start of the plane from the @info + and where the data from the previous plane ends.</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstVideoInfo</doc> + <type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/> + </parameter> + <parameter name="valign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstVideoAlignment or %NULL</doc> + <type name="GstVideo.VideoAlignment" c:type="const GstVideoAlignment*"/> + </parameter> + <parameter name="plane" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">plane number in @info to retrieve the data size of</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="gl_handle_context_query" c:identifier="gst_gl_handle_context_query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">Whether the @query was successfully responded to from the passed + @display, @context, and @other_context.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstElement</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstQuery of type %GST_QUERY_CONTEXT</doc> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="display" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay*"/> + </parameter> + <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="other_context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">application provided #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + </parameters> + </function> + <function name="gl_handle_set_context" c:identifier="gst_gl_handle_set_context"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">Helper function for implementing #GstElementClass.set_context() in +OpenGL capable elements. + +Retrieve's the #GstGLDisplay or #GstGLContext in @context and places the +result in @display or @other_context respectively.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">whether the @display or @other_context could be set successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstElement</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstContext</doc> + <type name="Gst.Context" c:type="GstContext*"/> + </parameter> + <parameter name="display" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">location of a #GstGLDisplay</doc> + <type name="GLDisplay" c:type="GstGLDisplay**"/> + </parameter> + <parameter name="other_context" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">location of a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext**"/> + </parameter> + </parameters> + </function> + <function name="gl_insert_debug_marker" c:identifier="gst_gl_insert_debug_marker" version="1.8" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">Inserts a marker into a GL debug stream. Requires the 'gldebugmarker' +debug category to be at least %GST_LEVEL_FIXME.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">a printf-style format string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstgldebug.c">arguments form @format</doc> + <varargs/> + </parameter> + </parameters> + </function> + <function name="gl_memory_init_once" c:identifier="gst_gl_memory_init_once" moved-to="GLMemory.init_once" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">Initializes the GL Base Texture allocator. It is safe to call this function +multiple times. This must be called before any other GstGLMemory operation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="gl_memory_pbo_init_once" c:identifier="gst_gl_memory_pbo_init_once" moved-to="GLMemoryPBO.init_once"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="gl_memory_setup_buffer" c:identifier="gst_gl_memory_setup_buffer" moved-to="GLMemory.setup_buffer" version="1.8" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">whether the buffer was correctly setup</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="allocator" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the @GstGLMemoryAllocator to allocate from</doc> + <type name="GLMemoryAllocator" c:type="GstGLMemoryAllocator*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstBuffer to setup</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="params" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the #GstGLVideoAllocationParams to allocate with</doc> + <type name="GLVideoAllocationParams" c:type="GstGLVideoAllocationParams*"/> + </parameter> + <parameter name="tex_formats" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c"> + a list of #GstGLFormat's to allocate with.</doc> + <array length="5" zero-terminated="0" c:type="GstGLFormat*"> + <type name="GLFormat" c:type="GstGLFormat"/> + </array> + </parameter> + <parameter name="wrapped_data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c"> + a list of wrapped data pointers</doc> + <array length="5" zero-terminated="0" c:type="gpointer*"> + <type name="gpointer"/> + </array> + </parameter> + <parameter name="n_wrapped_pointers" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">the number of elements in @tex_formats and @wrapped_data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="gl_multiply_matrix4" c:identifier="gst_gl_multiply_matrix4" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">Multiplies two 4x4 matrices, @a and @b, and stores the result, a +2-dimensional array of #gfloat, in @result.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="a" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a 2-dimensional 4x4 array of #gfloat</doc> + <array zero-terminated="0" c:type="const gfloat*" fixed-size="16"> + <type name="gfloat" c:type="gfloat"/> + </array> + </parameter> + <parameter name="b" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">another 2-dimensional 4x4 array of #gfloat</doc> + <array zero-terminated="0" c:type="const gfloat*" fixed-size="16"> + <type name="gfloat" c:type="gfloat"/> + </array> + </parameter> + <parameter name="result" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">the result of the multiplication</doc> + <array zero-terminated="0" c:type="gfloat*" fixed-size="16"> + <type name="gfloat" c:type="gfloat"/> + </array> + </parameter> + </parameters> + </function> + <function name="gl_platform_from_string" c:identifier="gst_gl_platform_from_string" moved-to="GLPlatform.from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">The #GstGLPlatform represented by @platform_s</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </return-value> + <parameters> + <parameter name="platform_s" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">a space separated string of OpenGL platformss</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="gl_platform_to_string" c:identifier="gst_gl_platform_to_string" moved-to="GLPlatform.to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">A space separated string of the OpenGL platforms enabled in @platform</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="platform" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglapi.c">a #GstGLPlatform to stringify</doc> + <type name="GLPlatform" c:type="GstGLPlatform"/> + </parameter> + </parameters> + </function> + <function-macro name="gl_query_counter_log_valist" c:identifier="gst_gl_query_counter_log_valist" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <parameters> + <parameter name="query"> + </parameter> + <parameter name="cat"> + </parameter> + <parameter name="level"> + </parameter> + <parameter name="object"> + </parameter> + <parameter name="format"> + </parameter> + <parameter name="varargs"> + </parameter> + </parameters> + </function-macro> + <function name="gl_query_local_gl_context" c:identifier="gst_gl_query_local_gl_context" moved-to="GLQuery.local_gl_context"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">Performs a GST_QUERY_CONTEXT query of type "gst.gl.local_context" on all +#GstPads in @element of @direction for the local OpenGL context used by +GStreamer elements.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">whether @context_ptr contains a #GstGLContext</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstElement to query from</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">the #GstPadDirection to query</doc> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="context_ptr" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">location containing the current and/or resulting + #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext**"/> + </parameter> + </parameters> + </function> + <function name="gl_query_new" c:identifier="gst_gl_query_new" moved-to="GLQuery.new" version="1.10" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">Free with gst_gl_query_free()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a new #GstGLQuery</doc> + <type name="GLQuery" c:type="GstGLQuery*"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="query_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.c">the #GstGLQueryType to create</doc> + <type name="GLQueryType" c:type="GstGLQueryType"/> + </parameter> + </parameters> + </function> + <function-macro name="gl_query_start_log_valist" c:identifier="gst_gl_query_start_log_valist" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglquery.h"/> + <parameters> + <parameter name="query"> + </parameter> + <parameter name="cat"> + </parameter> + <parameter name="level"> + </parameter> + <parameter name="object"> + </parameter> + <parameter name="format"> + </parameter> + <parameter name="varargs"> + </parameter> + </parameters> + </function-macro> + <function name="gl_renderbuffer_init_once" c:identifier="gst_gl_renderbuffer_init_once" moved-to="GLRenderbuffer.init_once" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">Initializes the GL Base Texture allocator. It is safe to call this function +multiple times. This must be called before any other GstGLRenderbuffer operation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="gl_set_affine_transformation_meta_from_ndc" c:identifier="gst_gl_set_affine_transformation_meta_from_ndc" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">Set the 4x4 affine transformation matrix stored in @meta from the +NDC coordinates in @matrix.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstVideoAffineTransformationMeta</doc> + <type name="GstVideo.VideoAffineTransformationMeta" c:type="GstVideoAffineTransformationMeta*"/> + </parameter> + <parameter name="matrix" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a 4x4 matrix</doc> + <array zero-terminated="0" c:type="const gfloat*" fixed-size="16"> + <type name="gfloat" c:type="gfloat"/> + </array> + </parameter> + </parameters> + </function> + <function name="gl_sized_gl_format_from_gl_format_type" c:identifier="gst_gl_sized_gl_format_from_gl_format_type"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the sized internal format specified by @format and @type that can + be used in @context</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLContext</doc> + <type name="GLContext" c:type="GstGLContext*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">an OpenGL format, `GL_RGBA`, `GL_LUMINANCE`, etc</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">an OpenGL type, `GL_UNSIGNED_BYTE`, `GL_FLOAT`, etc</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="gl_stereo_downmix_mode_get_type" c:identifier="gst_gl_stereo_downmix_mode_get_type"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglviewconvert.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="gl_sync_meta_api_get_type" c:identifier="gst_gl_sync_meta_api_get_type"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="gl_sync_meta_get_info" c:identifier="gst_gl_sync_meta_get_info" moved-to="GLSyncMeta.get_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsyncmeta.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="gl_texture_target_from_gl" c:identifier="gst_gl_texture_target_from_gl" moved-to="GLTextureTarget.from_gl"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the #GstGLTextureTarget that's equiavalant to @target or + %GST_GL_TEXTURE_TARGET_NONE</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </return-value> + <parameters> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">an OpenGL texture binding target</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="gl_texture_target_from_string" c:identifier="gst_gl_texture_target_from_string" moved-to="GLTextureTarget.from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the #GstGLTextureTarget represented by @str or + %GST_GL_TEXTURE_TARGET_NONE</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a string equivalent to one of the GST_GL_TEXTURE_TARGET_*_STR values</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="gl_texture_target_to_buffer_pool_option" c:identifier="gst_gl_texture_target_to_buffer_pool_option" moved-to="GLTextureTarget.to_buffer_pool_option"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a string representing the @GstBufferPoolOption specified by @target</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + </parameters> + </function> + <function name="gl_texture_target_to_gl" c:identifier="gst_gl_texture_target_to_gl" moved-to="GLTextureTarget.to_gl"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the OpenGL value for binding the @target with glBindTexture() and + similar functions or 0</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + </parameters> + </function> + <function name="gl_texture_target_to_string" c:identifier="gst_gl_texture_target_to_string" moved-to="GLTextureTarget.to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">the stringified version of @target or %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglformat.c">a #GstGLTextureTarget</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + </parameters> + </function> + <function name="gl_value_get_texture_target_mask" c:identifier="gst_gl_value_get_texture_target_mask"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">See gst_gl_value_set_texture_target_from_mask() for what entails a mask</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">the mask of #GstGLTextureTarget's in @value or + %GST_GL_TEXTURE_TARGET_NONE on failure</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">an initialized #GValue of type G_TYPE_STRING</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </function> + <function name="gl_value_set_texture_target" c:identifier="gst_gl_value_set_texture_target"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">whether the @target could be set on @value</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">an initialized #GValue of type G_TYPE_STRING</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a #GstGLTextureTarget's</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + </parameters> + </function> + <function name="gl_value_set_texture_target_from_mask" c:identifier="gst_gl_value_set_texture_target_from_mask"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">A mask is a bitwise OR of (1 << target) where target is a valid +#GstGLTextureTarget</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">whether the @target_mask could be set on @value</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">an uninitialized #GValue</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + <parameter name="target_mask" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.c">a bitwise mask of #GstGLTextureTarget's</doc> + <type name="GLTextureTarget" c:type="GstGLTextureTarget"/> + </parameter> + </parameters> + </function> + <function name="gl_version_to_glsl_version" c:identifier="gst_gl_version_to_glsl_version"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">The minimum supported #GstGLSLVersion available for @gl_api, @maj and @min</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </return-value> + <parameters> + <parameter name="gl_api" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the #GstGLAPI</doc> + <type name="GLAPI" c:type="GstGLAPI"/> + </parameter> + <parameter name="maj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the major GL version</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="min" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the minor GL version</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="gl_window_error_quark" c:identifier="gst_gl_window_error_quark" moved-to="GLWindowError.quark"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">the quark used for #GstGLWindow in #GError's</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="glsl_error_quark" c:identifier="gst_glsl_error_quark" moved-to="GLSLError.quark"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the quark used for GstGLSL in #GError's</doc> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="glsl_profile_from_string" c:identifier="gst_glsl_profile_from_string" moved-to="GLSLProfile.from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the #GstGLSLProfile of @string or %GST_GLSL_PROFILE_NONE on error</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a GLSL version string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="glsl_profile_to_string" c:identifier="gst_glsl_profile_to_string" moved-to="GLSLProfile.to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the name for @profile or %NULL on error</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </function> + <function name="glsl_string_get_version_profile" c:identifier="gst_glsl_string_get_version_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">Note: this function first searches the first 1 kilobytes for a `#version` +preprocessor directive and then executes gst_glsl_version_profile_from_string().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">TRUE if a valid `#version` string was found, FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="s" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">string to search for a valid `#version` string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="version" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">resulting #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion*"/> + </parameter> + <parameter name="profile" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">resulting #GstGLSLProfile</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile*"/> + </parameter> + </parameters> + </function> + <function name="glsl_version_from_string" c:identifier="gst_glsl_version_from_string" moved-to="GLSLVersion.from_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the #GstGLSLVersion of @string or %GST_GLSL_VERSION_NONE on error</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a GLSL version string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="glsl_version_profile_from_string" c:identifier="gst_glsl_version_profile_from_string" moved-to="GLSLVersion.profile_from_string"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">Note: this function expects either a `#version` GLSL preprocesser directive +or a valid GLSL version and/or profile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">TRUE if a valid `#version` string was found, FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="string" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a valid GLSL `#version` string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="version_ret" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">resulting #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion*"/> + </parameter> + <parameter name="profile_ret" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">resulting #GstGLSLVersion</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile*"/> + </parameter> + </parameters> + </function> + <function name="glsl_version_profile_to_string" c:identifier="gst_glsl_version_profile_to_string" moved-to="GLSLVersion.profile_to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the combined GLSL `#version` string for @version and @profile</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLVersion</doc> + <type name="GLSLProfile" c:type="GstGLSLProfile"/> + </parameter> + </parameters> + </function> + <function name="glsl_version_to_string" c:identifier="gst_glsl_version_to_string" moved-to="GLSLVersion.to_string"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">the name of @version or %NULL on error</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglsl.c">a #GstGLSLVersion</doc> + <type name="GLSLVersion" c:type="GstGLSLVersion"/> + </parameter> + </parameters> + </function> + <function name="is_gl_base_memory" c:identifier="gst_is_gl_base_memory" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">whether the memory at @mem is a #GstGLBaseMemory</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c">a #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="is_gl_buffer" c:identifier="gst_is_gl_buffer" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">whether the memory at @mem is a #GstGLBuffer</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbuffer.c">a #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="is_gl_memory" c:identifier="gst_is_gl_memory" version="1.4"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">whether the memory at @mem is a #GstGLMemory</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c">a #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="is_gl_memory_pbo" c:identifier="gst_is_gl_memory_pbo" version="1.8"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">whether the memory at @mem is a #GstGLMemoryPBO</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c">a #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + <function name="is_gl_renderbuffer" c:identifier="gst_is_gl_renderbuffer" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">whether the memory at @mem is a #GstGLRenderbuffer</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mem" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglrenderbuffer.c">a #GstMemory</doc> + <type name="Gst.Memory" c:type="GstMemory*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstInsertBin-1.0.gir b/girs/GstInsertBin-1.0.gir new file mode 100644 index 0000000000..a6f3c31b53 --- /dev/null +++ b/girs/GstInsertBin-1.0.gir @@ -0,0 +1,392 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <package name="gstreamer-insertbin-1.0"/> + <c:include name="gst/insertbin/gstinsertbin.h"/> + <namespace name="GstInsertBin" version="1.0" shared-library="libgstinsertbin-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="INSERT_BIN" c:identifier="GST_INSERT_BIN" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="INSERT_BIN_CLASS" c:identifier="GST_INSERT_BIN_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="INSERT_BIN_GET_CLASS" c:identifier="GST_INSERT_BIN_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_INSERT_BIN" c:identifier="GST_IS_INSERT_BIN" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_INSERT_BIN_CLASS" c:identifier="GST_IS_INSERT_BIN_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <class name="InsertBin" c:symbol-prefix="insert_bin" c:type="GstInsertBin" version="1.2" parent="Gst.Bin" glib:type-name="GstInsertBin" glib:get-type="gst_insert_bin_get_type" glib:type-struct="InsertBinClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This element is a #GstBin that has a single source and sink pad. It allows +the user (the application) to easily add and remove filter-like element +(that has a single source and sink pad), to the pipeline while it is running. +It features a fully asynchronous API inspired by GLib's GAsyncResult based +APIs. + +Each operation (addition or removal) can take a callback, this callback +is guaranteed to be called. Unlike GIO, there is no guarantee about where +this callback will be called from, it could be called before the action +returns or it could be called later from another thread. The signature of +this callback GstInsertBinCallback().</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <implements name="Gst.ChildProxy"/> + <constructor name="new" c:identifier="gst_insert_bin_new" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">Creates a new #GstInsertBin</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The new #GstInsertBin</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The name of the new #GstInsertBin element (or %NULL)</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="append" c:identifier="gst_insert_bin_append" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal adds the filter like element after any other element +in the bin. + +Same as the #GstInsertBin::append signal.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="InsertBin" c:type="GstInsertBin*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the #GstElement to add</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" scope="async" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been + added or not, or %NULL</doc> + <type name="InsertBinCallback" c:type="GstInsertBinCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="insert_after" c:identifier="gst_insert_bin_insert_after" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal adds the filter like element after the @sibling +element in the bin. + +Same as the #GstInsertBin::insert-after signal.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="InsertBin" c:type="GstInsertBin*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the #GstElement to add</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="sibling" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the #GstElement to add @element after</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" scope="async" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been + added or not, or %NULL</doc> + <type name="InsertBinCallback" c:type="GstInsertBinCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="insert_before" c:identifier="gst_insert_bin_insert_before" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal adds the filter like element before the @sibling +element in the bin. + +Same as the #GstInsertBin::insert-before signal.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="InsertBin" c:type="GstInsertBin*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the #GstElement to add</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="sibling" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the #GstElement to add @element before</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" scope="async" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been + added or not, or %NULL</doc> + <type name="InsertBinCallback" c:type="GstInsertBinCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="prepend" c:identifier="gst_insert_bin_prepend" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal adds the filter like element before any other element +in the bin. + +Same as the #GstInsertBin::prepend signal.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="InsertBin" c:type="GstInsertBin*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the #GstElement to add</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" scope="async" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been + added or not, or %NULL</doc> + <type name="InsertBinCallback" c:type="GstInsertBinCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="remove" c:identifier="gst_insert_bin_remove" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal removed the filter like element from the bin. + +Same as the #GstInsertBin::remove signal.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="InsertBin" c:type="GstInsertBin*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the #GstElement to remove</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" scope="async" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been + removed or not, or %NULL</doc> + <type name="InsertBinCallback" c:type="GstInsertBinCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="Gst.Bin" c:type="GstBin"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="InsertBinPrivate" c:type="GstInsertBinPrivate*"/> + </field> + <glib:signal name="append" when="last" action="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal adds the filter like element after any other element +in the bin. + +Same as gst_insert_bin_append()</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="callback" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been added or not, or + %NULL</doc> + <type name="Gst.Element"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data2" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The user data of the signal (ignored)</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="insert-after" when="last" action="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal adds the filter like element after the @sibling +element in the bin. +element in the bin. + +Same as gst_insert_bin_insert_after()</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sibling" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the #GstElement to add @element after</doc> + <type name="Gst.Element"/> + </parameter> + <parameter name="callback" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been added or not, or + %NULL</doc> + <type name="Gst.Element"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data2" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The user data of the signal (ignored)</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="insert-before" when="last" action="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal adds the filter like element before the @sibling +element in the bin. + +Same as gst_insert_bin_insert_before()</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sibling" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the #GstElement to add @element before</doc> + <type name="Gst.Element"/> + </parameter> + <parameter name="callback" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been added or not, or + %NULL</doc> + <type name="Gst.Element"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data2" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The user data of the signal (ignored)</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="prepend" when="last" action="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal adds the filter like element before any other element +in the bin. + +Same as gst_insert_bin_prepend()</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="callback" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been added or not, or + %NULL</doc> + <type name="Gst.Element"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data2" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The user data of the signal (ignored)</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="remove" when="last" action="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">This action signal removed the filter like element from the bin. + +Same as gst_insert_bin_remove()</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="callback" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">the callback to call when the element has been removed or not, +or %NULL</doc> + <type name="Gst.Element"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="user_data2" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.c">The user data of the signal (ignored)</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + </class> + <callback name="InsertBinCallback" c:type="GstInsertBinCallback"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h">This is the prototype of callbacks to be called when the operation completes. +It could be called at any time, including as a re-entrant call while the +operation is requested.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="insertbin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h">A #GstInsertBin</doc> + <type name="InsertBin" c:type="GstInsertBin*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h">The #GstElement on which the operation was performed</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="success" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h">%TRUE if the operation was successful</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h">The user data passed</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="InsertBinClass" c:type="GstInsertBinClass" glib:is-gtype-struct-for="InsertBin"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h">The object class structure.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + <field name="parent_class"> + <type name="Gst.BinClass" c:type="GstBinClass"/> + </field> + </record> + <record name="InsertBinPrivate" c:type="GstInsertBinPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/insertbin/gstinsertbin.h"/> + </record> + </namespace> +</repository> diff --git a/girs/GstMpegts-1.0.gir b/girs/GstMpegts-1.0.gir new file mode 100644 index 0000000000..c7ba32c4e5 --- /dev/null +++ b/girs/GstMpegts-1.0.gir @@ -0,0 +1,5425 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <package name="gstreamer-mpegts-1.0"/> + <c:include name="gst/mpegts/mpegts.h"/> + <namespace name="GstMpegts" version="1.0" shared-library="libgstmpegts-1.0.so.0" c:identifier-prefixes="GstMpegts" c:symbol-prefixes="gst_mpegts,gst"> + <enumeration name="ATSCDescriptorType" c:type="GstMpegtsATSCDescriptorType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-descriptor.h">These values correspond to the registered descriptor type from +the various ATSC specifications. + +Consult the relevant specifications for more details.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-descriptor.h"/> + <member name="stuffing" value="128" c:identifier="GST_MTS_DESC_ATSC_STUFFING"> + </member> + <member name="ac3" value="129" c:identifier="GST_MTS_DESC_ATSC_AC3"> + </member> + <member name="caption_service" value="134" c:identifier="GST_MTS_DESC_ATSC_CAPTION_SERVICE"> + </member> + <member name="content_advisory" value="135" c:identifier="GST_MTS_DESC_ATSC_CONTENT_ADVISORY"> + </member> + <member name="extended_channel_name" value="160" c:identifier="GST_MTS_DESC_ATSC_EXTENDED_CHANNEL_NAME"> + </member> + <member name="service_location" value="161" c:identifier="GST_MTS_DESC_ATSC_SERVICE_LOCATION"> + </member> + <member name="time_shifted_service" value="162" c:identifier="GST_MTS_DESC_ATSC_TIME_SHIFTED_SERVICE"> + </member> + <member name="component_name" value="163" c:identifier="GST_MTS_DESC_ATSC_COMPONENT_NAME"> + </member> + <member name="dcc_departing_request" value="168" c:identifier="GST_MTS_DESC_ATSC_DCC_DEPARTING_REQUEST"> + </member> + <member name="dcc_arriving_request" value="169" c:identifier="GST_MTS_DESC_ATSC_DCC_ARRIVING_REQUEST"> + </member> + <member name="redistribution_control" value="170" c:identifier="GST_MTS_DESC_ATSC_REDISTRIBUTION_CONTROL"> + </member> + <member name="genre" value="171" c:identifier="GST_MTS_DESC_ATSC_GENRE"> + </member> + <member name="private_information" value="173" c:identifier="GST_MTS_DESC_ATSC_PRIVATE_INFORMATION"> + </member> + <member name="eac3" value="204" c:identifier="GST_MTS_DESC_ATSC_EAC3"> + </member> + <member name="enhanced_signaling" value="178" c:identifier="GST_MTS_DESC_ATSC_ENHANCED_SIGNALING"> + </member> + <member name="data_service" value="164" c:identifier="GST_MTS_DESC_ATSC_DATA_SERVICE"> + </member> + <member name="pid_count" value="165" c:identifier="GST_MTS_DESC_ATSC_PID_COUNT"> + </member> + <member name="download_descriptor" value="166" c:identifier="GST_MTS_DESC_ATSC_DOWNLOAD_DESCRIPTOR"> + </member> + <member name="multiprotocol_encapsulation" value="167" c:identifier="GST_MTS_DESC_ATSC_MULTIPROTOCOL_ENCAPSULATION"> + </member> + <member name="module_link" value="180" c:identifier="GST_MTS_DESC_ATSC_MODULE_LINK"> + </member> + <member name="crc32" value="181" c:identifier="GST_MTS_DESC_ATSC_CRC32"> + </member> + <member name="group_link" value="184" c:identifier="GST_MTS_DESC_ATSC_GROUP_LINK"> + </member> + </enumeration> + <enumeration name="ATSCStreamType" version="1.20" c:type="GstMpegtsATSCStreamType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Type of mpeg-ts streams for ATSC, as defined by the ATSC Code Points +Registry. For convenience, some stream types from %GstMpegtsScteStreamType +are also included.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <member name="dcii_video" value="128" c:identifier="GST_MPEGTS_STREAM_TYPE_ATSC_DCII_VIDEO"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">DigiCipher II video | Identical to ITU-T Rec. H.262 | ISO/IEC 13818-2 Video</doc> + </member> + <member name="audio_ac3" value="129" c:identifier="GST_MPEGTS_STREAM_TYPE_ATSC_AUDIO_AC3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">ATSC A/53 Audio | AC-3</doc> + </member> + <member name="subtitling" value="130" c:identifier="GST_MPEGTS_STREAM_TYPE_ATSC_SUBTITLING"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">SCTE-27 Subtitling</doc> + </member> + <member name="isoch_data" value="131" c:identifier="GST_MPEGTS_STREAM_TYPE_ATSC_ISOCH_DATA"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">SCTE-19 Isochronous data | Reserved</doc> + </member> + <member name="sit" value="134" c:identifier="GST_MPEGTS_STREAM_TYPE_ATSC_SIT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">SCTE-35 Splice Information Table</doc> + </member> + <member name="audio_eac3" value="135" c:identifier="GST_MPEGTS_STREAM_TYPE_ATSC_AUDIO_EAC3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">E-AC-3 A/52:2018</doc> + </member> + <member name="audio_dts_hd" value="136" c:identifier="GST_MPEGTS_STREAM_TYPE_ATSC_AUDIO_DTS_HD"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">E-AC-3 A/107 (ATSC 2.0)</doc> + </member> + </enumeration> + <record name="AtscEIT" c:type="GstMpegtsAtscEIT" glib:type-name="GstMpegtsAtscEIT" glib:get-type="gst_mpegts_atsc_eit_get_type" c:symbol-prefix="atsc_eit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Event Information Table (ATSC)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="source_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The source id</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="protocol_version" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The protocol version</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="events" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Events</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscEITEvent"/> + </array> + </field> + </record> + <record name="AtscEITEvent" c:type="GstMpegtsAtscEITEvent" glib:type-name="GstMpegtsAtscEITEvent" glib:get-type="gst_mpegts_atsc_eit_event_get_type" c:symbol-prefix="atsc_eit_event"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">An ATSC EIT Event</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="event_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The event id</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="start_time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The start time</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="etm_location" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The etm location</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="length_in_seconds" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The length in seconds</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="titles" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">the titles</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscMultString"/> + </array> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + </record> + <record name="AtscETT" c:type="GstMpegtsAtscETT" glib:type-name="GstMpegtsAtscETT" glib:get-type="gst_mpegts_atsc_ett_get_type" c:symbol-prefix="atsc_ett"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Extended Text Table (ATSC)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="ett_table_id_extension" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="protocol_version" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The protocol version</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="etm_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The etm id</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="messages" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">List of texts</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscMultString"/> + </array> + </field> + </record> + <record name="AtscMGT" c:type="GstMpegtsAtscMGT" glib:type-name="GstMpegtsAtscMGT" glib:get-type="gst_mpegts_atsc_mgt_get_type" c:symbol-prefix="atsc_mgt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Master Guide Table (A65)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="protocol_version" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The protocol version</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="tables_defined" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The numbers of subtables</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="tables" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">the tables</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscMGTTable"/> + </array> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_atsc_mgt_new"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="AtscMGT" c:type="GstMpegtsAtscMGT*"/> + </return-value> + </constructor> + </record> + <record name="AtscMGTTable" c:type="GstMpegtsAtscMGTTable" glib:type-name="GstMpegtsAtscMGTTable" glib:get-type="gst_mpegts_atsc_mgt_table_get_type" c:symbol-prefix="atsc_mgt_table"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Source from a @GstMpegtsAtscMGT</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="table_type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">#GstMpegtsAtscMGTTableType</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="pid" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The packet ID</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="version_number" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The version number</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="number_bytes" writable="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + </record> + <enumeration name="AtscMGTTableType" c:type="GstMpegtsAtscMGTTableType"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <member name="eit0" value="256" c:identifier="GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT0"> + </member> + <member name="eit127" value="383" c:identifier="GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT127"> + </member> + <member name="ett0" value="512" c:identifier="GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT0"> + </member> + <member name="ett127" value="639" c:identifier="GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT127"> + </member> + </enumeration> + <record name="AtscMultString" c:type="GstMpegtsAtscMultString" glib:type-name="GstMpegtsAtscMultString" glib:get-type="gst_mpegts_atsc_mult_string_get_type" c:symbol-prefix="atsc_mult_string"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="iso_639_langcode" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The ISO639 language code</doc> + <array zero-terminated="0" fixed-size="4"> + <type name="gchar" c:type="gchar"/> + </array> + </field> + <field name="segments" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscStringSegment"/> + </array> + </field> + </record> + <record name="AtscRRT" c:type="GstMpegtsAtscRRT" version="1.18" glib:type-name="GstMpegtsAtscRRT" glib:get-type="gst_mpegts_atsc_rrt_get_type" c:symbol-prefix="atsc_rrt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Region Rating Table (A65)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="protocol_version" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The protocol version</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="names" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">the names</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscMultString"/> + </array> + </field> + <field name="dimensions_defined" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">the number of dimensions defined for this rating table</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="dimensions" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">A set of dimensions</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscRRTDimension"/> + </array> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_atsc_rrt_new"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="AtscRRT" c:type="GstMpegtsAtscRRT*"/> + </return-value> + </constructor> + </record> + <record name="AtscRRTDimension" c:type="GstMpegtsAtscRRTDimension" version="1.18" glib:type-name="GstMpegtsAtscRRTDimension" glib:get-type="gst_mpegts_atsc_rrt_dimension_get_type" c:symbol-prefix="atsc_rrt_dimension"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="names" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">the names</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscMultString"/> + </array> + </field> + <field name="graduated_scale" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">whether the ratings represent a graduated scale</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="values_defined" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">the number of values defined for this dimension</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="values" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">set of values</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscRRTDimensionValue"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_atsc_rrt_dimension_new"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="AtscRRTDimension" c:type="GstMpegtsAtscRRTDimension*"/> + </return-value> + </constructor> + </record> + <record name="AtscRRTDimensionValue" c:type="GstMpegtsAtscRRTDimensionValue" version="1.18" glib:type-name="GstMpegtsAtscRRTDimensionValue" glib:get-type="gst_mpegts_atsc_rrt_dimension_value_get_type" c:symbol-prefix="atsc_rrt_dimension_value"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="abbrev_ratings" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">the abbreviated ratings</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscMultString"/> + </array> + </field> + <field name="ratings" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">the ratings</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscMultString"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_atsc_rrt_dimension_value_new"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="AtscRRTDimensionValue" c:type="GstMpegtsAtscRRTDimensionValue*"/> + </return-value> + </constructor> + </record> + <record name="AtscSTT" c:type="GstMpegtsAtscSTT" glib:type-name="GstMpegtsAtscSTT" glib:get-type="gst_mpegts_atsc_stt_get_type" c:symbol-prefix="atsc_stt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">System Time Table (A65)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="protocol_version" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The protocol version</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="system_time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The system time</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="gps_utc_offset" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The GPS to UTC offset</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="ds_status" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="ds_dayofmonth" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The day of month</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="ds_hour" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The hour</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + <field name="utc_datetime" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The UTC date and time</doc> + <type name="Gst.DateTime" c:type="GstDateTime*"/> + </field> + <constructor name="new" c:identifier="gst_mpegts_atsc_stt_new"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="AtscSTT" c:type="GstMpegtsAtscSTT*"/> + </return-value> + </constructor> + <method name="get_datetime_utc" c:identifier="gst_mpegts_atsc_stt_get_datetime_utc"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <instance-parameter name="stt" transfer-ownership="none"> + <type name="AtscSTT" c:type="GstMpegtsAtscSTT*"/> + </instance-parameter> + </parameters> + </method> + </record> + <record name="AtscStringSegment" c:type="GstMpegtsAtscStringSegment" glib:type-name="GstMpegtsAtscStringSegment" glib:get-type="gst_mpegts_atsc_string_segment_get_type" c:symbol-prefix="atsc_string_segment"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">A string segment</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="compression_type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The compression type</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="mode" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The mode</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="compressed_data_size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The size of compressed data</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="compressed_data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The compressed data</doc> + <type name="guint8" c:type="guint8*"/> + </field> + <field name="cached_string" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <method name="get_string" c:identifier="gst_mpegts_atsc_string_segment_get_string"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="seg" transfer-ownership="none"> + <type name="AtscStringSegment" c:type="GstMpegtsAtscStringSegment*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_string" c:identifier="gst_mpegts_atsc_string_segment_set_string"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="seg" transfer-ownership="none"> + <type name="AtscStringSegment" c:type="GstMpegtsAtscStringSegment*"/> + </instance-parameter> + <parameter name="string" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="compression_type" transfer-ownership="none"> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + </record> + <record name="AtscVCT" c:type="GstMpegtsAtscVCT" glib:type-name="GstMpegtsAtscVCT" glib:get-type="gst_mpegts_atsc_vct_get_type" c:symbol-prefix="atsc_vct"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Represents both: + Terrestrial Virtual Channel Table (A65) + Cable Virtual Channel Table (A65)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="transport_stream_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The transport stream</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="protocol_version" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The protocol version</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="sources" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">sources</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="AtscVCTSource"/> + </array> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + </record> + <record name="AtscVCTSource" c:type="GstMpegtsAtscVCTSource" glib:type-name="GstMpegtsAtscVCTSource" glib:get-type="gst_mpegts_atsc_vct_source_get_type" c:symbol-prefix="atsc_vct_source"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Source from a %GstMpegtsAtscVCT, can be used both for TVCT and CVCT tables</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <field name="short_name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The short name of a source</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="major_channel_number" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The major channel number</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="minor_channel_number" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The minor channel number</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="modulation_mode" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The modulation mode</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="carrier_frequency" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The carrier frequency</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="channel_TSID" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The transport stream ID</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="program_number" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The program number (see #GstMpegtsPatProgram)</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="ETM_location" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The ETM location</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="access_controlled" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">is access controlled</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="hidden" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">is hidden</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="path_select" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">is path select, CVCT only</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="out_of_band" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">is out of band, CVCT only</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="hide_guide" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">is hide guide</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="service_type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The service type</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="source_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">The source id</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">an array of #GstMpegtsDescriptor</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + </record> + <record name="AudioPreselectionDescriptor" c:type="GstMpegtsAudioPreselectionDescriptor" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Table 110: Audio Preselection Descriptor (ETSI EN 300 468 v1.16.1)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="preselection_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">5-bit</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="audio_rendering_indication" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">3-bit field</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="audio_description" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">visually impaired</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="spoken_subtitles" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="dialogue_enhancement" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="interactivity_enabled" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="language_code_present" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="text_label_present" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="multi_stream_info_present" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">indicates if this PID conveys a complete audio programme</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="future_extension" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="language_code" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">NULL terminated ISO 639 language code.</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="message_id" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + </record> + <record name="BAT" c:type="GstMpegtsBAT" glib:type-name="GstMpegtsBAT" glib:get-type="gst_mpegts_bat_get_type" c:symbol-prefix="bat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">DVB Bouquet Association Table (EN 300 468)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="descriptors" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + <field name="streams" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="BATStream"/> + </array> + </field> + </record> + <record name="BATStream" c:type="GstMpegtsBATStream" glib:type-name="GstMpegtsBATStream" glib:get-type="gst_mpegts_bat_stream_get_type" c:symbol-prefix="bat_stream"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="transport_stream_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="original_network_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="descriptors" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="CableDeliverySystemDescriptor" c:type="GstMpegtsCableDeliverySystemDescriptor" glib:type-name="GstMpegtsCableDeliverySystemDescriptor" glib:get-type="gst_mpegts_dvb_cable_delivery_system_descriptor_get_type" c:symbol-prefix="dvb_cable_delivery_system_descriptor"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Cable Delivery System Descriptor (EN 300 468 v.1.13.1)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="frequency" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the frequency in Hz (Hertz)</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="outer_fec" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the outer FEC scheme used</doc> + <type name="CableOuterFECScheme" c:type="GstMpegtsCableOuterFECScheme"/> + </field> + <field name="modulation" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Modulation scheme used</doc> + <type name="ModulationType" c:type="GstMpegtsModulationType"/> + </field> + <field name="symbol_rate" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Symbol rate (in symbols per second)</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="fec_inner" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">inner FEC scheme used</doc> + <type name="DVBCodeRate" c:type="GstMpegtsDVBCodeRate"/> + </field> + <method name="free" c:identifier="gst_mpegts_dvb_cable_delivery_system_descriptor_free"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <type name="CableDeliverySystemDescriptor" c:type="GstMpegtsCableDeliverySystemDescriptor*"/> + </instance-parameter> + </parameters> + </method> + </record> + <enumeration name="CableOuterFECScheme" c:type="GstMpegtsCableOuterFECScheme"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="undefined" value="0" c:identifier="GST_MPEGTS_CABLE_OUTER_FEC_UNDEFINED"> + </member> + <member name="none" value="1" c:identifier="GST_MPEGTS_CABLE_OUTER_FEC_NONE"> + </member> + <member name="rs_204_188" value="2" c:identifier="GST_MPEGTS_CABLE_OUTER_FEC_RS_204_188"> + </member> + </enumeration> + <record name="ComponentDescriptor" c:type="GstMpegtsComponentDescriptor" glib:type-name="GstMpegtsComponentDescriptor" glib:get-type="gst_mpegts_component_descriptor_get_type" c:symbol-prefix="component_descriptor"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="stream_content" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="component_type" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="component_tag" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="language_code" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="text" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <enumeration name="ComponentStreamContent" c:type="GstMpegtsComponentStreamContent"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="mpeg2_video" value="1" c:identifier="GST_MPEGTS_STREAM_CONTENT_MPEG2_VIDEO"> + </member> + <member name="mpeg1_layer2_audio" value="2" c:identifier="GST_MPEGTS_STREAM_CONTENT_MPEG1_LAYER2_AUDIO"> + </member> + <member name="teletext_or_subtitle" value="3" c:identifier="GST_MPEGTS_STREAM_CONTENT_TELETEXT_OR_SUBTITLE"> + </member> + <member name="ac_3" value="4" c:identifier="GST_MPEGTS_STREAM_CONTENT_AC_3"> + </member> + <member name="avc" value="5" c:identifier="GST_MPEGTS_STREAM_CONTENT_AVC"> + </member> + <member name="aac" value="6" c:identifier="GST_MPEGTS_STREAM_CONTENT_AAC"> + </member> + <member name="dts" value="7" c:identifier="GST_MPEGTS_STREAM_CONTENT_DTS"> + </member> + <member name="srm_cpcm" value="8" c:identifier="GST_MPEGTS_STREAM_CONTENT_SRM_CPCM"> + </member> + </enumeration> + <record name="Content" c:type="GstMpegtsContent" glib:type-name="GstMpegtsContent" glib:get-type="gst_mpegts_content_get_type" c:symbol-prefix="content"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="content_nibble_1" writable="1"> + <type name="ContentNibbleHi" c:type="GstMpegtsContentNibbleHi"/> + </field> + <field name="content_nibble_2" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="user_byte" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + </record> + <enumeration name="ContentNibbleHi" c:type="GstMpegtsContentNibbleHi"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="movie_drama" value="1" c:identifier="GST_MPEGTS_CONTENT_MOVIE_DRAMA"> + </member> + <member name="news_current_affairs" value="2" c:identifier="GST_MPEGTS_CONTENT_NEWS_CURRENT_AFFAIRS"> + </member> + <member name="show_game_show" value="3" c:identifier="GST_MPEGTS_CONTENT_SHOW_GAME_SHOW"> + </member> + <member name="sports" value="4" c:identifier="GST_MPEGTS_CONTENT_SPORTS"> + </member> + <member name="children_youth_program" value="5" c:identifier="GST_MPEGTS_CONTENT_CHILDREN_YOUTH_PROGRAM"> + </member> + <member name="music_ballet_dance" value="6" c:identifier="GST_MPEGTS_CONTENT_MUSIC_BALLET_DANCE"> + </member> + <member name="arts_culture" value="7" c:identifier="GST_MPEGTS_CONTENT_ARTS_CULTURE"> + </member> + <member name="social_political_economics" value="8" c:identifier="GST_MPEGTS_CONTENT_SOCIAL_POLITICAL_ECONOMICS"> + </member> + <member name="education_science_factual" value="9" c:identifier="GST_MPEGTS_CONTENT_EDUCATION_SCIENCE_FACTUAL"> + </member> + <member name="leisure_hobbies" value="10" c:identifier="GST_MPEGTS_CONTENT_LEISURE_HOBBIES"> + </member> + <member name="special_characteristics" value="11" c:identifier="GST_MPEGTS_CONTENT_SPECIAL_CHARACTERISTICS"> + </member> + </enumeration> + <enumeration name="DVBCodeRate" c:type="GstMpegtsDVBCodeRate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="none" value="0" c:identifier="GST_MPEGTS_FEC_NONE"> + </member> + <member name="1_2" value="1" c:identifier="GST_MPEGTS_FEC_1_2"> + </member> + <member name="2_3" value="2" c:identifier="GST_MPEGTS_FEC_2_3"> + </member> + <member name="3_4" value="3" c:identifier="GST_MPEGTS_FEC_3_4"> + </member> + <member name="4_5" value="4" c:identifier="GST_MPEGTS_FEC_4_5"> + </member> + <member name="5_6" value="5" c:identifier="GST_MPEGTS_FEC_5_6"> + </member> + <member name="6_7" value="6" c:identifier="GST_MPEGTS_FEC_6_7"> + </member> + <member name="7_8" value="7" c:identifier="GST_MPEGTS_FEC_7_8"> + </member> + <member name="8_9" value="8" c:identifier="GST_MPEGTS_FEC_8_9"> + </member> + <member name="auto" value="9" c:identifier="GST_MPEGTS_FEC_AUTO"> + </member> + <member name="3_5" value="10" c:identifier="GST_MPEGTS_FEC_3_5"> + </member> + <member name="9_10" value="11" c:identifier="GST_MPEGTS_FEC_9_10"> + </member> + <member name="2_5" value="12" c:identifier="GST_MPEGTS_FEC_2_5"> + </member> + </enumeration> + <enumeration name="DVBDescriptorType" c:type="GstMpegtsDVBDescriptorType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">The type of #GstMpegtsDescriptor + +These values correspond to the registered descriptor type from +the various DVB specifications. + +Consult the relevant specifications for more details.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="network_name" value="64" c:identifier="GST_MTS_DESC_DVB_NETWORK_NAME"> + </member> + <member name="service_list" value="65" c:identifier="GST_MTS_DESC_DVB_SERVICE_LIST"> + </member> + <member name="stuffing" value="66" c:identifier="GST_MTS_DESC_DVB_STUFFING"> + </member> + <member name="satellite_delivery_system" value="67" c:identifier="GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM"> + </member> + <member name="cable_delivery_system" value="68" c:identifier="GST_MTS_DESC_DVB_CABLE_DELIVERY_SYSTEM"> + </member> + <member name="vbi_data" value="69" c:identifier="GST_MTS_DESC_DVB_VBI_DATA"> + </member> + <member name="vbi_teletext" value="70" c:identifier="GST_MTS_DESC_DVB_VBI_TELETEXT"> + </member> + <member name="bouquet_name" value="71" c:identifier="GST_MTS_DESC_DVB_BOUQUET_NAME"> + </member> + <member name="service" value="72" c:identifier="GST_MTS_DESC_DVB_SERVICE"> + </member> + <member name="country_availability" value="73" c:identifier="GST_MTS_DESC_DVB_COUNTRY_AVAILABILITY"> + </member> + <member name="linkage" value="74" c:identifier="GST_MTS_DESC_DVB_LINKAGE"> + </member> + <member name="nvod_reference" value="75" c:identifier="GST_MTS_DESC_DVB_NVOD_REFERENCE"> + </member> + <member name="time_shifted_service" value="76" c:identifier="GST_MTS_DESC_DVB_TIME_SHIFTED_SERVICE"> + </member> + <member name="short_event" value="77" c:identifier="GST_MTS_DESC_DVB_SHORT_EVENT"> + </member> + <member name="extended_event" value="78" c:identifier="GST_MTS_DESC_DVB_EXTENDED_EVENT"> + </member> + <member name="time_shifted_event" value="79" c:identifier="GST_MTS_DESC_DVB_TIME_SHIFTED_EVENT"> + </member> + <member name="component" value="80" c:identifier="GST_MTS_DESC_DVB_COMPONENT"> + </member> + <member name="mosaic" value="81" c:identifier="GST_MTS_DESC_DVB_MOSAIC"> + </member> + <member name="stream_identifier" value="82" c:identifier="GST_MTS_DESC_DVB_STREAM_IDENTIFIER"> + </member> + <member name="ca_identifier" value="83" c:identifier="GST_MTS_DESC_DVB_CA_IDENTIFIER"> + </member> + <member name="content" value="84" c:identifier="GST_MTS_DESC_DVB_CONTENT"> + </member> + <member name="parental_rating" value="85" c:identifier="GST_MTS_DESC_DVB_PARENTAL_RATING"> + </member> + <member name="teletext" value="86" c:identifier="GST_MTS_DESC_DVB_TELETEXT"> + </member> + <member name="telephone" value="87" c:identifier="GST_MTS_DESC_DVB_TELEPHONE"> + </member> + <member name="local_time_offset" value="88" c:identifier="GST_MTS_DESC_DVB_LOCAL_TIME_OFFSET"> + </member> + <member name="subtitling" value="89" c:identifier="GST_MTS_DESC_DVB_SUBTITLING"> + </member> + <member name="terrestrial_delivery_system" value="90" c:identifier="GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM"> + </member> + <member name="multilingual_network_name" value="91" c:identifier="GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME"> + </member> + <member name="multilingual_bouquet_name" value="92" c:identifier="GST_MTS_DESC_DVB_MULTILINGUAL_BOUQUET_NAME"> + </member> + <member name="multilingual_service_name" value="93" c:identifier="GST_MTS_DESC_DVB_MULTILINGUAL_SERVICE_NAME"> + </member> + <member name="multilingual_component" value="94" c:identifier="GST_MTS_DESC_DVB_MULTILINGUAL_COMPONENT"> + </member> + <member name="private_data_specifier" value="95" c:identifier="GST_MTS_DESC_DVB_PRIVATE_DATA_SPECIFIER"> + </member> + <member name="service_move" value="96" c:identifier="GST_MTS_DESC_DVB_SERVICE_MOVE"> + </member> + <member name="short_smoothing_buffer" value="97" c:identifier="GST_MTS_DESC_DVB_SHORT_SMOOTHING_BUFFER"> + </member> + <member name="frequency_list" value="98" c:identifier="GST_MTS_DESC_DVB_FREQUENCY_LIST"> + </member> + <member name="partial_transport_stream" value="99" c:identifier="GST_MTS_DESC_DVB_PARTIAL_TRANSPORT_STREAM"> + </member> + <member name="data_broadcast" value="100" c:identifier="GST_MTS_DESC_DVB_DATA_BROADCAST"> + </member> + <member name="scrambling" value="101" c:identifier="GST_MTS_DESC_DVB_SCRAMBLING"> + </member> + <member name="data_broadcast_id" value="102" c:identifier="GST_MTS_DESC_DVB_DATA_BROADCAST_ID"> + </member> + <member name="transport_stream" value="103" c:identifier="GST_MTS_DESC_DVB_TRANSPORT_STREAM"> + </member> + <member name="dsng" value="104" c:identifier="GST_MTS_DESC_DVB_DSNG"> + </member> + <member name="pdc" value="105" c:identifier="GST_MTS_DESC_DVB_PDC"> + </member> + <member name="ac3" value="106" c:identifier="GST_MTS_DESC_DVB_AC3"> + </member> + <member name="ancillary_data" value="107" c:identifier="GST_MTS_DESC_DVB_ANCILLARY_DATA"> + </member> + <member name="cell_list" value="108" c:identifier="GST_MTS_DESC_DVB_CELL_LIST"> + </member> + <member name="cell_frequency_link" value="109" c:identifier="GST_MTS_DESC_DVB_CELL_FREQUENCY_LINK"> + </member> + <member name="announcement_support" value="110" c:identifier="GST_MTS_DESC_DVB_ANNOUNCEMENT_SUPPORT"> + </member> + <member name="application_signalling" value="111" c:identifier="GST_MTS_DESC_DVB_APPLICATION_SIGNALLING"> + </member> + <member name="adaptation_field_data" value="112" c:identifier="GST_MTS_DESC_DVB_ADAPTATION_FIELD_DATA"> + </member> + <member name="service_identifier" value="113" c:identifier="GST_MTS_DESC_DVB_SERVICE_IDENTIFIER"> + </member> + <member name="service_availability" value="114" c:identifier="GST_MTS_DESC_DVB_SERVICE_AVAILABILITY"> + </member> + <member name="default_authority" value="115" c:identifier="GST_MTS_DESC_DVB_DEFAULT_AUTHORITY"> + </member> + <member name="related_content" value="116" c:identifier="GST_MTS_DESC_DVB_RELATED_CONTENT"> + </member> + <member name="tva_id" value="117" c:identifier="GST_MTS_DESC_DVB_TVA_ID"> + </member> + <member name="content_identifier" value="118" c:identifier="GST_MTS_DESC_DVB_CONTENT_IDENTIFIER"> + </member> + <member name="timeslice_fec_identifier" value="119" c:identifier="GST_MTS_DESC_DVB_TIMESLICE_FEC_IDENTIFIER"> + </member> + <member name="ecm_repetition_rate" value="120" c:identifier="GST_MTS_DESC_DVB_ECM_REPETITION_RATE"> + </member> + <member name="s2_satellite_delivery_system" value="121" c:identifier="GST_MTS_DESC_DVB_S2_SATELLITE_DELIVERY_SYSTEM"> + </member> + <member name="enhanced_ac3" value="122" c:identifier="GST_MTS_DESC_DVB_ENHANCED_AC3"> + </member> + <member name="dts" value="123" c:identifier="GST_MTS_DESC_DVB_DTS"> + </member> + <member name="aac" value="124" c:identifier="GST_MTS_DESC_DVB_AAC"> + </member> + <member name="xait_location" value="125" c:identifier="GST_MTS_DESC_DVB_XAIT_LOCATION"> + </member> + <member name="fta_content_management" value="126" c:identifier="GST_MTS_DESC_DVB_FTA_CONTENT_MANAGEMENT"> + </member> + <member name="extension" value="127" c:identifier="GST_MTS_DESC_DVB_EXTENSION"> + </member> + </enumeration> + <enumeration name="DVBExtendedDescriptorType" c:type="GstMpegtsDVBExtendedDescriptorType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">The type of #GstMpegtsDescriptor + +These values correspond to the registered extended descriptor +type from the various DVB specifications. + +Consult the relevant specifications for more details.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="image_icon" value="0" c:identifier="GST_MTS_DESC_EXT_DVB_IMAGE_ICON"> + </member> + <member name="cpcm_delivery_signalling" value="1" c:identifier="GST_MTS_DESC_EXT_DVB_CPCM_DELIVERY_SIGNALLING"> + </member> + <member name="cp" value="2" c:identifier="GST_MTS_DESC_EXT_DVB_CP"> + </member> + <member name="cp_identifier" value="3" c:identifier="GST_MTS_DESC_EXT_DVB_CP_IDENTIFIER"> + </member> + <member name="t2_delivery_system" value="4" c:identifier="GST_MTS_DESC_EXT_DVB_T2_DELIVERY_SYSTEM"> + </member> + <member name="sh_delivery_system" value="5" c:identifier="GST_MTS_DESC_EXT_DVB_SH_DELIVERY_SYSTEM"> + </member> + <member name="supplementary_audio" value="6" c:identifier="GST_MTS_DESC_EXT_DVB_SUPPLEMENTARY_AUDIO"> + </member> + <member name="network_change_notify" value="7" c:identifier="GST_MTS_DESC_EXT_DVB_NETWORK_CHANGE_NOTIFY"> + </member> + <member name="message" value="8" c:identifier="GST_MTS_DESC_EXT_DVB_MESSAGE"> + </member> + <member name="target_region" value="9" c:identifier="GST_MTS_DESC_EXT_DVB_TARGET_REGION"> + </member> + <member name="target_region_name" value="10" c:identifier="GST_MTS_DESC_EXT_DVB_TARGET_REGION_NAME"> + </member> + <member name="service_relocated" value="11" c:identifier="GST_MTS_DESC_EXT_DVB_SERVICE_RELOCATED"> + </member> + <member name="xait_pid" value="12" c:identifier="GST_MTS_DESC_EXT_DVB_XAIT_PID"> + </member> + <member name="c2_delivery_system" value="13" c:identifier="GST_MTS_DESC_EXT_DVB_C2_DELIVERY_SYSTEM"> + </member> + <member name="dts_hd_audio_stream" value="14" c:identifier="GST_MTS_DESC_EXT_DVB_DTS_HD_AUDIO_STREAM"> + </member> + <member name="dts_neutral" value="15" c:identifier="GST_MTS_DESC_EXT_DVB_DTS_NEUTRAL"> + </member> + <member name="video_depth_range" value="16" c:identifier="GST_MTS_DESC_EXT_DVB_VIDEO_DEPTH_RANGE"> + </member> + <member name="t2mi" value="17" c:identifier="GST_MTS_DESC_EXT_DVB_T2MI"> + </member> + <member name="uri_linkage" value="19" c:identifier="GST_MTS_DESC_EXT_DVB_URI_LINKAGE"> + </member> + <member name="ac4" value="21" c:identifier="GST_MTS_DESC_EXT_DVB_AC4"> + </member> + <member name="audio_preselection" value="25" c:identifier="GST_MTS_DESC_EXT_DVB_AUDIO_PRESELECTION"> + </member> + </enumeration> + <record name="DVBLinkageDescriptor" c:type="GstMpegtsDVBLinkageDescriptor" glib:type-name="GstMpegtsDVBLinkageDescriptor" glib:get-type="gst_mpegts_dvb_linkage_descriptor_get_type" c:symbol-prefix="dvb_linkage_descriptor"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="transport_stream_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the transport id</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="original_network_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the original network id</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="service_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the service id</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="linkage_type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the type which @linkage_data has</doc> + <type name="DVBLinkageType" c:type="GstMpegtsDVBLinkageType"/> + </field> + <field name="linkage_data" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <field name="private_data_length" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the length for @private_data_bytes</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="private_data_bytes" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">additional data bytes</doc> + <type name="guint8" c:type="guint8*"/> + </field> + <method name="free" c:identifier="gst_mpegts_dvb_linkage_descriptor_free"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <type name="DVBLinkageDescriptor" c:type="GstMpegtsDVBLinkageDescriptor*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_event" c:identifier="gst_mpegts_dvb_linkage_descriptor_get_event"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">The #GstMpegtsDVBLinkageEvent or %NULL if an error happened</doc> + <type name="DVBLinkageEvent" c:type="const GstMpegtsDVBLinkageEvent*"/> + </return-value> + <parameters> + <instance-parameter name="desc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsDVBLinkageDescriptor</doc> + <type name="DVBLinkageDescriptor" c:type="const GstMpegtsDVBLinkageDescriptor*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_extended_event" c:identifier="gst_mpegts_dvb_linkage_descriptor_get_extended_event"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">an #GstMpegtsDVBLinkageExtendedEvent array or %NULL if an error happened</doc> + <array name="GLib.PtrArray" c:type="const GPtrArray*"> + <type name="DVBLinkageExtendedEvent"/> + </array> + </return-value> + <parameters> + <instance-parameter name="desc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsDVBLinkageDescriptor</doc> + <type name="DVBLinkageDescriptor" c:type="const GstMpegtsDVBLinkageDescriptor*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_mobile_hand_over" c:identifier="gst_mpegts_dvb_linkage_descriptor_get_mobile_hand_over"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">The #GstMpegtsDVBLinkageMobileHandOver or %NULL if an error happened</doc> + <type name="DVBLinkageMobileHandOver" c:type="const GstMpegtsDVBLinkageMobileHandOver*"/> + </return-value> + <parameters> + <instance-parameter name="desc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsDVBLinkageDescriptor</doc> + <type name="DVBLinkageDescriptor" c:type="const GstMpegtsDVBLinkageDescriptor*"/> + </instance-parameter> + </parameters> + </method> + </record> + <record name="DVBLinkageEvent" c:type="GstMpegtsDVBLinkageEvent" glib:type-name="GstMpegtsDVBLinkageEvent" glib:get-type="gst_mpegts_dvb_linkage_event_get_type" c:symbol-prefix="dvb_linkage_event"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="target_event_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="target_listed" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="event_simulcast" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + </record> + <record name="DVBLinkageExtendedEvent" c:type="GstMpegtsDVBLinkageExtendedEvent" glib:type-name="GstMpegtsDVBLinkageExtendedEvent" glib:get-type="gst_mpegts_dvb_linkage_extended_event_get_type" c:symbol-prefix="dvb_linkage_extended_event"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="target_event_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="target_listed" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="event_simulcast" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="link_type" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="target_id_type" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="original_network_id_flag" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="service_id_flag" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="user_defined_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="target_transport_stream_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="target_original_network_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="target_service_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + </record> + <enumeration name="DVBLinkageHandOverType" c:type="GstMpegtsDVBLinkageHandOverType"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="reserved" value="0" c:identifier="GST_MPEGTS_DVB_LINKAGE_HAND_OVER_RESERVED"> + </member> + <member name="identical" value="1" c:identifier="GST_MPEGTS_DVB_LINKAGE_HAND_OVER_IDENTICAL"> + </member> + <member name="local_variation" value="2" c:identifier="GST_MPEGTS_DVB_LINKAGE_HAND_OVER_LOCAL_VARIATION"> + </member> + <member name="associated" value="3" c:identifier="GST_MPEGTS_DVB_LINKAGE_HAND_OVER_ASSOCIATED"> + </member> + </enumeration> + <record name="DVBLinkageMobileHandOver" c:type="GstMpegtsDVBLinkageMobileHandOver" glib:type-name="GstMpegtsDVBLinkageMobileHandOver" glib:get-type="gst_mpegts_dvb_linkage_mobile_hand_over_get_type" c:symbol-prefix="dvb_linkage_mobile_hand_over"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="hand_over_type" writable="1"> + <type name="DVBLinkageHandOverType" c:type="GstMpegtsDVBLinkageHandOverType"/> + </field> + <field name="origin_type" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="network_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="initial_service_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + </record> + <enumeration name="DVBLinkageType" c:type="GstMpegtsDVBLinkageType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Linkage Type (EN 300 468 v.1.13.1)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="reserved_00" value="0" c:identifier="GST_MPEGTS_DVB_LINKAGE_RESERVED_00"> + </member> + <member name="information" value="1" c:identifier="GST_MPEGTS_DVB_LINKAGE_INFORMATION"> + </member> + <member name="epg" value="2" c:identifier="GST_MPEGTS_DVB_LINKAGE_EPG"> + </member> + <member name="ca_replacement" value="3" c:identifier="GST_MPEGTS_DVB_LINKAGE_CA_REPLACEMENT"> + </member> + <member name="ts_containing_complete_si" value="4" c:identifier="GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_COMPLETE_SI"> + </member> + <member name="service_replacement" value="5" c:identifier="GST_MPEGTS_DVB_LINKAGE_SERVICE_REPLACEMENT"> + </member> + <member name="data_broadcast" value="6" c:identifier="GST_MPEGTS_DVB_LINKAGE_DATA_BROADCAST"> + </member> + <member name="rcs_map" value="7" c:identifier="GST_MPEGTS_DVB_LINKAGE_RCS_MAP"> + </member> + <member name="mobile_hand_over" value="8" c:identifier="GST_MPEGTS_DVB_LINKAGE_MOBILE_HAND_OVER"> + </member> + <member name="system_software_update" value="9" c:identifier="GST_MPEGTS_DVB_LINKAGE_SYSTEM_SOFTWARE_UPDATE"> + </member> + <member name="ts_containing_ssu" value="10" c:identifier="GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_SSU"> + </member> + <member name="ip_mac_notification" value="11" c:identifier="GST_MPEGTS_DVB_LINKAGE_IP_MAC_NOTIFICATION"> + </member> + <member name="ts_containing_int" value="12" c:identifier="GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_INT"> + </member> + <member name="event" value="13" c:identifier="GST_MPEGTS_DVB_LINKAGE_EVENT"> + </member> + <member name="extended_event" value="14" c:identifier="GST_MPEGTS_DVB_LINKAGE_EXTENDED_EVENT"> + </member> + </enumeration> + <record name="DVBParentalRatingItem" c:type="GstMpegtsDVBParentalRatingItem" glib:type-name="GstMpegtsDVBParentalRatingItem" glib:get-type="gst_mpegts_dvb_parental_rating_item_get_type" c:symbol-prefix="dvb_parental_rating_item"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="country_code" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="rating" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + </record> + <enumeration name="DVBScramblingModeType" c:type="GstMpegtsDVBScramblingModeType"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="reserved" value="0" c:identifier="GST_MPEGTS_DVB_SCRAMBLING_MODE_RESERVED"> + </member> + <member name="csa1" value="1" c:identifier="GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA1"> + </member> + <member name="csa2" value="2" c:identifier="GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA2"> + </member> + <member name="csa3_standard" value="3" c:identifier="GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_STANDARD"> + </member> + <member name="csa3_minimal_enhanced" value="4" c:identifier="GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_MINIMAL_ENHANCED"> + </member> + <member name="csa3_full_enhanced" value="5" c:identifier="GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_FULL_ENHANCED"> + </member> + <member name="cissa" value="16" c:identifier="GST_MPEGTS_DVB_SCRAMBLING_MODE_CISSA"> + </member> + <member name="atis_0" value="112" c:identifier="GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_0"> + </member> + <member name="atis_f" value="127" c:identifier="GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_F"> + </member> + </enumeration> + <record name="DVBServiceListItem" c:type="GstMpegtsDVBServiceListItem" glib:type-name="GstMpegtsDVBServiceListItem" glib:get-type="gst_mpegts_dvb_service_list_item_get_type" c:symbol-prefix="dvb_service_list_item"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="service_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the id of a service</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the type of a service</doc> + <type name="DVBServiceType" c:type="GstMpegtsDVBServiceType"/> + </field> + </record> + <enumeration name="DVBServiceType" c:type="GstMpegtsDVBServiceType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">The type of service of a channel. + +As specified in Table 87 of ETSI EN 300 468 v1.13.1</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="reserved_00" value="0" c:identifier="GST_DVB_SERVICE_RESERVED_00"> + </member> + <member name="digital_television" value="1" c:identifier="GST_DVB_SERVICE_DIGITAL_TELEVISION"> + </member> + <member name="digital_radio_sound" value="2" c:identifier="GST_DVB_SERVICE_DIGITAL_RADIO_SOUND"> + </member> + <member name="teletext" value="3" c:identifier="GST_DVB_SERVICE_TELETEXT"> + </member> + <member name="nvod_reference" value="4" c:identifier="GST_DVB_SERVICE_NVOD_REFERENCE"> + </member> + <member name="nvod_time_shifted" value="5" c:identifier="GST_DVB_SERVICE_NVOD_TIME_SHIFTED"> + </member> + <member name="mosaic" value="6" c:identifier="GST_DVB_SERVICE_MOSAIC"> + </member> + <member name="fm_radio" value="7" c:identifier="GST_DVB_SERVICE_FM_RADIO"> + </member> + <member name="dvb_srm" value="8" c:identifier="GST_DVB_SERVICE_DVB_SRM"> + </member> + <member name="reserved_09" value="9" c:identifier="GST_DVB_SERVICE_RESERVED_09"> + </member> + <member name="advanced_codec_digital_radio_sound" value="10" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_DIGITAL_RADIO_SOUND"> + </member> + <member name="advanced_codec_mosaic" value="11" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_MOSAIC"> + </member> + <member name="data_broadcast" value="12" c:identifier="GST_DVB_SERVICE_DATA_BROADCAST"> + </member> + <member name="reserved_0d_common_interface" value="13" c:identifier="GST_DVB_SERVICE_RESERVED_0D_COMMON_INTERFACE"> + </member> + <member name="rcs_map" value="14" c:identifier="GST_DVB_SERVICE_RCS_MAP"> + </member> + <member name="rcs_fls" value="15" c:identifier="GST_DVB_SERVICE_RCS_FLS"> + </member> + <member name="dvb_mhp" value="16" c:identifier="GST_DVB_SERVICE_DVB_MHP"> + </member> + <member name="mpeg2_hd_digital_television" value="17" c:identifier="GST_DVB_SERVICE_MPEG2_HD_DIGITAL_TELEVISION"> + </member> + <member name="advanced_codec_sd_digital_television" value="22" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_SD_DIGITAL_TELEVISION"> + </member> + <member name="advanced_codec_sd_nvod_time_shifted" value="23" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_TIME_SHIFTED"> + </member> + <member name="advanced_codec_sd_nvod_reference" value="24" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_REFERENCE"> + </member> + <member name="advanced_codec_hd_digital_television" value="25" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_HD_DIGITAL_TELEVISION"> + </member> + <member name="advanced_codec_hd_nvod_time_shifted" value="26" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_TIME_SHIFTED"> + </member> + <member name="advanced_codec_hd_nvod_reference" value="27" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_REFERENCE"> + </member> + <member name="advanced_codec_stereo_hd_digital_television" value="28" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_DIGITAL_TELEVISION"> + </member> + <member name="advanced_codec_stereo_hd_nvod_time_shifted" value="29" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_TIME_SHIFTED"> + </member> + <member name="advanced_codec_stereo_hd_nvod_reference" value="30" c:identifier="GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_REFERENCE"> + </member> + <member name="reserved_ff" value="31" c:identifier="GST_DVB_SERVICE_RESERVED_FF"> + </member> + </enumeration> + <enumeration name="DVBTeletextType" c:type="GstMpegtsDVBTeletextType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">The type of teletext page. + +As specified in Table 100 of ETSI EN 300 468 v1.13.1</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="nitial_page" value="1" c:identifier="INITIAL_PAGE"> + </member> + <member name="ubtitle_page" value="2" c:identifier="SUBTITLE_PAGE"> + </member> + <member name="dditional_info_page" value="3" c:identifier="ADDITIONAL_INFO_PAGE"> + </member> + <member name="rogramme_schedule_page" value="4" c:identifier="PROGRAMME_SCHEDULE_PAGE"> + </member> + <member name="earing_impaired_page" value="5" c:identifier="HEARING_IMPAIRED_PAGE"> + </member> + </enumeration> + <record name="DataBroadcastDescriptor" c:type="GstMpegtsDataBroadcastDescriptor" glib:type-name="GstMpegtsDataBroadcastDescriptor" glib:get-type="gst_mpegts_dvb_data_broadcast_descriptor_get_type" c:symbol-prefix="dvb_data_broadcast_descriptor"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="data_broadcast_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the data broadcast id</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="component_tag" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the component tag</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="length" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="selector_bytes" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the selector byte field</doc> + <type name="guint8" c:type="guint8*"/> + </field> + <field name="language_code" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">language of @text</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="text" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">description of data broadcast</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <method name="free" c:identifier="gst_mpegts_dvb_data_broadcast_descriptor_free"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <type name="DataBroadcastDescriptor" c:type="GstMpegtsDataBroadcastDescriptor*"/> + </instance-parameter> + </parameters> + </method> + </record> + <record name="Descriptor" c:type="GstMpegtsDescriptor" glib:type-name="GstMpegtsDescriptor" glib:get-type="gst_mpegts_descriptor_get_type" c:symbol-prefix="descriptor"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">These are the base descriptor types and methods. + +For more details, refer to the ITU H.222.0 or ISO/IEC 13818-1 specifications +and other specifications mentioned in the documentation.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <field name="tag" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">the type of descriptor</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="tag_extension" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">the extended type (if @descriptor_tag is 0x7f)</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="length" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">the length of the descriptor content (excluding tag/length field)</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">the full descriptor data (including tag, extension, length). The first +two bytes are the @tag and @length.</doc> + <type name="guint8" c:type="guint8*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="free" c:identifier="gst_mpegts_descriptor_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Frees @desc</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="desc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">The descriptor to free</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </instance-parameter> + </parameters> + </method> + <method name="parse_audio_preselection_list" c:identifier="gst_mpegts_descriptor_parse_audio_preselection_list" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out a list of audio preselection from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_EXT_DVB_AUDIO_PRESELECTION #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="list" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c"> +the list of audio preselection</doc> + <array name="GLib.PtrArray" c:type="GPtrArray**"> + <type name="AudioPreselectionDescriptor"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_ca" c:identifier="gst_mpegts_descriptor_parse_ca"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Extracts the Conditional Access information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">a %GST_MTS_DESC_CA #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="ca_system_id" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">the type of CA system used</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + <parameter name="ca_pid" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">The PID containing ECM or EMM data</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + <parameter name="private_data" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">The private data</doc> + <array length="3" zero-terminated="0" c:type="const guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + <parameter name="private_data_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">The size of @private_data in bytes</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="parse_cable_delivery_system" c:identifier="gst_mpegts_descriptor_parse_cable_delivery_system"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the cable delivery system information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_CABLE_DELIVERY_SYSTEM #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsCableDeliverySystemDescriptor to fill</doc> + <type name="CableDeliverySystemDescriptor" c:type="GstMpegtsCableDeliverySystemDescriptor*"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_bouquet_name" c:identifier="gst_mpegts_descriptor_parse_dvb_bouquet_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the bouquet name from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="bouquet_name" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the bouquet name</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_ca_identifier" c:identifier="gst_mpegts_descriptor_parse_dvb_ca_identifier"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts ca id's from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_CA_IDENTIFIER #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="list" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a list of ca identifier. +Edge entry identifies the CA system. Allocations of the value of this field +are found in http://www.dvbservices.com</doc> + <array name="GLib.Array" c:type="GArray**"> + <type name="guint16"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_dvb_component" c:identifier="gst_mpegts_descriptor_parse_dvb_component"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the DVB component information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_COMPONENT #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsComponentDescriptor to fill</doc> + <type name="ComponentDescriptor" c:type="GstMpegtsComponentDescriptor**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_content" c:identifier="gst_mpegts_descriptor_parse_dvb_content"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the DVB content information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_CONTENT #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="content" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">#GstMpegtsContent</doc> + <array name="GLib.PtrArray" c:type="GPtrArray**"> + <type name="Content"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_dvb_data_broadcast" c:identifier="gst_mpegts_descriptor_parse_dvb_data_broadcast"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the data broadcast from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_DATA_BROADCAST #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">#GstMpegtsDataBroadcastDescriptor</doc> + <type name="DataBroadcastDescriptor" c:type="GstMpegtsDataBroadcastDescriptor**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_data_broadcast_id" c:identifier="gst_mpegts_descriptor_parse_dvb_data_broadcast_id"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the data broadcast id from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_DATA_BROADCAST_ID #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="data_broadcast_id" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the data broadcast id</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + <parameter name="id_selector_bytes" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the selector bytes, if present</doc> + <array length="2" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + <parameter name="len" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the length of @id_selector_bytes</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_extended_event" c:identifier="gst_mpegts_descriptor_parse_dvb_extended_event"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the DVB extended event information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_EXTENDED_EVENT #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsExtendedEventDescriptor to fill</doc> + <type name="ExtendedEventDescriptor" c:type="GstMpegtsExtendedEventDescriptor**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_frequency_list" c:identifier="gst_mpegts_descriptor_parse_dvb_frequency_list"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out a list of frequencies from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_FREQUENCY_LIST #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="offset" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%FALSE in Hz, %TRUE in kHz</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + <parameter name="list" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a list of all frequencies in Hz/kHz +depending on @offset</doc> + <array name="GLib.Array" c:type="GArray**"> + <type name="guint32"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_dvb_linkage" c:identifier="gst_mpegts_descriptor_parse_dvb_linkage"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the DVB linkage information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_LINKAGE #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsDVBLinkageDescriptor to fill</doc> + <type name="DVBLinkageDescriptor" c:type="GstMpegtsDVBLinkageDescriptor**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_multilingual_bouquet_name" c:identifier="gst_mpegts_descriptor_parse_dvb_multilingual_bouquet_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the multilingual bouquet name from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_MULTILINGUAL_BOUQUET_NAME +#GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="bouquet_name_items" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c"> +a #GstMpegtsDvbMultilingualBouquetNameItem</doc> + <array name="GLib.PtrArray" c:type="GPtrArray**"> + <type name="DvbMultilingualBouquetNameItem"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_dvb_multilingual_component" c:identifier="gst_mpegts_descriptor_parse_dvb_multilingual_component"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the multilingual component from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_MULTILINGUAL_COMPONENT +#GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="component_tag" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the component tag</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="component_description_items" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c"> +a #GstMpegtsDvbMultilingualComponentItem</doc> + <array name="GLib.PtrArray" c:type="GPtrArray**"> + <type name="DvbMultilingualComponentItem"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_dvb_multilingual_network_name" c:identifier="gst_mpegts_descriptor_parse_dvb_multilingual_network_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the multilingual network name from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME +#GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="network_name_items" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c"> +a #GstMpegtsDvbMultilingualNetworkNameItem</doc> + <array name="GLib.PtrArray" c:type="GPtrArray**"> + <type name="DvbMultilingualNetworkNameItem"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_dvb_multilingual_service_name" c:identifier="gst_mpegts_descriptor_parse_dvb_multilingual_service_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the multilingual service name from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_MULTILINGUAL_SERVICE_NAME +#GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="service_name_items" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c"> +a #GstMpegtsDvbMultilingualServiceNameItem</doc> + <array name="GLib.PtrArray" c:type="GPtrArray**"> + <type name="DvbMultilingualServiceNameItem"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_dvb_network_name" c:identifier="gst_mpegts_descriptor_parse_dvb_network_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the dvb network name from the @descriptor:</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_NETWORK_NAME #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="name" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the extracted name</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_parental_rating" c:identifier="gst_mpegts_descriptor_parse_dvb_parental_rating"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the DVB parental rating information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_PARENTAL_RATING #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="rating" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c"> +#GstMpegtsDVBParentalRatingItem</doc> + <array name="GLib.PtrArray" c:type="GPtrArray**"> + <type name="DVBParentalRatingItem"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_dvb_private_data_specifier" c:identifier="gst_mpegts_descriptor_parse_dvb_private_data_specifier"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the private data specifier from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_PRIVATE_DATA_SPECIFIER #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="private_data_specifier" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the private data specifier id +registered by http://www.dvbservices.com/</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="private_data" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">additional data or NULL</doc> + <array length="2" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">length of @private_data</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_scrambling" c:identifier="gst_mpegts_descriptor_parse_dvb_scrambling"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the scrambling mode from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_SCRAMBLING #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="scrambling_mode" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">This 8-bit field identifies the selected +mode of the scrambling algorithm (#GstMpegtsDVBScramblingModeType). +The technical details of the scrambling algorithm are available only +to bona-fide users upon signature of a Non Disclosure Agreement (NDA) +administered by the DVB Common Scrambling Algorithm Custodian.</doc> + <type name="DVBScramblingModeType" c:type="GstMpegtsDVBScramblingModeType*"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_service" c:identifier="gst_mpegts_descriptor_parse_dvb_service"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the dvb service information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_SERVICE #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="service_type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the service type</doc> + <type name="DVBServiceType" c:type="GstMpegtsDVBServiceType*"/> + </parameter> + <parameter name="service_name" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the service name</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="provider_name" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the provider name</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_service_list" c:identifier="gst_mpegts_descriptor_parse_dvb_service_list"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out a list of services from the @descriptor:</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_SERVICE_LIST #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="list" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c"> +the list of services</doc> + <array name="GLib.PtrArray" c:type="GPtrArray**"> + <type name="DVBServiceListItem"/> + </array> + </parameter> + </parameters> + </method> + <method name="parse_dvb_short_event" c:identifier="gst_mpegts_descriptor_parse_dvb_short_event"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the DVB short event information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_SHORT_EVENT #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="language_code" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the language code</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="event_name" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the event name</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="text" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the event text</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_stream_identifier" c:identifier="gst_mpegts_descriptor_parse_dvb_stream_identifier"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the component tag from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_CONTENT #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="component_tag" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the component tag</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_stuffing" c:identifier="gst_mpegts_descriptor_parse_dvb_stuffing"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the stuffing bytes from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_STUFFING #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="stuffing_bytes" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the stuffing bytes</doc> + <type name="guint8" c:type="guint8**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_subtitling_idx" c:identifier="gst_mpegts_descriptor_parse_dvb_subtitling_idx"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the DVB subtitling informatio from specific table id in @descriptor. + +Note: Use #gst_tag_get_language_code if you want to get the the +ISO 639-1 language code from the returned ISO 639-2 one.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_SUBTITLING #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Table id of the entry to parse</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="lang" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the language code</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="type" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the type of subtitling</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="composition_page_id" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the composition page id</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + <parameter name="ancillary_page_id" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the ancillary page id</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_subtitling_nb" c:identifier="gst_mpegts_descriptor_parse_dvb_subtitling_nb"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">The number of entries in @descriptor</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_SUBTITLING #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + </parameters> + </method> + <method name="parse_dvb_t2_delivery_system" c:identifier="gst_mpegts_descriptor_parse_dvb_t2_delivery_system"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the DVB-T2 delivery system from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_EXT_DVB_T2_DELIVERY_SYSTEM #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">#GstMpegtsT2DeliverySystemDescriptor</doc> + <type name="T2DeliverySystemDescriptor" c:type="GstMpegtsT2DeliverySystemDescriptor**"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_teletext_idx" c:identifier="gst_mpegts_descriptor_parse_dvb_teletext_idx"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses teletext number @idx in the @descriptor. The language is in ISO639 format.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">FALSE on out-of-bounds and errors</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_TELETEXT #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">The id of the teletext to get</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="language_code" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a null-terminated string</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="teletext_type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">#GstMpegtsDVBTeletextType</doc> + <type name="DVBTeletextType" c:type="GstMpegtsDVBTeletextType*"/> + </parameter> + <parameter name="magazine_number" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="page_number" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <type name="guint8" c:type="guint8*"/> + </parameter> + </parameters> + </method> + <method name="parse_dvb_teletext_nb" c:identifier="gst_mpegts_descriptor_parse_dvb_teletext_nb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Find the number of teletext entries in @descriptor</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Number of teletext entries</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_TELETEXT #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + </parameters> + </method> + <method name="parse_iso_639_language" c:identifier="gst_mpegts_descriptor_parse_iso_639_language"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Extracts the iso 639-2 language information from @descriptor. + +Note: Use #gst_tag_get_language_code if you want to get the the +ISO 639-1 language code from the returned ISO 639-2 one.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">the #GstMpegtsISO639LanguageDescriptor to fill</doc> + <type name="ISO639LanguageDescriptor" c:type="GstMpegtsISO639LanguageDescriptor**"/> + </parameter> + </parameters> + </method> + <method name="parse_iso_639_language_idx" c:identifier="gst_mpegts_descriptor_parse_iso_639_language_idx"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Extracts the iso 639-2 language information from specific table id in @descriptor. + +Note: Use #gst_tag_get_language_code if you want to get the the +ISO 639-1 language code from the returned ISO 639-2 one.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Table id of the language to parse</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="lang" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">4-byte gchar array to hold the language code</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="audio_type" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">the #GstMpegtsIso639AudioType to set</doc> + <type name="Iso639AudioType" c:type="GstMpegtsIso639AudioType*"/> + </parameter> + </parameters> + </method> + <method name="parse_iso_639_language_nb" c:identifier="gst_mpegts_descriptor_parse_iso_639_language_nb"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">The number of languages in @descriptor</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + </parameters> + </method> + <method name="parse_logical_channel" c:identifier="gst_mpegts_descriptor_parse_logical_channel"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Extracts the logical channels from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">a %GST_MTS_DESC_DTG_LOGICAL_CHANNEL #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">the #GstMpegtsLogicalChannelDescriptor to fill</doc> + <type name="LogicalChannelDescriptor" c:type="GstMpegtsLogicalChannelDescriptor*"/> + </parameter> + </parameters> + </method> + <method name="parse_metadata" c:identifier="gst_mpegts_descriptor_parse_metadata" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.c">Parses out the metadata descriptor from the @descriptor. + +See ISO/IEC 13818-1:2018 Section 2.6.60 and 2.6.61 for details. +metadata_application_format is provided in Table 2-82. metadata_format is +provided in Table 2-85.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.c">%TRUE if the parsing worked correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.c">a %GST_TYPE_MPEGTS_METADATA_DESCRIPTOR #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.c">#GstMpegtsMetadataDescriptor</doc> + <type name="MetadataDescriptor" c:type="GstMpegtsMetadataDescriptor**"/> + </parameter> + </parameters> + </method> + <method name="parse_metadata_std" c:identifier="gst_mpegts_descriptor_parse_metadata_std" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.c">Extracts the metadata STD descriptor from @descriptor. + +See ISO/IEC 13818-1:2018 Section 2.6.62 and 2.6.63 for details.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.c">a %GST_MTS_DESC_METADATA_STD #GstMpegtsDescriptor +@metadata_input_leak_rate (out): the input leak rate in units of 400bits/sec. +@metadata_buffer_size (out): the buffer size in units of 1024 bytes +@metadata_output_leak_rate (out): the output leak rate in units of 400bits/sec.</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="metadata_input_leak_rate" transfer-ownership="none"> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="metadata_buffer_size" transfer-ownership="none"> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="metadata_output_leak_rate" transfer-ownership="none"> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="parse_registration" c:identifier="gst_mpegts_descriptor_parse_registration" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Extracts the Registration information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">a %GST_MTS_DESC_REGISTRATION #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="registration_id" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">The registration ID (in host endiannes)</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="additional_info" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">The additional information</doc> + <array length="2" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + <parameter name="additional_info_length" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">The size of @additional_info in bytes.</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="parse_satellite_delivery_system" c:identifier="gst_mpegts_descriptor_parse_satellite_delivery_system"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Extracts the satellite delivery system information from @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if parsing succeeded, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsSatelliteDeliverySystemDescriptor to fill</doc> + <type name="SatelliteDeliverySystemDescriptor" c:type="GstMpegtsSatelliteDeliverySystemDescriptor*"/> + </parameter> + </parameters> + </method> + <method name="parse_terrestrial_delivery_system" c:identifier="gst_mpegts_descriptor_parse_terrestrial_delivery_system"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Parses out the terrestrial delivery system from the @descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">%TRUE if the parsing happened correctly, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="descriptor" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a %GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM #GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </instance-parameter> + <parameter name="res" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">#GstMpegtsTerrestrialDeliverySystemDescriptor</doc> + <type name="TerrestrialDeliverySystemDescriptor" c:type="GstMpegtsTerrestrialDeliverySystemDescriptor*"/> + </parameter> + </parameters> + </method> + <function name="from_custom" c:identifier="gst_mpegts_descriptor_from_custom"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Creates a #GstMpegtsDescriptor with custom @tag and @data</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">#GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor tag</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor data (after tag and length field)</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">length of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="from_custom_with_extension" c:identifier="gst_mpegts_descriptor_from_custom_with_extension" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Creates a #GstMpegtsDescriptor with custom @tag, @tag_extension and @data</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">#GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor tag</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="tag_extension" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor tag extension</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor data (after tag and length field)</doc> + <array length="3" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">length of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="from_dvb_network_name" c:identifier="gst_mpegts_descriptor_from_dvb_network_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Creates a #GstMpegtsDescriptor to be a %GST_MTS_DESC_DVB_NETWORK_NAME, +with the network name @name. The data field of the #GstMpegtsDescriptor +will be allocated, and transferred to the caller.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsDescriptor or %NULL on fail</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the network name to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="from_dvb_service" c:identifier="gst_mpegts_descriptor_from_dvb_service"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Fills a #GstMpegtsDescriptor to be a %GST_MTS_DESC_DVB_SERVICE. +The data field of the #GstMpegtsDescriptor will be allocated, +and transferred to the caller.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsDescriptor or %NULL on fail</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="service_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Service type defined as a #GstMpegtsDVBServiceType</doc> + <type name="DVBServiceType" c:type="GstMpegtsDVBServiceType"/> + </parameter> + <parameter name="service_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Name of the service</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="service_provider" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Name of the service provider</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="from_dvb_subtitling" c:identifier="gst_mpegts_descriptor_from_dvb_subtitling"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="full"> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="lang" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a string containing the ISO639 language</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">subtitling type</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="composition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">composition page id</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="ancillary" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">ancillary page id</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="from_iso_639_language" c:identifier="gst_mpegts_descriptor_from_iso_639_language"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Creates a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegtsDescriptor with +a single language</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">#GstMpegtsDescriptor, %NULL on failure</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="language" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">ISO-639-2 language 3-char code</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="from_registration" c:identifier="gst_mpegts_descriptor_from_registration"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Creates a %GST_MTS_DESC_REGISTRATION #GstMpegtsDescriptor</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">#GstMpegtsDescriptor, %NULL on failure</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="format_identifier" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">a 4 character format identifier string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="additional_info" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">pointer to optional additional info</doc> + <array length="2" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="additional_info_length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">length of the optional @additional_info</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="parse_audio_preselection_dump" c:identifier="gst_mpegts_descriptor_parse_audio_preselection_dump" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <type name="AudioPreselectionDescriptor" c:type="GstMpegtsAudioPreselectionDescriptor*"/> + </parameter> + </parameters> + </function> + <function name="parse_audio_preselection_free" c:identifier="gst_mpegts_descriptor_parse_audio_preselection_free" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <type name="AudioPreselectionDescriptor" c:type="GstMpegtsAudioPreselectionDescriptor*"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="DescriptorType" c:type="GstMpegtsDescriptorType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">The type of #GstMpegtsDescriptor + +These values correspond to the registered descriptor type from +the base MPEG-TS specifications (ITU H.222.0 | ISO/IEC 13818-1). + +Consult the relevant specifications for more details.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <member name="reserved_00" value="0" c:identifier="GST_MTS_DESC_RESERVED_00"> + </member> + <member name="reserved_01" value="1" c:identifier="GST_MTS_DESC_RESERVED_01"> + </member> + <member name="video_stream" value="2" c:identifier="GST_MTS_DESC_VIDEO_STREAM"> + </member> + <member name="audio_stream" value="3" c:identifier="GST_MTS_DESC_AUDIO_STREAM"> + </member> + <member name="hierarchy" value="4" c:identifier="GST_MTS_DESC_HIERARCHY"> + </member> + <member name="registration" value="5" c:identifier="GST_MTS_DESC_REGISTRATION"> + </member> + <member name="data_stream_alignment" value="6" c:identifier="GST_MTS_DESC_DATA_STREAM_ALIGNMENT"> + </member> + <member name="target_background_grid" value="7" c:identifier="GST_MTS_DESC_TARGET_BACKGROUND_GRID"> + </member> + <member name="video_window" value="8" c:identifier="GST_MTS_DESC_VIDEO_WINDOW"> + </member> + <member name="ca" value="9" c:identifier="GST_MTS_DESC_CA"> + </member> + <member name="iso_639_language" value="10" c:identifier="GST_MTS_DESC_ISO_639_LANGUAGE"> + </member> + <member name="system_clock" value="11" c:identifier="GST_MTS_DESC_SYSTEM_CLOCK"> + </member> + <member name="multiplex_buffer_utilisation" value="12" c:identifier="GST_MTS_DESC_MULTIPLEX_BUFFER_UTILISATION"> + </member> + <member name="copyright" value="13" c:identifier="GST_MTS_DESC_COPYRIGHT"> + </member> + <member name="maximum_bitrate" value="14" c:identifier="GST_MTS_DESC_MAXIMUM_BITRATE"> + </member> + <member name="private_data_indicator" value="15" c:identifier="GST_MTS_DESC_PRIVATE_DATA_INDICATOR"> + </member> + <member name="smoothing_buffer" value="16" c:identifier="GST_MTS_DESC_SMOOTHING_BUFFER"> + </member> + <member name="std" value="17" c:identifier="GST_MTS_DESC_STD"> + </member> + <member name="ibp" value="18" c:identifier="GST_MTS_DESC_IBP"> + </member> + <member name="dsmcc_carousel_identifier" value="19" c:identifier="GST_MTS_DESC_DSMCC_CAROUSEL_IDENTIFIER"> + </member> + <member name="dsmcc_association_tag" value="20" c:identifier="GST_MTS_DESC_DSMCC_ASSOCIATION_TAG"> + </member> + <member name="dsmcc_deferred_association_tag" value="21" c:identifier="GST_MTS_DESC_DSMCC_DEFERRED_ASSOCIATION_TAG"> + </member> + <member name="dsmcc_npt_reference" value="23" c:identifier="GST_MTS_DESC_DSMCC_NPT_REFERENCE"> + </member> + <member name="dsmcc_npt_endpoint" value="24" c:identifier="GST_MTS_DESC_DSMCC_NPT_ENDPOINT"> + </member> + <member name="dsmcc_stream_mode" value="25" c:identifier="GST_MTS_DESC_DSMCC_STREAM_MODE"> + </member> + <member name="dsmcc_stream_event" value="26" c:identifier="GST_MTS_DESC_DSMCC_STREAM_EVENT"> + </member> + <member name="mpeg4_video" value="27" c:identifier="GST_MTS_DESC_MPEG4_VIDEO"> + </member> + <member name="mpeg4_audio" value="28" c:identifier="GST_MTS_DESC_MPEG4_AUDIO"> + </member> + <member name="iod" value="29" c:identifier="GST_MTS_DESC_IOD"> + </member> + <member name="sl" value="30" c:identifier="GST_MTS_DESC_SL"> + </member> + <member name="fmc" value="31" c:identifier="GST_MTS_DESC_FMC"> + </member> + <member name="external_es_id" value="32" c:identifier="GST_MTS_DESC_EXTERNAL_ES_ID"> + </member> + <member name="mux_code" value="33" c:identifier="GST_MTS_DESC_MUX_CODE"> + </member> + <member name="fmx_buffer_size" value="34" c:identifier="GST_MTS_DESC_FMX_BUFFER_SIZE"> + </member> + <member name="multiplex_buffer" value="35" c:identifier="GST_MTS_DESC_MULTIPLEX_BUFFER"> + </member> + <member name="content_labeling" value="36" c:identifier="GST_MTS_DESC_CONTENT_LABELING"> + </member> + <member name="metadata_pointer" value="37" c:identifier="GST_MTS_DESC_METADATA_POINTER"> + </member> + <member name="metadata" value="38" c:identifier="GST_MTS_DESC_METADATA"> + </member> + <member name="metadata_std" value="39" c:identifier="GST_MTS_DESC_METADATA_STD"> + </member> + <member name="avc_video" value="40" c:identifier="GST_MTS_DESC_AVC_VIDEO"> + </member> + <member name="ipmp" value="41" c:identifier="GST_MTS_DESC_IPMP"> + </member> + <member name="avc_timing_and_hrd" value="42" c:identifier="GST_MTS_DESC_AVC_TIMING_AND_HRD"> + </member> + <member name="mpeg2_aac_audio" value="43" c:identifier="GST_MTS_DESC_MPEG2_AAC_AUDIO"> + </member> + <member name="flex_mux_timing" value="44" c:identifier="GST_MTS_DESC_FLEX_MUX_TIMING"> + </member> + <member name="mpeg4_text" value="45" c:identifier="GST_MTS_DESC_MPEG4_TEXT"> + </member> + <member name="mpeg4_audio_extension" value="46" c:identifier="GST_MTS_DESC_MPEG4_AUDIO_EXTENSION"> + </member> + <member name="auxiliary_video_stream" value="47" c:identifier="GST_MTS_DESC_AUXILIARY_VIDEO_STREAM"> + </member> + <member name="svc_extension" value="48" c:identifier="GST_MTS_DESC_SVC_EXTENSION"> + </member> + <member name="mvc_extension" value="49" c:identifier="GST_MTS_DESC_MVC_EXTENSION"> + </member> + <member name="j2k_video" value="50" c:identifier="GST_MTS_DESC_J2K_VIDEO"> + </member> + <member name="mvc_operation_point" value="51" c:identifier="GST_MTS_DESC_MVC_OPERATION_POINT"> + </member> + <member name="mpeg2_stereoscopic_video_format" value="52" c:identifier="GST_MTS_DESC_MPEG2_STEREOSCOPIC_VIDEO_FORMAT"> + </member> + <member name="stereoscopic_program_info" value="53" c:identifier="GST_MTS_DESC_STEREOSCOPIC_PROGRAM_INFO"> + </member> + <member name="stereoscopic_video_info" value="54" c:identifier="GST_MTS_DESC_STEREOSCOPIC_VIDEO_INFO"> + </member> + </enumeration> + <record name="DvbMultilingualBouquetNameItem" c:type="GstMpegtsDvbMultilingualBouquetNameItem" glib:type-name="GstMpegtsDvbMultilingualBouquetNameItem" glib:get-type="gst_mpegts_dvb_multilingual_bouquet_name_item_get_type" c:symbol-prefix="dvb_multilingual_bouquet_name_item"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">a multilingual bouquet name entry</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="language_code" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the ISO 639 language code</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="bouquet_name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the bouquet name</doc> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <record name="DvbMultilingualComponentItem" c:type="GstMpegtsDvbMultilingualComponentItem" glib:type-name="GstMpegtsDvbMultilingualComponentItem" glib:get-type="gst_mpegts_dvb_multilingual_component_item_get_type" c:symbol-prefix="dvb_multilingual_component_item"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="language_code" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the ISO 639 language code</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="description" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the component description</doc> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <record name="DvbMultilingualNetworkNameItem" c:type="GstMpegtsDvbMultilingualNetworkNameItem" glib:type-name="GstMpegtsDvbMultilingualNetworkNameItem" glib:get-type="gst_mpegts_dvb_multilingual_network_name_item_get_type" c:symbol-prefix="dvb_multilingual_network_name_item"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">a multilingual network name entry</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="language_code" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the ISO 639 language code</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="network_name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the network name</doc> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <record name="DvbMultilingualServiceNameItem" c:type="GstMpegtsDvbMultilingualServiceNameItem" glib:type-name="GstMpegtsDvbMultilingualServiceNameItem" glib:get-type="gst_mpegts_dvb_multilingual_service_name_item_get_type" c:symbol-prefix="dvb_multilingual_service_name_item"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">a multilingual service name entry</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="language_code" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the ISO 639 language code</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="provider_name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the provider name</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="service_name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the service name</doc> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <record name="EIT" c:type="GstMpegtsEIT" glib:type-name="GstMpegtsEIT" glib:get-type="gst_mpegts_eit_get_type" c:symbol-prefix="eit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Event Information Table (EN 300 468)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="transport_stream_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="original_network_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="segment_last_section_number" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="last_table_id" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="actual_stream" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="present_following" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="events" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">List of events</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="EITEvent"/> + </array> + </field> + </record> + <record name="EITEvent" c:type="GstMpegtsEITEvent" glib:type-name="GstMpegtsEITEvent" glib:get-type="gst_mpegts_eit_event_get_type" c:symbol-prefix="eit_event"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Event from a @GstMpegtsEIT</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="event_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="start_time" writable="1"> + <type name="Gst.DateTime" c:type="GstDateTime*"/> + </field> + <field name="duration" writable="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="running_status" writable="1"> + <type name="RunningStatus" c:type="GstMpegtsRunningStatus"/> + </field> + <field name="free_CA_mode" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">List of descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + </record> + <record name="ExtendedEventDescriptor" c:type="GstMpegtsExtendedEventDescriptor" glib:type-name="GstMpegtsExtendedEventDescriptor" glib:get-type="gst_mpegts_extended_event_descriptor_get_type" c:symbol-prefix="extended_event_descriptor"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Extended Event Descriptor (EN 300 468 v.1.13.1)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="descriptor_number" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="last_descriptor_number" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="language_code" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">NULL terminated language code.</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="items" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the #GstMpegtsExtendedEventItem</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="ExtendedEventItem"/> + </array> + </field> + <field name="text" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <method name="free" c:identifier="gst_mpegts_extended_event_descriptor_free"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <type name="ExtendedEventDescriptor" c:type="GstMpegtsExtendedEventDescriptor*"/> + </instance-parameter> + </parameters> + </method> + </record> + <record name="ExtendedEventItem" c:type="GstMpegtsExtendedEventItem" glib:type-name="GstMpegtsExtendedEventItem" glib:get-type="gst_mpegts_extended_event_item_get_type" c:symbol-prefix="extended_event_item"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="item_description" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="item" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <enumeration name="HdmvStreamType" version="1.20" c:type="GstMpegtsHdmvStreamType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-hdmv-section.h">Type of mpeg-ts streams for Blu-ray formats. To be matched with the +stream-type of a #GstMpegtsSection.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-hdmv-section.h"/> + <member name="audio_lpcm" value="128" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_LPCM"> + </member> + <member name="audio_ac3" value="129" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_AC3"> + </member> + <member name="audio_dts" value="130" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_DTS"> + </member> + <member name="audio_ac3_true_hd" value="131" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_AC3_TRUE_HD"> + </member> + <member name="audio_ac3_plus" value="132" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_AC3_PLUS"> + </member> + <member name="audio_dts_hd" value="133" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_DTS_HD"> + </member> + <member name="audio_dts_hd_master_audio" value="134" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_DTS_HD_MASTER_AUDIO"> + </member> + <member name="audio_eac3" value="135" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_EAC3"> + </member> + <member name="subpicture_pgs" value="144" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_SUBPICTURE_PGS"> + </member> + <member name="igs" value="145" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_IGS"> + </member> + <member name="subtitle" value="146" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_SUBTITLE"> + </member> + <member name="audio_ac3_plus_secondary" value="161" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_AC3_PLUS_SECONDARY"> + </member> + <member name="audio_dts_hd_secondary" value="162" c:identifier="GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_DTS_HD_SECONDARY"> + </member> + </enumeration> + <enumeration name="ISDBDescriptorType" c:type="GstMpegtsISDBDescriptorType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-isdb-descriptor.h">These values correspond to the registered descriptor type from +the various ISDB specifications. + +Consult the relevant specifications for more details.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-isdb-descriptor.h"/> + <member name="hierarchical_transmission" value="192" c:identifier="GST_MTS_DESC_ISDB_HIERARCHICAL_TRANSMISSION"> + </member> + <member name="digital_copy_control" value="193" c:identifier="GST_MTS_DESC_ISDB_DIGITAL_COPY_CONTROL"> + </member> + <member name="network_identification" value="194" c:identifier="GST_MTS_DESC_ISDB_NETWORK_IDENTIFICATION"> + </member> + <member name="partial_ts_time" value="195" c:identifier="GST_MTS_DESC_ISDB_PARTIAL_TS_TIME"> + </member> + <member name="audio_component" value="196" c:identifier="GST_MTS_DESC_ISDB_AUDIO_COMPONENT"> + </member> + <member name="hyperlink" value="197" c:identifier="GST_MTS_DESC_ISDB_HYPERLINK"> + </member> + <member name="target_region" value="198" c:identifier="GST_MTS_DESC_ISDB_TARGET_REGION"> + </member> + <member name="data_content" value="199" c:identifier="GST_MTS_DESC_ISDB_DATA_CONTENT"> + </member> + <member name="video_decode_control" value="200" c:identifier="GST_MTS_DESC_ISDB_VIDEO_DECODE_CONTROL"> + </member> + <member name="download_content" value="201" c:identifier="GST_MTS_DESC_ISDB_DOWNLOAD_CONTENT"> + </member> + <member name="ca_emm_ts" value="202" c:identifier="GST_MTS_DESC_ISDB_CA_EMM_TS"> + </member> + <member name="ca_contract_information" value="203" c:identifier="GST_MTS_DESC_ISDB_CA_CONTRACT_INFORMATION"> + </member> + <member name="ca_service" value="204" c:identifier="GST_MTS_DESC_ISDB_CA_SERVICE"> + </member> + <member name="ts_information" value="205" c:identifier="GST_MTS_DESC_ISDB_TS_INFORMATION"> + </member> + <member name="extended_broadcaster" value="206" c:identifier="GST_MTS_DESC_ISDB_EXTENDED_BROADCASTER"> + </member> + <member name="logo_transmission" value="207" c:identifier="GST_MTS_DESC_ISDB_LOGO_TRANSMISSION"> + </member> + <member name="basic_local_event" value="208" c:identifier="GST_MTS_DESC_ISDB_BASIC_LOCAL_EVENT"> + </member> + <member name="reference" value="209" c:identifier="GST_MTS_DESC_ISDB_REFERENCE"> + </member> + <member name="node_relation" value="210" c:identifier="GST_MTS_DESC_ISDB_NODE_RELATION"> + </member> + <member name="short_node_information" value="211" c:identifier="GST_MTS_DESC_ISDB_SHORT_NODE_INFORMATION"> + </member> + <member name="stc_reference" value="212" c:identifier="GST_MTS_DESC_ISDB_STC_REFERENCE"> + </member> + <member name="series" value="213" c:identifier="GST_MTS_DESC_ISDB_SERIES"> + </member> + <member name="event_group" value="214" c:identifier="GST_MTS_DESC_ISDB_EVENT_GROUP"> + </member> + <member name="si_parameter" value="215" c:identifier="GST_MTS_DESC_ISDB_SI_PARAMETER"> + </member> + <member name="broadcaster_name" value="216" c:identifier="GST_MTS_DESC_ISDB_BROADCASTER_NAME"> + </member> + <member name="component_group" value="217" c:identifier="GST_MTS_DESC_ISDB_COMPONENT_GROUP"> + </member> + <member name="si_prime_ts" value="218" c:identifier="GST_MTS_DESC_ISDB_SI_PRIME_TS"> + </member> + <member name="board_information" value="219" c:identifier="GST_MTS_DESC_ISDB_BOARD_INFORMATION"> + </member> + <member name="ldt_linkage" value="220" c:identifier="GST_MTS_DESC_ISDB_LDT_LINKAGE"> + </member> + <member name="connected_transmission" value="221" c:identifier="GST_MTS_DESC_ISDB_CONNECTED_TRANSMISSION"> + </member> + <member name="content_availability" value="222" c:identifier="GST_MTS_DESC_ISDB_CONTENT_AVAILABILITY"> + </member> + <member name="service_group" value="224" c:identifier="GST_MTS_DESC_ISDB_SERVICE_GROUP"> + </member> + </enumeration> + <record name="ISO639LanguageDescriptor" c:type="GstMpegtsISO639LanguageDescriptor" glib:type-name="GstMpegtsISO639LanguageDescriptor" glib:get-type="gst_mpegts_iso_639_language_get_type" c:symbol-prefix="iso_639_language"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <field name="nb_language" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="language" writable="1"> + <array zero-terminated="0" fixed-size="64"> + <type name="utf8" c:type="gchar*"/> + </array> + </field> + <field name="audio_type" writable="1"> + <array zero-terminated="0" fixed-size="64"> + <type name="Iso639AudioType" c:type="GstMpegtsIso639AudioType"/> + </array> + </field> + <method name="descriptor_free" c:identifier="gst_mpegts_iso_639_language_descriptor_free"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="desc" transfer-ownership="none"> + <type name="ISO639LanguageDescriptor" c:type="GstMpegtsISO639LanguageDescriptor*"/> + </instance-parameter> + </parameters> + </method> + </record> + <enumeration name="Iso639AudioType" c:type="GstMpegtsIso639AudioType"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <member name="undefined" value="0" c:identifier="GST_MPEGTS_AUDIO_TYPE_UNDEFINED"> + </member> + <member name="clean_effects" value="1" c:identifier="GST_MPEGTS_AUDIO_TYPE_CLEAN_EFFECTS"> + </member> + <member name="hearing_impaired" value="2" c:identifier="GST_MPEGTS_AUDIO_TYPE_HEARING_IMPAIRED"> + </member> + <member name="visual_impaired_commentary" value="3" c:identifier="GST_MPEGTS_AUDIO_TYPE_VISUAL_IMPAIRED_COMMENTARY"> + </member> + </enumeration> + <record name="LogicalChannel" c:type="GstMpegtsLogicalChannel" glib:type-name="GstMpegtsLogicalChannel" glib:get-type="gst_mpegts_logical_channel_get_type" c:symbol-prefix="logical_channel"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <field name="service_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="visible_service" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="logical_channel_number" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + </record> + <record name="LogicalChannelDescriptor" c:type="GstMpegtsLogicalChannelDescriptor" glib:type-name="GstMpegtsLogicalChannelDescriptor" glib:get-type="gst_mpegts_logical_channel_descriptor_get_type" c:symbol-prefix="logical_channel_descriptor"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <field name="nb_channels" writable="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="channels" writable="1"> + <array zero-terminated="0" fixed-size="64"> + <type name="LogicalChannel" c:type="GstMpegtsLogicalChannel"/> + </array> + </field> + </record> + <record name="MetadataDescriptor" c:type="GstMpegtsMetadataDescriptor" version="1.24" glib:type-name="GstMpegtsMetadataDescriptor" glib:get-type="gst_mpegts_metadata_descriptor_get_type" c:symbol-prefix="metadata_descriptor"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h">The metadata descriptor specifies parameters of a metadata service carried in an MPEG-2 Transport Stream (or Program Stream). The descriptor is included in the PMT in the descriptor loop for the elementary stream that carries the +metadata service. The descriptor specifies the format of the associated metadata, and contains the value of the +metadata_service_id to identify the metadata service to which the metadata descriptor applies. + +Note that this structure does not include all of the metadata_descriptor items, and will need extension to support DSM-CC and private data. +See ISO/IEC 13818-1:2018 Section 2.6.60 and Section 2.6.61 for more information.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h"/> + <field name="metadata_application_format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h">specifies the application responsible for defining usage, syntax and semantics</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="metadata_format" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h">indicates the format and coding of the metadata</doc> + <type name="MetadataFormat" c:type="GstMpegtsMetadataFormat"/> + </field> + <field name="metadata_format_identifier" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h">format identifier (equivalent to registration descriptor), for example 0x4B4C4641 ('KLVA') to indicate SMPTE 336 KLV.</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="metadata_service_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h">metadata service to which this metadata descriptor applies, typically 0x00</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="decoder_config_flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h">decoder flags, see ISO/IEC 13818-1:2018 Table 2-88.</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="dsm_cc_flag" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h">true if stream associated with this descriptor is in an ISO/IEC 13818-6 data or object carousel.</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + </record> + <enumeration name="MetadataFormat" version="1.24" c:type="GstMpegtsMetadataFormat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h">metadata_descriptor metadata_format valid values. See ISO/IEC 13818-1:2018(E) Table 2-85.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-metadata-descriptor.h"/> + <member name="tem" value="16" c:identifier="GST_MPEGTS_METADATA_FORMAT_TEM"> + </member> + <member name="bim" value="17" c:identifier="GST_MPEGTS_METADATA_FORMAT_BIM"> + </member> + <member name="application_format" value="63" c:identifier="GST_MPEGTS_METADATA_FORMAT_APPLICATION_FORMAT"> + </member> + <member name="identifier_field" value="255" c:identifier="GST_MPEGTS_METADATA_FORMAT_IDENTIFIER_FIELD"> + </member> + </enumeration> + <enumeration name="MiscDescriptorType" c:type="GstMpegtsMiscDescriptorType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">The type of #GstMpegtsDescriptor + +These values correspond to miscellaneous descriptor types that are +not yet identified from known specifications.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <member name="mts_desc_dtg_logical_channel" value="131" c:identifier="GST_MTS_DESC_DTG_LOGICAL_CHANNEL"> + </member> + </enumeration> + <enumeration name="ModulationType" c:type="GstMpegtsModulationType"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="qpsk" value="0" c:identifier="GST_MPEGTS_MODULATION_QPSK"> + </member> + <member name="qam_16" value="1" c:identifier="GST_MPEGTS_MODULATION_QAM_16"> + </member> + <member name="qam_32" value="2" c:identifier="GST_MPEGTS_MODULATION_QAM_32"> + </member> + <member name="qam_64" value="3" c:identifier="GST_MPEGTS_MODULATION_QAM_64"> + </member> + <member name="qam_128" value="4" c:identifier="GST_MPEGTS_MODULATION_QAM_128"> + </member> + <member name="qam_256" value="5" c:identifier="GST_MPEGTS_MODULATION_QAM_256"> + </member> + <member name="qam_auto" value="6" c:identifier="GST_MPEGTS_MODULATION_QAM_AUTO"> + </member> + <member name="vsb_8" value="7" c:identifier="GST_MPEGTS_MODULATION_VSB_8"> + </member> + <member name="vsb_16" value="8" c:identifier="GST_MPEGTS_MODULATION_VSB_16"> + </member> + <member name="psk_8" value="9" c:identifier="GST_MPEGTS_MODULATION_PSK_8"> + </member> + <member name="apsk_16" value="10" c:identifier="GST_MPEGTS_MODULATION_APSK_16"> + </member> + <member name="apsk_32" value="11" c:identifier="GST_MPEGTS_MODULATION_APSK_32"> + </member> + <member name="dqpsk" value="12" c:identifier="GST_MPEGTS_MODULATION_DQPSK"> + </member> + <member name="qam_4_nr_" value="13" c:identifier="GST_MPEGTS_MODULATION_QAM_4_NR_"> + </member> + <member name="none" value="14" c:identifier="GST_MPEGTS_MODULATION_NONE"> + </member> + </enumeration> + <record name="NIT" c:type="GstMpegtsNIT" glib:type-name="GstMpegtsNIT" glib:get-type="gst_mpegts_nit_get_type" c:symbol-prefix="nit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Network Information Table (ISO/IEC 13818-1 / EN 300 468)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="actual_network" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Whether this NIT corresponds to the actual stream</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="network_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ID of the network that this NIT describes</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">the global descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + <field name="streams" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">the streams</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="NITStream"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_nit_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Allocates and initializes a #GstMpegtsNIT.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">A newly allocated #GstMpegtsNIT</doc> + <type name="NIT" c:type="GstMpegtsNIT*"/> + </return-value> + </constructor> + </record> + <record name="NITStream" c:type="GstMpegtsNITStream" glib:type-name="GstMpegtsNITStream" glib:get-type="gst_mpegts_nit_stream_get_type" c:symbol-prefix="nit_stream"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="transport_stream_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="original_network_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="descriptors" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_nit_stream_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Allocates and initializes a #GstMpegtsNITStream</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">A newly allocated #GstMpegtsNITStream</doc> + <type name="NITStream" c:type="GstMpegtsNITStream*"/> + </return-value> + </constructor> + </record> + <record name="PESMetadataMeta" c:type="GstMpegtsPESMetadataMeta" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">Extra buffer metadata describing the PES Metadata context. +This is based on the Metadata AU cell header in +ISO/IEC 13818-1:2018 Section 2.12.4. + +AU_cell_data_length is not provided, since it matches the length of the buffer</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h"/> + <field name="meta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">parent #GstMeta</doc> + <type name="Gst.Meta" c:type="GstMeta"/> + </field> + <field name="metadata_service_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">metadata service identifier</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="flags" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">bit flags, see spec for details</doc> + <type name="guint8" c:type="guint8"/> + </field> + <function name="get_info" c:identifier="gst_mpegts_pes_metadata_meta_get_info" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">Gets the global #GstMetaInfo describing the #GstMpegtsPESMetadataMeta meta.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">The #GstMetaInfo</doc> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <record name="PMT" c:type="GstMpegtsPMT" glib:type-name="GstMpegtsPMT" glib:get-type="gst_mpegts_pmt_get_type" c:symbol-prefix="pmt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Program Map Table (ISO/IEC 13818-1). Provides the mappings between program +numbers and the program elements that comprise them. + +The program_number is contained in the subtable_extension field of the +container #GstMpegtsSection.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <field name="pcr_pid" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">PID of the stream containing the PCR for this program.</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="program_number" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">The program to which this PMT is applicable.</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Array of #GstMpegtsDescriptor</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + <field name="streams" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Array of #GstMpegtsPMTStream</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="PMTStream"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_pmt_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Allocates and initializes a new #GstMpegtsPMT. #GstMpegtsPMTStream can be +added to the streams array, and global PMT #GstMpegtsDescriptor to the +descriptors array.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">#GstMpegtsPMT</doc> + <type name="PMT" c:type="GstMpegtsPMT*"/> + </return-value> + </constructor> + </record> + <record name="PMTStream" c:type="GstMpegtsPMTStream" glib:type-name="GstMpegtsPMTStream" glib:get-type="gst_mpegts_pmt_stream_get_type" c:symbol-prefix="pmt_stream"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">An individual stream definition of a #GstMpegtsPMT.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <field name="stream_type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">the type of stream. See #GstMpegtsStreamType</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="pid" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">the PID of the stream</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">the descriptors of the +stream</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_pmt_stream_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Allocates and initializes a new #GstMpegtsPMTStream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">#GstMpegtsPMTStream</doc> + <type name="PMTStream" c:type="GstMpegtsPMTStream*"/> + </return-value> + </constructor> + </record> + <callback name="PacketizeFunc" c:type="GstMpegtsPacketizeFunc"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="section" transfer-ownership="none"> + <type name="Section" c:type="GstMpegtsSection*"/> + </parameter> + </parameters> + </callback> + <record name="PatProgram" c:type="GstMpegtsPatProgram" glib:type-name="GstMpegtsPatProgram" glib:get-type="gst_mpegts_pat_program_get_type" c:symbol-prefix="pat_program"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">A program entry from a Program Association Table (ITU H.222.0, ISO/IEC 13818-1).</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <field name="program_number" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">the program number</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="network_or_program_map_PID" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">the network of program map PID</doc> + <type name="guint16" c:type="guint16"/> + </field> + <constructor name="new" c:identifier="gst_mpegts_pat_program_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Allocates a new #GstMpegtsPatProgram.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">A newly allocated #GstMpegtsPatProgram</doc> + <type name="PatProgram" c:type="GstMpegtsPatProgram*"/> + </return-value> + </constructor> + </record> + <bitfield name="RegistrationId" version="1.20" c:type="GstMpegtsRegistrationId"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Well-known registration ids, expressed as native-endian 32bit integers. These +are used in descriptors of type %GST_MTS_DESC_REGISTRATION. Unless specified +otherwise (by use of the "OTHER" prefix), they are all registered by the +[SMPTE Registration Authority](https://smpte-ra.org/) or specified in +"official" documentation for the given format.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <member name="0" value="0" c:identifier="GST_MTS_REGISTRATION_0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Undefined registration id</doc> + </member> + <member name="ac_3" value="1094921523" c:identifier="GST_MTS_REGISTRATION_AC_3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Audio AC-3, ATSC A/52</doc> + </member> + <member name="cuei" value="1129661769" c:identifier="GST_MTS_REGISTRATION_CUEI"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">SCTE 35, "Digital Program Insertion Cueing Message"</doc> + </member> + <member name="drac" value="1685217635" c:identifier="GST_MTS_REGISTRATION_drac"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Dirac Video codec</doc> + </member> + <member name="dts1" value="1146377009" c:identifier="GST_MTS_REGISTRATION_DTS1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">DTS Audio</doc> + </member> + <member name="dts2" value="1146377010" c:identifier="GST_MTS_REGISTRATION_DTS2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">DTS Audio</doc> + </member> + <member name="dts3" value="1146377011" c:identifier="GST_MTS_REGISTRATION_DTS3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">DTS Audio</doc> + </member> + <member name="bssd" value="1112757060" c:identifier="GST_MTS_REGISTRATION_BSSD"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">SMPTE 302M, Mapping of AES3 Data in mpeg-ts</doc> + </member> + <member name="eac3" value="1161904947" c:identifier="GST_MTS_REGISTRATION_EAC3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Enhanced AC-3 (i.e. EAC3)</doc> + </member> + <member name="etv1" value="1163154993" c:identifier="GST_MTS_REGISTRATION_ETV1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Cablelabs ETV</doc> + </member> + <member name="ga94" value="1195456820" c:identifier="GST_MTS_REGISTRATION_GA94"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">ATSC A/53 compliant stream (i.e. ATSC)</doc> + </member> + <member name="hdmv" value="1212435798" c:identifier="GST_MTS_REGISTRATION_HDMV"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Blu-ray, "System Description Blu-ray Disc + Read-Only Format part 3 Audio Visual Basic Specifications"</doc> + </member> + <member name="klva" value="1263294017" c:identifier="GST_MTS_REGISTRATION_KLVA"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">SMPTE RP217 : Non-synchronized Mapping of KLV + Packets in mpeg-ts</doc> + </member> + <member name="opus" value="1330664787" c:identifier="GST_MTS_REGISTRATION_OPUS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Opus Audio</doc> + </member> + <member name="tshv" value="1414744150" c:identifier="GST_MTS_REGISTRATION_TSHV"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">HDV (Sony)</doc> + </member> + <member name="vc_1" value="1447243057" c:identifier="GST_MTS_REGISTRATION_VC_1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Video VC-1, SMPTE RP227 "VC-1 Bitstream Transport Encodings"</doc> + </member> + <member name="ac_4" value="1094921524" c:identifier="GST_MTS_REGISTRATION_AC_4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">Audio AC-4, ETSI 103 190-2</doc> + </member> + <member name="other_hevc" value="1212503619" c:identifier="GST_MTS_REGISTRATION_OTHER_HEVC"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">HEVC / h265</doc> + </member> + </bitfield> + <enumeration name="RunningStatus" c:type="GstMpegtsRunningStatus"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Running status of a service. + +Corresponds to table 6 of ETSI EN 300 468 (v1.13.0)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <member name="undefined" value="0" c:identifier="GST_MPEGTS_RUNNING_STATUS_UNDEFINED"> + </member> + <member name="not_running" value="1" c:identifier="GST_MPEGTS_RUNNING_STATUS_NOT_RUNNING"> + </member> + <member name="starts_in_few_seconds" value="2" c:identifier="GST_MPEGTS_RUNNING_STATUS_STARTS_IN_FEW_SECONDS"> + </member> + <member name="pausing" value="3" c:identifier="GST_MPEGTS_RUNNING_STATUS_PAUSING"> + </member> + <member name="running" value="4" c:identifier="GST_MPEGTS_RUNNING_STATUS_RUNNING"> + </member> + <member name="off_air" value="5" c:identifier="GST_MPEGTS_RUNNING_STATUS_OFF_AIR"> + </member> + </enumeration> + <enumeration name="SCTEDescriptorType" version="1.20" c:type="GstMpegtsSCTEDescriptorType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h">These values correspond to the ones defined by SCTE (amongst other in ANSI/SCTE 57)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <member name="stuffing" value="128" c:identifier="GST_MTS_DESC_SCTE_STUFFING"> + </member> + <member name="ac3" value="129" c:identifier="GST_MTS_DESC_SCTE_AC3"> + </member> + <member name="frame_rate" value="130" c:identifier="GST_MTS_DESC_SCTE_FRAME_RATE"> + </member> + <member name="extended_video" value="131" c:identifier="GST_MTS_DESC_SCTE_EXTENDED_VIDEO"> + </member> + <member name="component_name" value="132" c:identifier="GST_MTS_DESC_SCTE_COMPONENT_NAME"> + </member> + <member name="frequency_spec" value="144" c:identifier="GST_MTS_DESC_SCTE_FREQUENCY_SPEC"> + </member> + <member name="modulation_params" value="145" c:identifier="GST_MTS_DESC_SCTE_MODULATION_PARAMS"> + </member> + <member name="transport_stream_id" value="146" c:identifier="GST_MTS_DESC_SCTE_TRANSPORT_STREAM_ID"> + </member> + </enumeration> + <record name="SCTESIT" c:type="GstMpegtsSCTESIT" glib:type-name="GstMpegtsSCTESIT" glib:get-type="gst_mpegts_scte_sit_get_type" c:symbol-prefix="scte_sit"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <field name="encrypted_packet" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="encryption_algorithm" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="pts_adjustment" writable="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="cw_index" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="tier" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="splice_command_length" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="splice_command_type" writable="1"> + <type name="SCTESpliceCommandType" c:type="GstMpegtsSCTESpliceCommandType"/> + </field> + <field name="splice_time_specified" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="splice_time" writable="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="splices" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="descriptors" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="fully_parsed" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="is_running_time" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <constructor name="new" c:identifier="gst_mpegts_scte_sit_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Allocates and initializes a #GstMpegtsSCTESIT.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">A newly allocated #GstMpegtsSCTESIT</doc> + <type name="SCTESIT" c:type="GstMpegtsSCTESIT*"/> + </return-value> + </constructor> + </record> + <enumeration name="SCTESpliceCommandType" c:type="GstMpegtsSCTESpliceCommandType"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <member name="null" value="0" c:identifier="GST_MTS_SCTE_SPLICE_COMMAND_NULL"> + </member> + <member name="schedule" value="4" c:identifier="GST_MTS_SCTE_SPLICE_COMMAND_SCHEDULE"> + </member> + <member name="insert" value="5" c:identifier="GST_MTS_SCTE_SPLICE_COMMAND_INSERT"> + </member> + <member name="time" value="6" c:identifier="GST_MTS_SCTE_SPLICE_COMMAND_TIME"> + </member> + <member name="bandwidth" value="7" c:identifier="GST_MTS_SCTE_SPLICE_COMMAND_BANDWIDTH"> + </member> + <member name="private" value="255" c:identifier="GST_MTS_SCTE_SPLICE_COMMAND_PRIVATE"> + </member> + </enumeration> + <record name="SCTESpliceComponent" c:type="GstMpegtsSCTESpliceComponent" version="1.20" glib:type-name="GstMpegtsSCTESpliceComponent" glib:get-type="gst_mpegts_scte_splice_component_get_type" c:symbol-prefix="scte_splice_component"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">Per-PID splice information.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <field name="tag" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">the elementary PID stream containing the Splice Point</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="splice_time_specified" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">Whether @splice_time was specified</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="splice_time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">the presentation time of the signaled splice event</doc> + <type name="guint64" c:type="guint64"/> + </field> + <field name="utc_splice_time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">The UTC time of the signaled splice event</doc> + <type name="guint32" c:type="guint32"/> + </field> + <constructor name="new" c:identifier="gst_mpegts_scte_splice_component_new" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Allocates and initializes a #GstMpegtsSCTESpliceComponent.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">A newly allocated #GstMpegtsSCTESpliceComponent</doc> + <type name="SCTESpliceComponent" c:type="GstMpegtsSCTESpliceComponent*"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">the elementary PID stream identifier</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </constructor> + </record> + <enumeration name="SCTESpliceDescriptor" c:type="GstMpegtsSCTESpliceDescriptor"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <member name="avail" value="0" c:identifier="GST_MTS_SCTE_DESC_AVAIL"> + </member> + <member name="dtmf" value="1" c:identifier="GST_MTS_SCTE_DESC_DTMF"> + </member> + <member name="segmentation" value="2" c:identifier="GST_MTS_SCTE_DESC_SEGMENTATION"> + </member> + <member name="time" value="3" c:identifier="GST_MTS_SCTE_DESC_TIME"> + </member> + <member name="audio" value="4" c:identifier="GST_MTS_SCTE_DESC_AUDIO"> + </member> + </enumeration> + <record name="SCTESpliceEvent" c:type="GstMpegtsSCTESpliceEvent" glib:type-name="GstMpegtsSCTESpliceEvent" glib:get-type="gst_mpegts_scte_splice_event_get_type" c:symbol-prefix="scte_splice_event"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <field name="insert_event" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="splice_event_id" writable="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="splice_event_cancel_indicator" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="out_of_network_indicator" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="program_splice_flag" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="duration_flag" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="splice_immediate_flag" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="program_splice_time_specified" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="program_splice_time" writable="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="utc_splice_time" writable="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="components" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="break_duration_auto_return" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="break_duration" writable="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="unique_program_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="avail_num" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="avails_expected" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <constructor name="new" c:identifier="gst_mpegts_scte_splice_event_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Allocates and initializes a #GstMpegtsSCTESpliceEvent.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">A newly allocated #GstMpegtsSCTESpliceEvent</doc> + <type name="SCTESpliceEvent" c:type="GstMpegtsSCTESpliceEvent*"/> + </return-value> + </constructor> + </record> + <record name="SDT" c:type="GstMpegtsSDT" glib:type-name="GstMpegtsSDT" glib:get-type="gst_mpegts_sdt_get_type" c:symbol-prefix="sdt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Service Description Table (EN 300 468)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="original_network_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Network ID of the originating delivery system</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="actual_ts" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">True if the table describes this transport stream</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="transport_stream_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ID of this transport stream</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="services" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">List of services</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="SDTService"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_sdt_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Allocates and initializes a #GstMpegtsSDT.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">A newly allocated #GstMpegtsSDT</doc> + <type name="SDT" c:type="GstMpegtsSDT*"/> + </return-value> + </constructor> + </record> + <record name="SDTService" c:type="GstMpegtsSDTService" glib:type-name="GstMpegtsSDTService" glib:get-type="gst_mpegts_sdt_service_get_type" c:symbol-prefix="sdt_service"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="service_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">The program number this table belongs to</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="EIT_schedule_flag" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">EIT schedule information is present in this transport stream</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="EIT_present_following_flag" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">EIT present/following information is present in this transport stream</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="running_status" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Status of this service</doc> + <type name="RunningStatus" c:type="GstMpegtsRunningStatus"/> + </field> + <field name="free_CA_mode" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">True if one or more streams is controlled by a CA system</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">List of descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_sdt_service_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Allocates and initializes a #GstMpegtsSDTService.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">A newly allocated #GstMpegtsSDTService</doc> + <type name="SDTService" c:type="GstMpegtsSDTService*"/> + </return-value> + </constructor> + </record> + <function-macro name="SECTION" c:identifier="GST_MPEGTS_SECTION" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <parameters> + <parameter name="section"> + </parameter> + </parameters> + </function-macro> + <function-macro name="SECTION_TYPE" c:identifier="GST_MPEGTS_SECTION_TYPE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <parameters> + <parameter name="section"> + </parameter> + </parameters> + </function-macro> + <record name="SIT" c:type="GstMpegtsSIT" version="1.20" glib:type-name="GstMpegtsSIT" glib:get-type="gst_mpegts_sit_get_type" c:symbol-prefix="sit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Selection Information Table (EN 300 468)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">List of descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + <field name="services" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">List of services</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="SITService"/> + </array> + </field> + </record> + <record name="SITService" c:type="GstMpegtsSITService" version="1.20" glib:type-name="GstMpegtsSITService" glib:get-type="gst_mpegts_sit_service_get_type" c:symbol-prefix="sit_service"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">SIT Service entry</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="service_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">The Program number this table belongs to</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="running_status" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Status of this service</doc> + <type name="RunningStatus" c:type="GstMpegtsRunningStatus"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">List of descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + </record> + <record name="SatelliteDeliverySystemDescriptor" c:type="GstMpegtsSatelliteDeliverySystemDescriptor" glib:type-name="GstMpegtsSatelliteDeliverySystemDescriptor" glib:get-type="gst_mpegts_satellite_delivery_system_descriptor_get_type" c:symbol-prefix="satellite_delivery_system_descriptor"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Satellite Delivery System Descriptor (EN 300 468 v.1.13.1)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="frequency" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the frequency in kHz (kiloHertz)</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="orbital_position" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the orbital position in degrees</doc> + <type name="gfloat" c:type="gfloat"/> + </field> + <field name="west_east" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">If %TRUE, the satellite is in the eastern part of the orbit, +else in the western part.</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="polarization" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">The polarization of the transmitted signal</doc> + <type name="SatellitePolarizationType" c:type="GstMpegtsSatellitePolarizationType"/> + </field> + <field name="roll_off" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Roll-off factor used in DVB-S2</doc> + <type name="SatelliteRolloff" c:type="GstMpegtsSatelliteRolloff"/> + </field> + <field name="modulation_system" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">modulation system, %TRUE if DVB-S2, else DVB-S</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="modulation_type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Modulation scheme used</doc> + <type name="ModulationType" c:type="GstMpegtsModulationType"/> + </field> + <field name="symbol_rate" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Symbol rate (in symbols per second)</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="fec_inner" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">inner FEC scheme used</doc> + <type name="DVBCodeRate" c:type="GstMpegtsDVBCodeRate"/> + </field> + </record> + <enumeration name="SatellitePolarizationType" c:type="GstMpegtsSatellitePolarizationType"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="linear_horizontal" value="0" c:identifier="GST_MPEGTS_POLARIZATION_LINEAR_HORIZONTAL"> + </member> + <member name="linear_vertical" value="1" c:identifier="GST_MPEGTS_POLARIZATION_LINEAR_VERTICAL"> + </member> + <member name="circular_left" value="2" c:identifier="GST_MPEGTS_POLARIZATION_CIRCULAR_LEFT"> + </member> + <member name="circular_right" value="3" c:identifier="GST_MPEGTS_POLARIZATION_CIRCULAR_RIGHT"> + </member> + </enumeration> + <enumeration name="SatelliteRolloff" c:type="GstMpegtsSatelliteRolloff"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="35" value="0" c:identifier="GST_MPEGTS_ROLLOFF_35"> + </member> + <member name="20" value="1" c:identifier="GST_MPEGTS_ROLLOFF_20"> + </member> + <member name="25" value="2" c:identifier="GST_MPEGTS_ROLLOFF_25"> + </member> + <member name="reserved" value="3" c:identifier="GST_MPEGTS_ROLLOFF_RESERVED"> + </member> + <member name="auto" value="4" c:identifier="GST_MPEGTS_ROLLOFF_AUTO"> + </member> + </enumeration> + <enumeration name="ScteStreamType" c:type="GstMpegtsScteStreamType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">Type of mpeg-ts streams for SCTE. Most users would want to use the +#GstMpegtsATSCStreamType instead since it also covers these stream types</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <member name="subtitling" value="130" c:identifier="GST_MPEGTS_STREAM_TYPE_SCTE_SUBTITLING"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">SCTE-27 Subtitling</doc> + </member> + <member name="isoch_data" value="131" c:identifier="GST_MPEGTS_STREAM_TYPE_SCTE_ISOCH_DATA"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">SCTE-19 Isochronous data</doc> + </member> + <member name="sit" value="134" c:identifier="GST_MPEGTS_STREAM_TYPE_SCTE_SIT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">SCTE-35 Splice Information Table</doc> + </member> + <member name="dst_nrt" value="149" c:identifier="GST_MPEGTS_STREAM_TYPE_SCTE_DST_NRT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">SCTE-07 Data Service or +Network Resource Table</doc> + </member> + <member name="dsmcc_dcb" value="176" c:identifier="GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">Type B - DSM-CC Data Carousel +[IEC 13818-6])</doc> + </member> + <member name="signaling" value="192" c:identifier="GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">Enhanced Television Application +Signaling (OC-SP-ETV-AM1.0.1-120614)</doc> + </member> + <member name="sync_data" value="194" c:identifier="GST_MPEGTS_STREAM_TYPE_SCTE_SYNC_DATA"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">SCTE-07 Synchronous data</doc> + </member> + <member name="async_data" value="195" c:identifier="GST_MPEGTS_STREAM_TYPE_SCTE_ASYNC_DATA"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">SCTE-53 Asynchronous data</doc> + </member> + </enumeration> + <record name="Section" c:type="GstMpegtsSection" glib:type-name="GstMpegtsSection" glib:get-type="gst_mpegts_section_get_type" c:symbol-prefix="section"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">## Generic usage of sections with %GstMpegtsSection + +The %GstMpegtsSection object is the representation of MPEG-TS Section (SI or +PSI). + +Various elements can post those on the bus via %GstMessage of type +%GST_MESSAGE_ELEMENT. The gst_message_parse_mpegts_section() function +provides access to the section. + +Applications (or other elements) can create them either by using one of the +`gst_mpegts_section_from_*` functions, or by providing the raw SI data via +gst_mpegts_section_new(). + +Elements outputting MPEG-TS streams can also create sections using the +various convenience functions and then get the packetized data (to be +inserted in MPEG-TS packets) using gst_mpegts_section_packetize(). + +For more details, refer to the ITU H.222.0 or ISO/IEC 13818-1 specifications +and other specifications mentioned in the documentation. + +# Supported base MPEG-TS sections +These are the sections for which parsing and packetizing code exists. + +## Program Association Table (PAT) +See: +* gst_mpegts_section_get_pat() +* gst_mpegts_pat_program_new() +* %GstMpegtsPatProgram + +## Conditional Access Table (CAT) +See: +* gst_mpegts_section_get_cat() + +## Program Map Table (PMT) +See: +* %GstMpegtsPMT +* gst_mpegts_section_get_pmt() +* gst_mpegts_pmt_new() +* %GstMpegtsPMTStream + +## Transport Stream Description Table (TSDT) +See: +* gst_mpegts_section_get_tsdt() +# API</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <field name="parent" readable="0" private="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject"/> + </field> + <field name="section_type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">The type of section.</doc> + <type name="SectionType" c:type="GstMpegtsSectionType"/> + </field> + <field name="pid" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">The PID on which this section was found or belongs to.</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="table_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">The table id of this section. See %GstMpegtsSectionTableID and + derivates for more information.</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="subtable_extension" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">This meaning differs per section. See the documentation + of the parsed section type for the meaning of this field</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="version_number" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Version of the section.</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="current_next_indicator" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Applies to current/next stream or not</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="section_number" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Number of the section (if multiple)</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="last_section_number" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Number of the last expected section (if multiple)</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="crc" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Checksum (if applicable)</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="data" readable="0" private="1"> + <type name="guint8" c:type="guint8*"/> + </field> + <field name="section_length" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="cached_parsed" readable="0" private="1"> + <type name="gpointer" c:type="gpointer*"/> + </field> + <field name="destroy_parsed" readable="0" private="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + <field name="offset" readable="0" private="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="short_section" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="packetizer" readable="0" private="1"> + <type name="PacketizeFunc" c:type="GstMpegtsPacketizeFunc"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <constructor name="new" c:identifier="gst_mpegts_section_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Creates a new #GstMpegtsSection from the provided @data. + +Note: Ensuring @data is big enough to contain the full section is the +responsibility of the caller. If it is not big enough, %NULL will be +returned. + +Note: it is the responsibility of the caller to ensure @data does point +to the beginning of the section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">A new #GstMpegtsSection if the data was valid, +else %NULL</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="pid" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">the PID to which this section belongs</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="data" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a pointer to the beginning of +the section (i.e. the first byte should contain the `table_id` field).</doc> + <array length="2" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="data_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">size of the @data argument.</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </constructor> + <method name="get_atsc_cvct" c:identifier="gst_mpegts_section_get_atsc_cvct"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">Returns the #GstMpegtsAtscVCT contained in the @section</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">The #GstMpegtsAtscVCT contained in the section, or %NULL if an error +happened.</doc> + <type name="AtscVCT" c:type="const GstMpegtsAtscVCT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_CVCT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_atsc_eit" c:identifier="gst_mpegts_section_get_atsc_eit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">Returns the #GstMpegtsAtscEIT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">The #GstMpegtsAtscEIT contained in the section, or %NULL if an error +happened.</doc> + <type name="AtscEIT" c:type="const GstMpegtsAtscEIT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_EIT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_atsc_ett" c:identifier="gst_mpegts_section_get_atsc_ett"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">Returns the #GstMpegtsAtscETT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">The #GstMpegtsAtscETT contained in the section, or %NULL if an error +happened.</doc> + <type name="AtscETT" c:type="const GstMpegtsAtscETT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_ETT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_atsc_mgt" c:identifier="gst_mpegts_section_get_atsc_mgt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">Returns the #GstMpegtsAtscMGT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">The #GstMpegtsAtscMGT contained in the section, or %NULL if an error +happened.</doc> + <type name="AtscMGT" c:type="const GstMpegtsAtscMGT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_MGT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_atsc_rrt" c:identifier="gst_mpegts_section_get_atsc_rrt" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">Returns the #GstMpegtsAtscRRT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">The #GstMpegtsAtscRRT contained in the section, or %NULL if an error +happened.</doc> + <type name="AtscRRT" c:type="const GstMpegtsAtscRRT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_RRT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_atsc_stt" c:identifier="gst_mpegts_section_get_atsc_stt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">Returns the #GstMpegtsAtscSTT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">The #GstMpegtsAtscSTT contained in the section, or %NULL if an error +happened.</doc> + <type name="AtscSTT" c:type="const GstMpegtsAtscSTT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_STT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_atsc_tvct" c:identifier="gst_mpegts_section_get_atsc_tvct"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">Returns the #GstMpegtsAtscVCT contained in the @section</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">The #GstMpegtsAtscVCT contained in the section, or %NULL if an error +happened.</doc> + <type name="AtscVCT" c:type="const GstMpegtsAtscVCT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_TVCT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_bat" c:identifier="gst_mpegts_section_get_bat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Returns the #GstMpegtsBAT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">The #GstMpegtsBAT contained in the section, or %NULL if an error +happened.</doc> + <type name="BAT" c:type="const GstMpegtsBAT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_BAT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_cat" c:identifier="gst_mpegts_section_get_cat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Parses a Conditional Access Table. + +Returns the array of #GstMpegtsDescriptor contained in the Conditional +Access Table.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The array +of #GstMpegtsDescriptor contained in the section, or %NULL if an error +happened. Release with #g_array_unref when done.</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_CAT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_data" c:identifier="gst_mpegts_section_get_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Gets the original unparsed section data.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The original unparsed section data.</doc> + <type name="GLib.Bytes" c:type="GBytes*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_eit" c:identifier="gst_mpegts_section_get_eit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Returns the #GstMpegtsEIT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">The #GstMpegtsEIT contained in the section, or %NULL if an error +happened.</doc> + <type name="EIT" c:type="const GstMpegtsEIT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_EIT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_nit" c:identifier="gst_mpegts_section_get_nit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Returns the #GstMpegtsNIT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">The #GstMpegtsNIT contained in the section, or %NULL if an error +happened.</doc> + <type name="NIT" c:type="const GstMpegtsNIT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_NIT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pat" c:identifier="gst_mpegts_section_get_pat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Parses a Program Association Table (ITU H.222.0, ISO/IEC 13818-1). + +Returns the array of #GstMpegtsPatProgram contained in the section. + +Note: The PAT `transport_stream_id` field corresponds to the +"subtable_extension" field of the provided @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The +#GstMpegtsPatProgram contained in the section, or %NULL if an error happened +or the @section did not contain a valid PAT. Release with #g_ptr_array_unref +when done.</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="PatProgram"/> + </array> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_PAT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pmt" c:identifier="gst_mpegts_section_get_pmt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Parses the Program Map Table contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The #GstMpegtsPMT contained in the section, or %NULL if an error +happened.</doc> + <type name="PMT" c:type="const GstMpegtsPMT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_PMT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_scte_sit" c:identifier="gst_mpegts_section_get_scte_sit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Returns the #GstMpegtsSCTESIT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">The #GstMpegtsSCTESIT contained in the section, or %NULL if an error +happened.</doc> + <type name="SCTESIT" c:type="const GstMpegtsSCTESIT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_SCTE_SIT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_sdt" c:identifier="gst_mpegts_section_get_sdt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Returns the #GstMpegtsSDT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">The #GstMpegtsSDT contained in the section, or %NULL if an error +happened.</doc> + <type name="SDT" c:type="const GstMpegtsSDT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_SDT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_sit" c:identifier="gst_mpegts_section_get_sit" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Returns the #GstMpegtsSIT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">The #GstMpegtsSIT contained in the section, or %NULL if an error +happened.</doc> + <type name="SIT" c:type="const GstMpegtsSIT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_SIT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tdt" c:identifier="gst_mpegts_section_get_tdt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Returns the #GstDateTime of the TDT</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">The #GstDateTime contained in the section, or %NULL +if an error happened. Release with #gst_date_time_unref when done.</doc> + <type name="Gst.DateTime" c:type="GstDateTime*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_TDT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tot" c:identifier="gst_mpegts_section_get_tot"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Returns the #GstMpegtsTOT contained in the @section.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">The #GstMpegtsTOT contained in the section, or %NULL if an error +happened.</doc> + <type name="TOT" c:type="const GstMpegtsTOT*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_TOT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tsdt" c:identifier="gst_mpegts_section_get_tsdt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Parses a Transport Stream Description Table. + +Returns the array of #GstMpegtsDescriptor contained in the section</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The array +of #GstMpegtsDescriptor contained in the section, or %NULL if an error +happened. Release with #g_array_unref when done.</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMpegtsSection of type %GST_MPEGTS_SECTION_TSDT</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + </parameters> + </method> + <method name="packetize" c:identifier="gst_mpegts_section_packetize"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Packetize (i.e. serialize) the @section. If the data in @section has already +been packetized, the data pointer is returned immediately. Otherwise, the +data field is allocated and populated.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">pointer to section data, or %NULL on failure.</doc> + <type name="guint8" c:type="guint8*"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">the #GstMpegtsSection that holds the data</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + <parameter name="output_size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">#gsize to hold the size of the data</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + </parameters> + </method> + <method name="send_event" c:identifier="gst_mpegts_section_send_event"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Creates a custom #GstEvent with a @GstMpegtsSection and send it the @element +#GstElement.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">%TRUE if the event was sent to the element.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The #GstMpegtsSection to put in the event</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The #GstElement to send to section event to</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <function name="from_atsc_mgt" c:identifier="gst_mpegts_section_from_atsc_mgt" version="1.18"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">the #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="mgt" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">a #GstMpegtsAtscMGT to create the #GstMpegtsSection from</doc> + <type name="AtscMGT" c:type="GstMpegtsAtscMGT*"/> + </parameter> + </parameters> + </function> + <function name="from_atsc_rrt" c:identifier="gst_mpegts_section_from_atsc_rrt"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="rrt" transfer-ownership="none"> + <type name="AtscRRT" c:type="GstMpegtsAtscRRT*"/> + </parameter> + </parameters> + </function> + <function name="from_atsc_stt" c:identifier="gst_mpegts_section_from_atsc_stt"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="stt" transfer-ownership="none"> + <type name="AtscSTT" c:type="GstMpegtsAtscSTT*"/> + </parameter> + </parameters> + </function> + <function name="from_nit" c:identifier="gst_mpegts_section_from_nit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Ownership of @nit is taken. The data in @nit is managed by the #GstMpegtsSection</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">the #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="nit" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsNIT to create the #GstMpegtsSection from</doc> + <type name="NIT" c:type="GstMpegtsNIT*"/> + </parameter> + </parameters> + </function> + <function name="from_pat" c:identifier="gst_mpegts_section_from_pat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Creates a PAT #GstMpegtsSection from the @programs array of #GstMpegtsPatPrograms</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="programs" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">an array of #GstMpegtsPatProgram</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="PatProgram"/> + </array> + </parameter> + <parameter name="ts_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Transport stream ID of the PAT</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="from_pmt" c:identifier="gst_mpegts_section_from_pmt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Creates a #GstMpegtsSection from @pmt that is bound to @pid</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">#GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="pmt" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMpegtsPMT to create a #GstMpegtsSection from</doc> + <type name="PMT" c:type="GstMpegtsPMT*"/> + </parameter> + <parameter name="pid" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The PID that the #GstMpegtsPMT belongs to</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="from_scte_sit" c:identifier="gst_mpegts_section_from_scte_sit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Ownership of @sit is taken. The data in @sit is managed by the #GstMpegtsSection</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">the #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="sit" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">a #GstMpegtsSCTESIT to create the #GstMpegtsSection from</doc> + <type name="SCTESIT" c:type="GstMpegtsSCTESIT*"/> + </parameter> + <parameter name="pid" transfer-ownership="none"> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="from_sdt" c:identifier="gst_mpegts_section_from_sdt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Ownership of @sdt is taken. The data in @sdt is managed by the #GstMpegtsSection</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">the #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="sdt" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsSDT to create the #GstMpegtsSection from</doc> + <type name="SDT" c:type="GstMpegtsSDT*"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="SectionATSCTableID" c:type="GstMpegtsSectionATSCTableID"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Values for a #GstMpegtsSection table_id. + +These are the registered ATSC section `table_id` variants. Unless specified +otherwise, they are defined in the "ATSC A/65" specification. + +see also: #GstMpegtsSectionTableID and other variants.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <member name="master_guide" value="199" c:identifier="GST_MTS_TABLE_ID_ATSC_MASTER_GUIDE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Master Guide Table (MGT)</doc> + </member> + <member name="terrestrial_virtual_channel" value="200" c:identifier="GST_MTS_TABLE_ID_ATSC_TERRESTRIAL_VIRTUAL_CHANNEL"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Terrestrial Virtual Channel Table (TVCT)</doc> + </member> + <member name="cable_virtual_channel" value="201" c:identifier="GST_MTS_TABLE_ID_ATSC_CABLE_VIRTUAL_CHANNEL"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Cable Virtual Channel Table (CVCT)</doc> + </member> + <member name="rating_region" value="202" c:identifier="GST_MTS_TABLE_ID_ATSC_RATING_REGION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Rating Region Table (RRT)</doc> + </member> + <member name="event_information" value="203" c:identifier="GST_MTS_TABLE_ID_ATSC_EVENT_INFORMATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Event Information Table (EIT)</doc> + </member> + <member name="channel_or_event_extended_text" value="204" c:identifier="GST_MTS_TABLE_ID_ATSC_CHANNEL_OR_EVENT_EXTENDED_TEXT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Extended Text Table (ETT)</doc> + </member> + <member name="system_time" value="205" c:identifier="GST_MTS_TABLE_ID_ATSC_SYSTEM_TIME"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">System Time Table (STT)</doc> + </member> + <member name="data_event" value="206" c:identifier="GST_MTS_TABLE_ID_ATSC_DATA_EVENT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">A/90: Data Event Table (DET)</doc> + </member> + <member name="data_service" value="207" c:identifier="GST_MTS_TABLE_ID_ATSC_DATA_SERVICE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">A/90: Data Service Table (DST)</doc> + </member> + <member name="program_identifier" value="208" c:identifier="GST_MTS_TABLE_ID_ATSC_PROGRAM_IDENTIFIER"> + </member> + <member name="network_resource" value="209" c:identifier="GST_MTS_TABLE_ID_ATSC_NETWORK_RESOURCE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">A/90: Network Resources Table (NRT)</doc> + </member> + <member name="long_term_service" value="210" c:identifier="GST_MTS_TABLE_ID_ATSC_LONG_TERM_SERVICE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">A/90: Long Term Service Table (LTST)</doc> + </member> + <member name="directed_channel_change" value="211" c:identifier="GST_MTS_TABLE_ID_ATSC_DIRECTED_CHANNEL_CHANGE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Directed Channel Change Table (DCCT)</doc> + </member> + <member name="directed_channel_change_section_code" value="212" c:identifier="GST_MTS_TABLE_ID_ATSC_DIRECTED_CHANNEL_CHANGE_SECTION_CODE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">Directed Channel Change Selection Code Table (DCCSCT)</doc> + </member> + <member name="aggregate_event_information" value="214" c:identifier="GST_MTS_TABLE_ID_ATSC_AGGREGATE_EVENT_INFORMATION"> + </member> + <member name="aggregate_extended_text" value="215" c:identifier="GST_MTS_TABLE_ID_ATSC_AGGREGATE_EXTENDED_TEXT"> + </member> + <member name="aggregate_data_event" value="217" c:identifier="GST_MTS_TABLE_ID_ATSC_AGGREGATE_DATA_EVENT"> + </member> + <member name="satellite_virtual_channel" value="218" c:identifier="GST_MTS_TABLE_ID_ATSC_SATELLITE_VIRTUAL_CHANNEL"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h">A/81: Satellite Virtual Channel Table</doc> + </member> + </enumeration> + <enumeration name="SectionDVBTableID" c:type="GstMpegtsSectionDVBTableID"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Values for a #GstMpegtsSection table_id. + +These are the registered DVB table_id variants. Unless specified otherwise, +they come from the DVB Specification for SI (ETSI EN 300 468). + +see also: #GstMpegtsSectionTableID</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <member name="network_information_actual_network" value="64" c:identifier="GST_MTS_TABLE_ID_NETWORK_INFORMATION_ACTUAL_NETWORK"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Network Information Table (NIT), Actual Network</doc> + </member> + <member name="network_information_other_network" value="65" c:identifier="GST_MTS_TABLE_ID_NETWORK_INFORMATION_OTHER_NETWORK"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Network Information Table (NIT), Other Network</doc> + </member> + <member name="service_description_actual_ts" value="66" c:identifier="GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_ACTUAL_TS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Service Description Table (SDT), Actual Transport Stream</doc> + </member> + <member name="service_description_other_ts" value="70" c:identifier="GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_OTHER_TS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Service Description Table (SDT), Other Transport Stream</doc> + </member> + <member name="bouquet_association" value="74" c:identifier="GST_MTS_TABLE_ID_BOUQUET_ASSOCIATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Bouquet Association Table (BAT)</doc> + </member> + <member name="update_notification" value="75" c:identifier="GST_MTS_TABLE_ID_UPDATE_NOTIFICATION"> + </member> + <member name="downloadable_font_info" value="76" c:identifier="GST_MTS_TABLE_ID_DOWNLOADABLE_FONT_INFO"> + </member> + <member name="event_information_actual_ts_present" value="78" c:identifier="GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_PRESENT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Event Information Table (EIT), Actual Transport Stream, present/following</doc> + </member> + <member name="event_information_other_ts_present" value="79" c:identifier="GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_PRESENT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Event Information Table (EIT), Other Transport Stream, present/following</doc> + </member> + <member name="event_information_actual_ts_schedule_1" value="80" c:identifier="GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Event Information Table (EIT), Actual Transport Stream, Schedule (first)</doc> + </member> + <member name="event_information_actual_ts_schedule_n" value="95" c:identifier="GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_N"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Event Information Table (EIT), Actual Transport Stream, Schedule (last)</doc> + </member> + <member name="event_information_other_ts_schedule_1" value="96" c:identifier="GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Event Information Table (EIT), Other Transport Stream, Schedule (first)</doc> + </member> + <member name="event_information_other_ts_schedule_n" value="111" c:identifier="GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_N"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Event Information Table (EIT), Other Transport Stream, Schedule (last)</doc> + </member> + <member name="time_date" value="112" c:identifier="GST_MTS_TABLE_ID_TIME_DATE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Time Date Table (TDT)</doc> + </member> + <member name="running_status" value="113" c:identifier="GST_MTS_TABLE_ID_RUNNING_STATUS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Running Status Table (RST)</doc> + </member> + <member name="stuffing" value="114" c:identifier="GST_MTS_TABLE_ID_STUFFING"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Stuffing Table (ST)</doc> + </member> + <member name="time_offset" value="115" c:identifier="GST_MTS_TABLE_ID_TIME_OFFSET"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Time Offset Table (TOT)</doc> + </member> + <member name="application_information_table" value="116" c:identifier="GST_MTS_TABLE_ID_APPLICATION_INFORMATION_TABLE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TS 102 323: Application Information Table (AIT)</doc> + </member> + <member name="container" value="117" c:identifier="GST_MTS_TABLE_ID_CONTAINER"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TS 102 323: Container Section</doc> + </member> + <member name="related_content" value="118" c:identifier="GST_MTS_TABLE_ID_RELATED_CONTENT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TS 102 323: Related Content Table (RCT)</doc> + </member> + <member name="content_identifier" value="119" c:identifier="GST_MTS_TABLE_ID_CONTENT_IDENTIFIER"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TS 102 323: Content Identifier Table (CIT)</doc> + </member> + <member name="mpe_fec" value="120" c:identifier="GST_MTS_TABLE_ID_MPE_FEC"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TS 301 192: MPE-FEC Section</doc> + </member> + <member name="resolution_notification" value="121" c:identifier="GST_MTS_TABLE_ID_RESOLUTION_NOTIFICATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI 103 323: Resolution Provider Notification Table (RNT)</doc> + </member> + <member name="mpe_ifec" value="122" c:identifier="GST_MTS_TABLE_ID_MPE_IFEC"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TS 102 772: MPE-IFEC Section</doc> + </member> + <member name="protection_message" value="123" c:identifier="GST_MTS_TABLE_ID_PROTECTION_MESSAGE"> + </member> + <member name="discontinuity_information" value="126" c:identifier="GST_MTS_TABLE_ID_DISCONTINUITY_INFORMATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Discontinuity Information Table (DIT)</doc> + </member> + <member name="selection_information" value="127" c:identifier="GST_MTS_TABLE_ID_SELECTION_INFORMATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Selection Information Table (SIT)</doc> + </member> + <member name="ca_message_ecm_0" value="128" c:identifier="GST_MTS_TABLE_ID_CA_MESSAGE_ECM_0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TR 289: CA Message Table (CMT): ECM 0</doc> + </member> + <member name="ca_message_ecm_1" value="129" c:identifier="GST_MTS_TABLE_ID_CA_MESSAGE_ECM_1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TR 289: CA Message Table (CMT): ECM 1</doc> + </member> + <member name="ca_message_system_private_1" value="130" c:identifier="GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TR 289: CA Message Table (CMT): CA System Private (First)</doc> + </member> + <member name="ca_message_system_private_n" value="143" c:identifier="GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_N"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">ETSI TR 289: CA Message Table (CMT): CA System Private (Last)</doc> + </member> + <member name="sct" value="160" c:identifier="GST_MTS_TABLE_ID_SCT"> + </member> + <member name="fct" value="161" c:identifier="GST_MTS_TABLE_ID_FCT"> + </member> + <member name="tct" value="162" c:identifier="GST_MTS_TABLE_ID_TCT"> + </member> + <member name="spt" value="163" c:identifier="GST_MTS_TABLE_ID_SPT"> + </member> + <member name="cmt" value="164" c:identifier="GST_MTS_TABLE_ID_CMT"> + </member> + <member name="tbtp" value="165" c:identifier="GST_MTS_TABLE_ID_TBTP"> + </member> + <member name="pcr_packet_payload" value="166" c:identifier="GST_MTS_TABLE_ID_PCR_PACKET_PAYLOAD"> + </member> + <member name="transmission_mode_support_payload" value="170" c:identifier="GST_MTS_TABLE_ID_TRANSMISSION_MODE_SUPPORT_PAYLOAD"> + </member> + <member name="tim" value="176" c:identifier="GST_MTS_TABLE_ID_TIM"> + </member> + <member name="ll_fec_parity_data_table" value="177" c:identifier="GST_MTS_TABLE_ID_LL_FEC_PARITY_DATA_TABLE"> + </member> + </enumeration> + <enumeration name="SectionSCTETableID" c:type="GstMpegtsSectionSCTETableID"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">Values for a #GstMpegtsSection table_id. + +These are the registered SCTE table_id variants. + +see also: #GstMpegtsSectionTableID</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <member name="eas" value="216" c:identifier="GST_MTS_TABLE_ID_SCTE_EAS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">SCTE-18 Emergency Alert System</doc> + </member> + <member name="ebif" value="224" c:identifier="GST_MTS_TABLE_ID_SCTE_EBIF"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">CL-SP-ETV-AM 1.0.1 EBIF message</doc> + </member> + <member name="reserved" value="225" c:identifier="GST_MTS_TABLE_ID_SCTE_RESERVED"> + </member> + <member name="eiss" value="226" c:identifier="GST_MTS_TABLE_ID_SCTE_EISS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">CL-SP-ETV-AM 1.0.1 EBIF Int. Signaling Sect.</doc> + </member> + <member name="dii" value="227" c:identifier="GST_MTS_TABLE_ID_SCTE_DII"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">CL-SP-ETV-AM 1.0.1 DSMCC DII message</doc> + </member> + <member name="ddb" value="228" c:identifier="GST_MTS_TABLE_ID_SCTE_DDB"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">CL-SP-ETV-AM 1.0.1 DSMCC Data Download Block</doc> + </member> + <member name="splice" value="252" c:identifier="GST_MTS_TABLE_ID_SCTE_SPLICE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h">SCTE-35 splice information is carried in a +section stream on a separate PID in the program’s Map Table (PMT) allowing +Splice Event notifications to remain associated with the program and pass +through multiplexers.</doc> + </member> + </enumeration> + <enumeration name="SectionTableID" c:type="GstMpegtsSectionTableID"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Values for a #GstMpegtsSection table_id + +These are the registered ITU H.222.0 | ISO/IEC 13818-1 table_id variants. + +see also #GstMpegtsSectionATSCTableID, #GstMpegtsSectionDVBTableID, and +#GstMpegtsSectionSCTETableID</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <member name="program_association" value="0" c:identifier="GST_MTS_TABLE_ID_PROGRAM_ASSOCIATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Program Association Table (PAT)</doc> + </member> + <member name="conditional_access" value="1" c:identifier="GST_MTS_TABLE_ID_CONDITIONAL_ACCESS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Conditional Access Table (CAT)</doc> + </member> + <member name="ts_program_map" value="2" c:identifier="GST_MTS_TABLE_ID_TS_PROGRAM_MAP"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Program Map Table (PMT)</doc> + </member> + <member name="ts_description" value="3" c:identifier="GST_MTS_TABLE_ID_TS_DESCRIPTION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Transport Stream Description Table</doc> + </member> + <member name="14496_scene_description" value="4" c:identifier="GST_MTS_TABLE_ID_14496_SCENE_DESCRIPTION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 14496 Scene Description Table</doc> + </member> + <member name="14496_objet_descriptor" value="5" c:identifier="GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 14496 Object Descriptor Table</doc> + </member> + <member name="metadata" value="6" c:identifier="GST_MTS_TABLE_ID_METADATA"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Metadata Section</doc> + </member> + <member name="ipmp_control_information" value="7" c:identifier="GST_MTS_TABLE_ID_IPMP_CONTROL_INFORMATION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">IPMP Control Information</doc> + </member> + <member name="14496_section" value="8" c:identifier="GST_MTS_TABLE_ID_14496_SECTION"> + </member> + <member name="23001_11_section" value="9" c:identifier="GST_MTS_TABLE_ID_23001_11_SECTION"> + </member> + <member name="23001_10_section" value="10" c:identifier="GST_MTS_TABLE_ID_23001_10_SECTION"> + </member> + <member name="dsm_cc_multiproto_encapsulated_data" value="58" c:identifier="GST_MTS_TABLE_ID_DSM_CC_MULTIPROTO_ENCAPSULATED_DATA"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">DSM-CC Multi-Protocol Encapsulated (MPE) Data</doc> + </member> + <member name="dsm_cc_u_n_messages" value="59" c:identifier="GST_MTS_TABLE_ID_DSM_CC_U_N_MESSAGES"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">DSM-CC U-N Messages</doc> + </member> + <member name="dsm_cc_download_data_messages" value="60" c:identifier="GST_MTS_TABLE_ID_DSM_CC_DOWNLOAD_DATA_MESSAGES"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">DSM-CC Download Data Messages</doc> + </member> + <member name="dsm_cc_stream_descriptors" value="61" c:identifier="GST_MTS_TABLE_ID_DSM_CC_STREAM_DESCRIPTORS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">DSM-CC Stream Descriptors</doc> + </member> + <member name="dsm_cc_private_data" value="62" c:identifier="GST_MTS_TABLE_ID_DSM_CC_PRIVATE_DATA"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">DSM-CC Private Data</doc> + </member> + <member name="dsm_cc_addressable_sections" value="63" c:identifier="GST_MTS_TABLE_ID_DSM_CC_ADDRESSABLE_SECTIONS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">DSM-CC Addressable Section</doc> + </member> + <member name="unset" value="255" c:identifier="GST_MTS_TABLE_ID_UNSET"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Unset section table_id (value is forbidden to use in actual sections)</doc> + </member> + </enumeration> + <enumeration name="SectionType" c:type="GstMpegtsSectionType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Types of #GstMpegtsSection that the library handles. This covers all the +MPEG-TS and derivate specification that the library can properly identify and +use.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <member name="unknown" value="0" c:identifier="GST_MPEGTS_SECTION_UNKNOWN"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Unknown section type</doc> + </member> + <member name="pat" value="1" c:identifier="GST_MPEGTS_SECTION_PAT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Program Association Table (ISO/IEC 13818-1)</doc> + </member> + <member name="pmt" value="2" c:identifier="GST_MPEGTS_SECTION_PMT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Program Map Table (ISO/IEC 13818-1)</doc> + </member> + <member name="cat" value="3" c:identifier="GST_MPEGTS_SECTION_CAT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Conditional Access Table (ISO/IEC 13818-1)</doc> + </member> + <member name="tsdt" value="4" c:identifier="GST_MPEGTS_SECTION_TSDT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Transport Stream Description Table (ISO/IEC 13818-1)</doc> + </member> + <member name="eit" value="5" c:identifier="GST_MPEGTS_SECTION_EIT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Event Information Table (EN 300 468)</doc> + </member> + <member name="nit" value="6" c:identifier="GST_MPEGTS_SECTION_NIT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Network Information Table (ISO/IEC 13818-1 / EN 300 468)</doc> + </member> + <member name="bat" value="7" c:identifier="GST_MPEGTS_SECTION_BAT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Bouquet Association Table ((EN 300 468)</doc> + </member> + <member name="sdt" value="8" c:identifier="GST_MPEGTS_SECTION_SDT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Service Description Table (EN 300 468)</doc> + </member> + <member name="tdt" value="9" c:identifier="GST_MPEGTS_SECTION_TDT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Time and Date Table (EN 300 468)</doc> + </member> + <member name="tot" value="10" c:identifier="GST_MPEGTS_SECTION_TOT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Time Offset Table (EN 300 468)</doc> + </member> + <member name="sit" value="11" c:identifier="GST_MPEGTS_SECTION_SIT"> + </member> + <member name="atsc_tvct" value="12" c:identifier="GST_MPEGTS_SECTION_ATSC_TVCT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ATSC Terrestrial Virtual Channel Table (A65)</doc> + </member> + <member name="atsc_cvct" value="13" c:identifier="GST_MPEGTS_SECTION_ATSC_CVCT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ATSC Cable Virtual Channel Table (A65)</doc> + </member> + <member name="atsc_mgt" value="14" c:identifier="GST_MPEGTS_SECTION_ATSC_MGT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ATSC Master Guide Table (A65)</doc> + </member> + <member name="atsc_ett" value="15" c:identifier="GST_MPEGTS_SECTION_ATSC_ETT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ATSC Extended Text Table (A65)</doc> + </member> + <member name="atsc_eit" value="16" c:identifier="GST_MPEGTS_SECTION_ATSC_EIT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ATSC Event Information Table (A65)</doc> + </member> + <member name="atsc_stt" value="17" c:identifier="GST_MPEGTS_SECTION_ATSC_STT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ATSC System Time Table (A65)</doc> + </member> + <member name="atsc_rrt" value="18" c:identifier="GST_MPEGTS_SECTION_ATSC_RRT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ATSC Rating Region Table (A65)</doc> + </member> + <member name="scte_sit" value="19" c:identifier="GST_MPEGTS_SECTION_SCTE_SIT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">SCTE Splice Information Table (SCTE-35)</doc> + </member> + </enumeration> + <enumeration name="StreamType" c:type="GstMpegtsStreamType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Type of MPEG-TS stream type. + +These values correspond to the base standard registered types. Depending +on the variant of mpeg-ts being used (Bluray, ATSC, DVB, ...), other +types might also be used, but will not conflict with these. + +Corresponds to table 2-34 of ITU H.222.0 | ISO/IEC 13818-1</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <member name="reserved_00" value="0" c:identifier="GST_MPEGTS_STREAM_TYPE_RESERVED_00"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ITU-T | ISO/IEC Reserved</doc> + </member> + <member name="video_mpeg1" value="1" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 11172-2 Video (i.e. MPEG-1 Video)</doc> + </member> + <member name="video_mpeg2" value="2" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Rec. ITU-T H.262 | ISO/IEC 13818-2 + Video or ISO/IEC 11172-2 constrained parameter video stream (i.e. + MPEG-2 Video)</doc> + </member> + <member name="audio_mpeg1" value="3" c:identifier="GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 11172-3 Audio</doc> + </member> + <member name="audio_mpeg2" value="4" c:identifier="GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 13818-3 Audio</doc> + </member> + <member name="private_sections" value="5" c:identifier="GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">private sections</doc> + </member> + <member name="private_pes_packets" value="6" c:identifier="GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">PES packets containing private data</doc> + </member> + <member name="mheg" value="7" c:identifier="GST_MPEGTS_STREAM_TYPE_MHEG"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 13522 MHEG</doc> + </member> + <member name="dsm_cc" value="8" c:identifier="GST_MPEGTS_STREAM_TYPE_DSM_CC"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Annex A DSM-CC</doc> + </member> + <member name="h_222_1" value="9" c:identifier="GST_MPEGTS_STREAM_TYPE_H_222_1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Rec. ITU-T H.222.1</doc> + </member> + <member name="dsmcc_a" value="10" c:identifier="GST_MPEGTS_STREAM_TYPE_DSMCC_A"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 13818-6 type A</doc> + </member> + <member name="dsmcc_b" value="11" c:identifier="GST_MPEGTS_STREAM_TYPE_DSMCC_B"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 13818-6 type B</doc> + </member> + <member name="dsmcc_c" value="12" c:identifier="GST_MPEGTS_STREAM_TYPE_DSMCC_C"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 13818-6 type C</doc> + </member> + <member name="dsmcc_d" value="13" c:identifier="GST_MPEGTS_STREAM_TYPE_DSMCC_D"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 13818-6 type D</doc> + </member> + <member name="auxiliary" value="14" c:identifier="GST_MPEGTS_STREAM_TYPE_AUXILIARY"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">auxiliary streams</doc> + </member> + <member name="audio_aac_adts" value="15" c:identifier="GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 13818-7 Audio (AAC) with ADTS + transport syntax</doc> + </member> + <member name="video_mpeg4" value="16" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 14496-2 Visual (MPEG-4 Video)</doc> + </member> + <member name="audio_aac_latm" value="17" c:identifier="GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 14496-3 Audio (AAC) with the LATM + transport syntax as defined in ISO/IEC 14496-3</doc> + </member> + <member name="sl_flexmux_pes_packets" value="18" c:identifier="GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 14496-1 + SL-packetized stream or FlexMux stream carried in PES packets</doc> + </member> + <member name="sl_flexmux_sections" value="19" c:identifier="GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 14496-1 SL-packetized + stream or FlexMux stream carried in ISO/IEC 14496_sections</doc> + </member> + <member name="synchronized_download" value="20" c:identifier="GST_MPEGTS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 13818-6 Synchronized + Download Protocol</doc> + </member> + <member name="metadata_pes_packets" value="21" c:identifier="GST_MPEGTS_STREAM_TYPE_METADATA_PES_PACKETS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Metadata carried in PES packets</doc> + </member> + <member name="metadata_sections" value="22" c:identifier="GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Metadata carried in metadata_sections</doc> + </member> + <member name="metadata_data_carousel" value="23" c:identifier="GST_MPEGTS_STREAM_TYPE_METADATA_DATA_CAROUSEL"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Metadata carried in ISO/IEC + 13818-6 Data Carousel</doc> + </member> + <member name="metadata_object_carousel" value="24" c:identifier="GST_MPEGTS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Metadata carried in + ISO/IEC 13818-6 Object Carousel</doc> + </member> + <member name="metadata_synchronized_download" value="25" c:identifier="GST_MPEGTS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Metadata carried in + ISO/IEC 13818-6 Synchronized Download Protocol</doc> + </member> + <member name="mpeg2_ipmp" value="26" c:identifier="GST_MPEGTS_STREAM_TYPE_MPEG2_IPMP"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">IPMP stream (defined in ISO/IEC 13818-11, + MPEG-2 IPMP)</doc> + </member> + <member name="video_h264" value="27" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_H264"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">AVC video stream conforming to one or +more profiles defined in Annex A of Rec. ITU-T H.264 | ISO/IEC 14496-10 or +AVC video sub-bitstream of SVC as defined in 2.1.78 or MVC base view +sub-bitstream, as defined in 2.1.85, or AVC video sub-bitstream of MVC, as +defined in 2.1.88</doc> + </member> + <member name="audio_aac_clean" value="28" c:identifier="GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_CLEAN"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 14496-3 (AAC) Audio, without + using any additional transport syntax, such as DST, ALS and SLS</doc> + </member> + <member name="mpeg4_timed_text" value="29" c:identifier="GST_MPEGTS_STREAM_TYPE_MPEG4_TIMED_TEXT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">ISO/IEC 14496-17 Text</doc> + </member> + <member name="video_rvc" value="30" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_RVC"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Auxiliary video stream as defined in +ISO/IEC 23002-3</doc> + </member> + <member name="video_h264_svc_sub_bitstream" value="31" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">SVC video sub-bitstream +of an AVC video stream conforming to one or more profiles defined in Annex G +of Rec. ITU-T H.264 | ISO/IEC 14496-10</doc> + </member> + <member name="video_h264_mvc_sub_bitstream" value="32" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">MVC video sub-bitstream +of an AVC video stream conforming to one or more profiles defined in Annex H +of Rec. ITU-T H.264 | ISO/IEC 14496-10</doc> + </member> + <member name="video_jp2k" value="33" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Video stream conforming to one or more + profiles as defined in Rec. ITU-T T.800 | ISO/IEC 15444-1 (i.e. JPEG 2000)</doc> + </member> + <member name="video_mpeg2_stereo_additional_view" value="34" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Additional view +Rec. ITU-T H.262 | ISO/IEC 13818-2 video stream for service-compatible +stereoscopic 3D services</doc> + </member> + <member name="video_h264_stereo_additional_view" value="35" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Additional view +Rec. ITU-T H.264 | ISO/IEC 14496-10 video stream conforming to one or more +profiles defined in Annex A for service-compatible stereoscopic 3D services</doc> + </member> + <member name="video_hevc" value="36" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">Rec. ITU-T H.265 | ISO/IEC 23008-2 video + stream or an HEVC temporal video sub-bitstream</doc> + </member> + <member name="ipmp_stream" value="127" c:identifier="GST_MPEGTS_STREAM_TYPE_IPMP_STREAM"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">IPMP stream</doc> + </member> + <member name="user_private_ea" value="234" c:identifier="GST_MPEGTS_STREAM_TYPE_USER_PRIVATE_EA"> + </member> + </enumeration> + <record name="T2DeliverySystemCell" c:type="GstMpegtsT2DeliverySystemCell" glib:type-name="GstMpegtsT2DeliverySystemCell" glib:get-type="gst_mpegts_t2_delivery_system_cell_get_type" c:symbol-prefix="t2_delivery_system_cell"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="cell_id" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">id of the cell</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="centre_frequencies" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">centre frequencies in Hz</doc> + <array name="GLib.Array" c:type="GArray*"> + <type name="guint32"/> + </array> + </field> + <field name="sub_cells" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="T2DeliverySystemCellExtension"/> + </array> + </field> + </record> + <record name="T2DeliverySystemCellExtension" c:type="GstMpegtsT2DeliverySystemCellExtension" glib:type-name="GstMpegtsT2DeliverySystemCellExtension" glib:get-type="gst_mpegts_t2_delivery_system_cell_extension_get_type" c:symbol-prefix="t2_delivery_system_cell_extension"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="cell_id_extension" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">id of the sub cell</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="transposer_frequency" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">centre frequency of the sub cell in Hz</doc> + <type name="guint32" c:type="guint32"/> + </field> + </record> + <record name="T2DeliverySystemDescriptor" c:type="GstMpegtsT2DeliverySystemDescriptor" glib:type-name="GstMpegtsT2DeliverySystemDescriptor" glib:get-type="gst_mpegts_t2_delivery_system_descriptor_get_type" c:symbol-prefix="t2_delivery_system_descriptor"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">describe DVB-T2 transmissions according to EN 302 755</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="plp_id" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="t2_system_id" writable="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="siso_miso" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="bandwidth" writable="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="guard_interval" writable="1"> + <type name="TerrestrialGuardInterval" c:type="GstMpegtsTerrestrialGuardInterval"/> + </field> + <field name="transmission_mode" writable="1"> + <type name="TerrestrialTransmissionMode" c:type="GstMpegtsTerrestrialTransmissionMode"/> + </field> + <field name="other_frequency" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="tfs" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="cells" writable="1"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="T2DeliverySystemCell"/> + </array> + </field> + <method name="free" c:identifier="gst_mpegts_t2_delivery_system_descriptor_free"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <type name="T2DeliverySystemDescriptor" c:type="GstMpegtsT2DeliverySystemDescriptor*"/> + </instance-parameter> + </parameters> + </method> + </record> + <record name="TOT" c:type="GstMpegtsTOT" glib:type-name="GstMpegtsTOT" glib:get-type="gst_mpegts_tot_get_type" c:symbol-prefix="tot"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">Time Offset Table (EN 300 468)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <field name="utc_time" writable="1"> + <type name="Gst.DateTime" c:type="GstDateTime*"/> + </field> + <field name="descriptors" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h">List of descriptors</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </field> + </record> + <record name="TerrestrialDeliverySystemDescriptor" c:type="GstMpegtsTerrestrialDeliverySystemDescriptor" glib:type-name="GstMpegtsTerrestrialDeliverySystemDescriptor" glib:get-type="gst_mpegts_terrestrial_delivery_system_descriptor_get_type" c:symbol-prefix="terrestrial_delivery_system_descriptor"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">Terrestrial Delivery System Descriptor (EN 300 468 v.1.13.1)</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <field name="frequency" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the frequency in Hz (Hertz)</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="bandwidth" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the bandwidth in Hz (Hertz)</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="priority" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">%TRUE High Priority %FALSE Low Priority</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="time_slicing" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">%TRUE no time slicing %FALSE time slicing</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="mpe_fec" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">%TRUE no mpe-fec is used %FALSE mpe-fec is use</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="constellation" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the constellation</doc> + <type name="ModulationType" c:type="GstMpegtsModulationType"/> + </field> + <field name="hierarchy" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">the hierarchy</doc> + <type name="TerrestrialHierarchy" c:type="GstMpegtsTerrestrialHierarchy"/> + </field> + <field name="code_rate_hp" writable="1"> + <type name="DVBCodeRate" c:type="GstMpegtsDVBCodeRate"/> + </field> + <field name="code_rate_lp" writable="1"> + <type name="DVBCodeRate" c:type="GstMpegtsDVBCodeRate"/> + </field> + <field name="guard_interval" writable="1"> + <type name="TerrestrialGuardInterval" c:type="GstMpegtsTerrestrialGuardInterval"/> + </field> + <field name="transmission_mode" writable="1"> + <type name="TerrestrialTransmissionMode" c:type="GstMpegtsTerrestrialTransmissionMode"/> + </field> + <field name="other_frequency" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h">%TRUE more frequency are use, else not</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + </record> + <enumeration name="TerrestrialGuardInterval" c:type="GstMpegtsTerrestrialGuardInterval"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="1_32" value="0" c:identifier="GST_MPEGTS_GUARD_INTERVAL_1_32"> + </member> + <member name="1_16" value="1" c:identifier="GST_MPEGTS_GUARD_INTERVAL_1_16"> + </member> + <member name="1_8" value="2" c:identifier="GST_MPEGTS_GUARD_INTERVAL_1_8"> + </member> + <member name="1_4" value="3" c:identifier="GST_MPEGTS_GUARD_INTERVAL_1_4"> + </member> + <member name="auto" value="4" c:identifier="GST_MPEGTS_GUARD_INTERVAL_AUTO"> + </member> + <member name="1_128" value="5" c:identifier="GST_MPEGTS_GUARD_INTERVAL_1_128"> + </member> + <member name="19_128" value="6" c:identifier="GST_MPEGTS_GUARD_INTERVAL_19_128"> + </member> + <member name="19_256" value="7" c:identifier="GST_MPEGTS_GUARD_INTERVAL_19_256"> + </member> + <member name="pn420" value="8" c:identifier="GST_MPEGTS_GUARD_INTERVAL_PN420"> + </member> + <member name="pn595" value="9" c:identifier="GST_MPEGTS_GUARD_INTERVAL_PN595"> + </member> + <member name="pn945" value="10" c:identifier="GST_MPEGTS_GUARD_INTERVAL_PN945"> + </member> + </enumeration> + <enumeration name="TerrestrialHierarchy" c:type="GstMpegtsTerrestrialHierarchy"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="none" value="0" c:identifier="GST_MPEGTS_HIERARCHY_NONE"> + </member> + <member name="1" value="1" c:identifier="GST_MPEGTS_HIERARCHY_1"> + </member> + <member name="2" value="2" c:identifier="GST_MPEGTS_HIERARCHY_2"> + </member> + <member name="4" value="3" c:identifier="GST_MPEGTS_HIERARCHY_4"> + </member> + <member name="auto" value="4" c:identifier="GST_MPEGTS_HIERARCHY_AUTO"> + </member> + </enumeration> + <enumeration name="TerrestrialTransmissionMode" c:type="GstMpegtsTerrestrialTransmissionMode"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <member name="2k" value="0" c:identifier="GST_MPEGTS_TRANSMISSION_MODE_2K"> + </member> + <member name="8k" value="1" c:identifier="GST_MPEGTS_TRANSMISSION_MODE_8K"> + </member> + <member name="auto" value="2" c:identifier="GST_MPEGTS_TRANSMISSION_MODE_AUTO"> + </member> + <member name="4k" value="3" c:identifier="GST_MPEGTS_TRANSMISSION_MODE_4K"> + </member> + <member name="1k" value="4" c:identifier="GST_MPEGTS_TRANSMISSION_MODE_1K"> + </member> + <member name="16k" value="5" c:identifier="GST_MPEGTS_TRANSMISSION_MODE_16K"> + </member> + <member name="32k" value="6" c:identifier="GST_MPEGTS_TRANSMISSION_MODE_32K"> + </member> + <member name="c1" value="7" c:identifier="GST_MPEGTS_TRANSMISSION_MODE_C1"> + </member> + <member name="c3780" value="8" c:identifier="GST_MPEGTS_TRANSMISSION_MODE_C3780"> + </member> + </enumeration> + <function name="buffer_add_mpegts_pes_metadata_meta" c:identifier="gst_buffer_add_mpegts_pes_metadata_meta" version="1.24" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">Creates and adds a #GstMpegtsPESMetadataMeta to a @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">a newly created #GstMpegtsPESMetadataMeta</doc> + <type name="PESMetadataMeta" c:type="GstMpegtsPESMetadataMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="descriptor_from_custom" c:identifier="gst_mpegts_descriptor_from_custom" moved-to="Descriptor.from_custom"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Creates a #GstMpegtsDescriptor with custom @tag and @data</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">#GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor tag</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor data (after tag and length field)</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">length of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="descriptor_from_custom_with_extension" c:identifier="gst_mpegts_descriptor_from_custom_with_extension" moved-to="Descriptor.from_custom_with_extension" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Creates a #GstMpegtsDescriptor with custom @tag, @tag_extension and @data</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">#GstMpegtsDescriptor</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor tag</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="tag_extension" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor tag extension</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptor data (after tag and length field)</doc> + <array length="3" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">length of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="descriptor_from_dvb_network_name" c:identifier="gst_mpegts_descriptor_from_dvb_network_name" moved-to="Descriptor.from_dvb_network_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Creates a #GstMpegtsDescriptor to be a %GST_MTS_DESC_DVB_NETWORK_NAME, +with the network name @name. The data field of the #GstMpegtsDescriptor +will be allocated, and transferred to the caller.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsDescriptor or %NULL on fail</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the network name to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="descriptor_from_dvb_service" c:identifier="gst_mpegts_descriptor_from_dvb_service" moved-to="Descriptor.from_dvb_service"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Fills a #GstMpegtsDescriptor to be a %GST_MTS_DESC_DVB_SERVICE. +The data field of the #GstMpegtsDescriptor will be allocated, +and transferred to the caller.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">the #GstMpegtsDescriptor or %NULL on fail</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="service_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Service type defined as a #GstMpegtsDVBServiceType</doc> + <type name="DVBServiceType" c:type="GstMpegtsDVBServiceType"/> + </parameter> + <parameter name="service_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Name of the service</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="service_provider" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">Name of the service provider</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="descriptor_from_dvb_subtitling" c:identifier="gst_mpegts_descriptor_from_dvb_subtitling" moved-to="Descriptor.from_dvb_subtitling"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="full"> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="lang" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">a string containing the ISO639 language</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">subtitling type</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="composition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">composition page id</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="ancillary" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.c">ancillary page id</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="descriptor_from_iso_639_language" c:identifier="gst_mpegts_descriptor_from_iso_639_language" moved-to="Descriptor.from_iso_639_language"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Creates a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegtsDescriptor with +a single language</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">#GstMpegtsDescriptor, %NULL on failure</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="language" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">ISO-639-2 language 3-char code</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="descriptor_from_registration" c:identifier="gst_mpegts_descriptor_from_registration" moved-to="Descriptor.from_registration"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Creates a %GST_MTS_DESC_REGISTRATION #GstMpegtsDescriptor</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">#GstMpegtsDescriptor, %NULL on failure</doc> + <type name="Descriptor" c:type="GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="format_identifier" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">a 4 character format identifier string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="additional_info" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">pointer to optional additional info</doc> + <array length="2" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="additional_info_length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">length of the optional @additional_info</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="descriptor_parse_audio_preselection_dump" c:identifier="gst_mpegts_descriptor_parse_audio_preselection_dump" moved-to="Descriptor.parse_audio_preselection_dump" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <type name="AudioPreselectionDescriptor" c:type="GstMpegtsAudioPreselectionDescriptor*"/> + </parameter> + </parameters> + </function> + <function name="descriptor_parse_audio_preselection_free" c:identifier="gst_mpegts_descriptor_parse_audio_preselection_free" moved-to="Descriptor.parse_audio_preselection_free" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <type name="AudioPreselectionDescriptor" c:type="GstMpegtsAudioPreselectionDescriptor*"/> + </parameter> + </parameters> + </function> + <function name="dvb_component_descriptor_free" c:identifier="gst_mpegts_dvb_component_descriptor_free"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-descriptor.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <type name="ComponentDescriptor" c:type="GstMpegtsComponentDescriptor*"/> + </parameter> + </parameters> + </function> + <function name="event_new_mpegts_section" c:identifier="gst_event_new_mpegts_section" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Creates a new #GstEvent for a #GstMpegtsSection.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The new custom #GstEvent.</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The #GstMpegtsSection to put in a message</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </parameter> + </parameters> + </function> + <function name="event_parse_mpegts_section" c:identifier="gst_event_parse_mpegts_section"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Extracts the #GstMpegtsSection contained in the @event #GstEvent</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The extracted #GstMpegtsSection , or %NULL if the +event did not contain a valid #GstMpegtsSection.</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">#GstEvent containing a #GstMpegtsSection</doc> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </function> + <function name="find_descriptor" c:identifier="gst_mpegts_find_descriptor"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Finds the first descriptor of type @tag in the array. + +Note: To look for descriptors that can be present more than once in an +array of descriptors, iterate the #GArray manually.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">the first descriptor matching @tag, else %NULL.</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="descriptors" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">an array +of #GstMpegtsDescriptor</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">the tag to look for</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="find_descriptor_with_extension" c:identifier="gst_mpegts_find_descriptor_with_extension" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Finds the first descriptor of type @tag with @tag_extension in the array. + +Note: To look for descriptors that can be present more than once in an +array of descriptors, iterate the #GArray manually.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">the first descriptor matchin @tag with @tag_extension, else %NULL.</doc> + <type name="Descriptor" c:type="const GstMpegtsDescriptor*"/> + </return-value> + <parameters> + <parameter name="descriptors" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">an array +of #GstMpegtsDescriptor</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">the tag to look for</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="tag_extension" transfer-ownership="none"> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="initialize" c:identifier="gst_mpegts_initialize"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/mpegts.c">Initializes the MPEG-TS helper library. Must be called before any +usage.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/mpegts.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="message_new_mpegts_section" c:identifier="gst_message_new_mpegts_section"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Creates a new #GstMessage for a @GstMpegtsSection.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The new #GstMessage to be posted, or %NULL if the +section is not valid.</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="parent" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The creator of the message</doc> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="section" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The #GstMpegtsSection to put in a message</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </parameter> + </parameters> + </function> + <function name="message_parse_mpegts_section" c:identifier="gst_message_parse_mpegts_section"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Returns the #GstMpegtsSection contained in a message.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">the contained #GstMpegtsSection, or %NULL.</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="parse_descriptors" c:identifier="gst_mpegts_parse_descriptors"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Parses the descriptors present in @buffer and returns them as an +array. + +Note: The data provided in @buffer will not be copied.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">an +array of the parsed descriptors or %NULL if there was an error. +Release with #g_array_unref when done with it.</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="Descriptor"/> + </array> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">descriptors to parse</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="buf_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtsdescriptor.c">Size of @buffer</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="pat_new" c:identifier="gst_mpegts_pat_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Allocates a new #GPtrArray for #GstMpegtsPatProgram. The array can be filled +and then converted to a PAT section with gst_mpegts_section_from_pat().</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">A newly allocated #GPtrArray</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="PatProgram"/> + </array> + </return-value> + </function> + <function name="pes_metadata_meta_api_get_type" c:identifier="gst_mpegts_pes_metadata_meta_api_get_type" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">Return the #GType associated with #GstMpegtsPESMetadataMeta</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">a #GType</doc> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="pes_metadata_meta_get_info" c:identifier="gst_mpegts_pes_metadata_meta_get_info" moved-to="PESMetadataMeta.get_info" version="1.24"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">Gets the global #GstMetaInfo describing the #GstMpegtsPESMetadataMeta meta.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-mpegtspesmetadatameta.h">The #GstMetaInfo</doc> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="scte_cancel_new" c:identifier="gst_mpegts_scte_cancel_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Allocates and initializes a new INSERT command #GstMpegtsSCTESIT +setup to cancel the specified @event_id.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">A newly allocated #GstMpegtsSCTESIT</doc> + <type name="SCTESIT" c:type="GstMpegtsSCTESIT*"/> + </return-value> + <parameters> + <parameter name="event_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">The event ID to cancel.</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="scte_null_new" c:identifier="gst_mpegts_scte_null_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Allocates and initializes a NULL command #GstMpegtsSCTESIT.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">A newly allocated #GstMpegtsSCTESIT</doc> + <type name="SCTESIT" c:type="GstMpegtsSCTESIT*"/> + </return-value> + </function> + <function name="scte_splice_in_new" c:identifier="gst_mpegts_scte_splice_in_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Allocates and initializes a new "Splice In" INSERT command +#GstMpegtsSCTESIT for the given @event_id and @splice_time. + +If the @splice_time is #G_MAXUINT64 then the event will be +immediate as opposed to for the target @splice_time.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">A newly allocated #GstMpegtsSCTESIT</doc> + <type name="SCTESIT" c:type="GstMpegtsSCTESIT*"/> + </return-value> + <parameters> + <parameter name="event_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">The event ID.</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="splice_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">The running time for the splice event</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </function> + <function name="scte_splice_out_new" c:identifier="gst_mpegts_scte_splice_out_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Allocates and initializes a new "Splice Out" INSERT command +#GstMpegtsSCTESIT for the given @event_id, @splice_time and +@duration. + +If the @splice_time is #G_MAXUINT64 then the event will be +immediate as opposed to for the target @splice_time. + +If the @duration is 0 it won't be specified in the event.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">A newly allocated #GstMpegtsSCTESIT</doc> + <type name="SCTESIT" c:type="GstMpegtsSCTESIT*"/> + </return-value> + <parameters> + <parameter name="event_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">The event ID.</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="splice_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">The running time for the splice event</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">The optional duration.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </function> + <function name="section_from_atsc_mgt" c:identifier="gst_mpegts_section_from_atsc_mgt" moved-to="Section.from_atsc_mgt" version="1.18"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">the #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="mgt" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.c">a #GstMpegtsAtscMGT to create the #GstMpegtsSection from</doc> + <type name="AtscMGT" c:type="GstMpegtsAtscMGT*"/> + </parameter> + </parameters> + </function> + <function name="section_from_atsc_rrt" c:identifier="gst_mpegts_section_from_atsc_rrt" moved-to="Section.from_atsc_rrt"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="rrt" transfer-ownership="none"> + <type name="AtscRRT" c:type="GstMpegtsAtscRRT*"/> + </parameter> + </parameters> + </function> + <function name="section_from_atsc_stt" c:identifier="gst_mpegts_section_from_atsc_stt" moved-to="Section.from_atsc_stt"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-atsc-section.h"/> + <return-value transfer-ownership="full"> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="stt" transfer-ownership="none"> + <type name="AtscSTT" c:type="GstMpegtsAtscSTT*"/> + </parameter> + </parameters> + </function> + <function name="section_from_nit" c:identifier="gst_mpegts_section_from_nit" moved-to="Section.from_nit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Ownership of @nit is taken. The data in @nit is managed by the #GstMpegtsSection</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">the #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="nit" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsNIT to create the #GstMpegtsSection from</doc> + <type name="NIT" c:type="GstMpegtsNIT*"/> + </parameter> + </parameters> + </function> + <function name="section_from_pat" c:identifier="gst_mpegts_section_from_pat" moved-to="Section.from_pat"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Creates a PAT #GstMpegtsSection from the @programs array of #GstMpegtsPatPrograms</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="programs" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">an array of #GstMpegtsPatProgram</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="PatProgram"/> + </array> + </parameter> + <parameter name="ts_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Transport stream ID of the PAT</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="section_from_pmt" c:identifier="gst_mpegts_section_from_pmt" moved-to="Section.from_pmt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">Creates a #GstMpegtsSection from @pmt that is bound to @pid</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">#GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="pmt" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">a #GstMpegtsPMT to create a #GstMpegtsSection from</doc> + <type name="PMT" c:type="GstMpegtsPMT*"/> + </parameter> + <parameter name="pid" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.c">The PID that the #GstMpegtsPMT belongs to</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="section_from_scte_sit" c:identifier="gst_mpegts_section_from_scte_sit" moved-to="Section.from_scte_sit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">Ownership of @sit is taken. The data in @sit is managed by the #GstMpegtsSection</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">the #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="sit" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-scte-section.c">a #GstMpegtsSCTESIT to create the #GstMpegtsSection from</doc> + <type name="SCTESIT" c:type="GstMpegtsSCTESIT*"/> + </parameter> + <parameter name="pid" transfer-ownership="none"> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="section_from_sdt" c:identifier="gst_mpegts_section_from_sdt" moved-to="Section.from_sdt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">Ownership of @sdt is taken. The data in @sdt is managed by the #GstMpegtsSection</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">the #GstMpegtsSection</doc> + <type name="Section" c:type="GstMpegtsSection*"/> + </return-value> + <parameters> + <parameter name="sdt" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gst-dvb-section.c">a #GstMpegtsSDT to create the #GstMpegtsSection from</doc> + <type name="SDT" c:type="GstMpegtsSDT*"/> + </parameter> + </parameters> + </function> + <function-macro name="section_ref" c:identifier="gst_mpegts_section_ref" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <parameters> + <parameter name="section"> + </parameter> + </parameters> + </function-macro> + <function-macro name="section_unref" c:identifier="gst_mpegts_section_unref" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h"/> + <parameters> + <parameter name="section"> + </parameter> + </parameters> + </function-macro> + </namespace> +</repository> diff --git a/girs/GstNet-1.0.gir b/girs/GstNet-1.0.gir new file mode 100644 index 0000000000..cc9fc3df24 --- /dev/null +++ b/girs/GstNet-1.0.gir @@ -0,0 +1,915 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gio" version="2.0"/> + <include name="Gst" version="1.0"/> + <package name="gstreamer-net-1.0"/> + <c:include name="gst/net/net.h"/> + <namespace name="GstNet" version="1.0" shared-library="libgstnet-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="IS_NET_CLIENT_CLOCK" c:identifier="GST_IS_NET_CLIENT_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_NET_CLIENT_CLOCK_CLASS" c:identifier="GST_IS_NET_CLIENT_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_NET_TIME_PROVIDER" c:identifier="GST_IS_NET_TIME_PROVIDER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_NET_TIME_PROVIDER_CLASS" c:identifier="GST_IS_NET_TIME_PROVIDER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_NTP_CLOCK" c:identifier="GST_IS_NTP_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_NTP_CLOCK_CLASS" c:identifier="GST_IS_NTP_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PTP_CLOCK" c:identifier="GST_IS_PTP_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PTP_CLOCK_CLASS" c:identifier="GST_IS_PTP_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NET_CLIENT_CLOCK" c:identifier="GST_NET_CLIENT_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NET_CLIENT_CLOCK_CLASS" c:identifier="GST_NET_CLIENT_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <constant name="NET_TIME_PACKET_SIZE" value="16" c:type="GST_NET_TIME_PACKET_SIZE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h">The size of the packets sent between network clocks.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="NET_TIME_PROVIDER" c:identifier="GST_NET_TIME_PROVIDER" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NET_TIME_PROVIDER_CLASS" c:identifier="GST_NET_TIME_PROVIDER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NTP_CLOCK" c:identifier="GST_NTP_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="NTP_CLOCK_CLASS" c:identifier="GST_NTP_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <record name="NetAddressMeta" c:type="GstNetAddressMeta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.c">#GstNetAddressMeta can be used to store a network address (a #GSocketAddress) +in a #GstBuffer so that it network elements can track the to and from address +of the buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.h"/> + <field name="meta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.h">the parent type</doc> + <type name="Gst.Meta" c:type="GstMeta"/> + </field> + <field name="addr" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.h">a #GSocketAddress stored as metadata</doc> + <type name="Gio.SocketAddress" c:type="GSocketAddress*"/> + </field> + <function name="get_info" c:identifier="gst_net_address_meta_get_info"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <class name="NetClientClock" c:symbol-prefix="net_client_clock" c:type="GstNetClientClock" parent="Gst.SystemClock" glib:type-name="GstNetClientClock" glib:get-type="gst_net_client_clock_get_type" glib:type-struct="NetClientClockClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">#GstNetClientClock implements a custom #GstClock that synchronizes its time +to a remote time provider such as #GstNetTimeProvider. #GstNtpClock +implements a #GstClock that synchronizes its time to a remote NTPv4 server. + +A new clock is created with gst_net_client_clock_new() or +gst_ntp_clock_new(), which takes the address and port of the remote time +provider along with a name and an initial time. + +This clock will poll the time provider and will update its calibration +parameters based on the local and remote observations. + +The "round-trip" property limits the maximum round trip packets can take. + +Various parameters of the clock can be configured with the parent #GstClock +"timeout", "window-size" and "window-threshold" object properties. + +A #GstNetClientClock and #GstNtpClock is typically set on a #GstPipeline with +gst_pipeline_use_clock(). + +If you set a #GstBus on the clock via the "bus" object property, it will +send @GST_MESSAGE_ELEMENT messages with an attached #GstStructure containing +statistics about clock accuracy and network traffic.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <constructor name="new" c:identifier="gst_net_client_clock_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">Create a new #GstNetClientClock that will report the time +provided by the #GstNetTimeProvider on @remote_address and +@remote_port.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">a new #GstClock that receives a time from the remote +clock.</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">a name for the clock</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="remote_address" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">the address or hostname of the remote clock provider</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="remote_port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">the port of the remote clock provider</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="base_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">initial time of the clock</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <property name="address" writable="1" construct="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="base-time" writable="1" construct-only="1" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="bus" writable="1" transfer-ownership="none"> + <type name="Gst.Bus"/> + </property> + <property name="internal-clock" transfer-ownership="none"> + <type name="Gst.Clock"/> + </property> + <property name="minimum-update-interval" writable="1" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="port" writable="1" construct="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <property name="qos-dscp" writable="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <property name="round-trip-limit" writable="1" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <field name="clock"> + <type name="Gst.SystemClock" c:type="GstSystemClock"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="NetClientClockPrivate" c:type="GstNetClientClockPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="NetClientClockClass" c:type="GstNetClientClockClass" glib:is-gtype-struct-for="NetClientClock"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <field name="parent_class"> + <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="NetClientClockPrivate" c:type="GstNetClientClockPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + </record> + <record name="NetControlMessageMeta" c:type="GstNetControlMessageMeta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.c">#GstNetControlMessageMeta can be used to store control messages (ancillary +data) which was received with or is to be sent alongside the buffer data. +When used with socket sinks and sources which understand this meta it allows +sending and receiving ancillary data such as unix credentials (See +#GUnixCredentialsMessage) and Unix file descriptions (See #GUnixFDMessage).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.h"/> + <field name="meta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.h">the parent type</doc> + <type name="Gst.Meta" c:type="GstMeta"/> + </field> + <field name="message" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.h">a #GSocketControlMessage stored as metadata</doc> + <type name="Gio.SocketControlMessage" c:type="GSocketControlMessage*"/> + </field> + <function name="get_info" c:identifier="gst_net_control_message_meta_get_info"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <record name="NetTimePacket" c:type="GstNetTimePacket" glib:type-name="GstNetTimePacket" glib:get-type="gst_net_time_packet_get_type" c:symbol-prefix="net_time_packet"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">Various functions for receiving, sending an serializing #GstNetTimePacket +structures.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h"/> + <field name="local_time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h">the local time when this packet was sent</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="remote_time" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h">the remote time observation</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <constructor name="new" c:identifier="gst_net_time_packet_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">Creates a new #GstNetTimePacket from a buffer received over the network. The +caller is responsible for ensuring that @buffer is at least +#GST_NET_TIME_PACKET_SIZE bytes long. + +If @buffer is %NULL, the local and remote times will be set to +#GST_CLOCK_TIME_NONE. + +MT safe. Caller owns return value (gst_net_time_packet_free to free).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">The new #GstNetTimePacket.</doc> + <type name="NetTimePacket" c:type="GstNetTimePacket*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">a buffer from which to construct the packet, or NULL</doc> + <array zero-terminated="0" c:type="const guint8*" fixed-size="16"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + </parameters> + </constructor> + <method name="copy" c:identifier="gst_net_time_packet_copy"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">Make a copy of @packet.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">a copy of @packet, free with gst_net_time_packet_free().</doc> + <type name="NetTimePacket" c:type="GstNetTimePacket*"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">the #GstNetTimePacket</doc> + <type name="NetTimePacket" c:type="const GstNetTimePacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_net_time_packet_free"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">Free @packet.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">the #GstNetTimePacket</doc> + <type name="NetTimePacket" c:type="GstNetTimePacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="send" c:identifier="gst_net_time_packet_send" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">Sends a #GstNetTimePacket over a socket. + +MT safe.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">TRUE if successful, FALSE in case an error occurred.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">the #GstNetTimePacket to send</doc> + <type name="NetTimePacket" c:type="const GstNetTimePacket*"/> + </instance-parameter> + <parameter name="socket" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">socket to send the time packet on</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </parameter> + <parameter name="dest_address" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">address to send the time packet to</doc> + <type name="Gio.SocketAddress" c:type="GSocketAddress*"/> + </parameter> + </parameters> + </method> + <method name="serialize" c:identifier="gst_net_time_packet_serialize"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">Serialized a #GstNetTimePacket into a newly-allocated sequence of +#GST_NET_TIME_PACKET_SIZE bytes, in network byte order. The value returned is +suitable for passing to write(2) or sendto(2) for communication over the +network. + +MT safe. Caller owns return value (g_free to free).</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">A newly allocated sequence of #GST_NET_TIME_PACKET_SIZE bytes.</doc> + <array zero-terminated="0" c:type="guint8*" fixed-size="16"> + <type name="guint8" c:type="guint8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">the #GstNetTimePacket</doc> + <type name="NetTimePacket" c:type="const GstNetTimePacket*"/> + </instance-parameter> + </parameters> + </method> + <function name="receive" c:identifier="gst_net_time_packet_receive" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">Receives a #GstNetTimePacket over a socket. Handles interrupted system +calls, but otherwise returns NULL on error.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">a new #GstNetTimePacket, or NULL on error. Free + with gst_net_time_packet_free() when done.</doc> + <type name="NetTimePacket" c:type="GstNetTimePacket*"/> + </return-value> + <parameters> + <parameter name="socket" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">socket to receive the time packet on</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </parameter> + <parameter name="src_address" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">address of variable to return sender address</doc> + <type name="Gio.SocketAddress" c:type="GSocketAddress**"/> + </parameter> + </parameters> + </function> + </record> + <class name="NetTimeProvider" c:symbol-prefix="net_time_provider" c:type="GstNetTimeProvider" parent="Gst.Object" glib:type-name="GstNetTimeProvider" glib:get-type="gst_net_time_provider_get_type" glib:type-struct="NetTimeProviderClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.c">This object exposes the time of a #GstClock on the network. + +A #GstNetTimeProvider is created with gst_net_time_provider_new() which +takes a #GstClock, an address and a port number as arguments. + +After creating the object, a client clock such as #GstNetClientClock can +query the exposed clock over the network for its values. + +The #GstNetTimeProvider typically wraps the clock used by a #GstPipeline.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.h"/> + <implements name="Gio.Initable"/> + <constructor name="new" c:identifier="gst_net_time_provider_new"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.c">Allows network clients to get the current time of @clock.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.c">the new #GstNetTimeProvider, or NULL on error</doc> + <type name="NetTimeProvider" c:type="GstNetTimeProvider*"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.c">a #GstClock to export over the network</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </parameter> + <parameter name="address" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.c">an address to bind on as a dotted quad + (xxx.xxx.xxx.xxx), IPv6 address, or NULL to bind to all addresses</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.c">a port to bind on, or 0 to let the kernel choose</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </constructor> + <property name="active" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="address" writable="1" construct-only="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="clock" writable="1" construct-only="1" transfer-ownership="none"> + <type name="Gst.Clock"/> + </property> + <property name="port" writable="1" construct-only="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <property name="qos-dscp" writable="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <field name="parent"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="NetTimeProviderPrivate" c:type="GstNetTimeProviderPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="NetTimeProviderClass" c:type="GstNetTimeProviderClass" glib:is-gtype-struct-for="NetTimeProvider"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.h"/> + <field name="parent_class"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="NetTimeProviderPrivate" c:type="GstNetTimeProviderPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimeprovider.h"/> + </record> + <class name="NtpClock" c:symbol-prefix="ntp_clock" c:type="GstNtpClock" parent="NetClientClock" glib:type-name="GstNtpClock" glib:get-type="gst_ntp_clock_get_type" glib:type-struct="NtpClockClass"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <constructor name="new" c:identifier="gst_ntp_clock_new" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">Create a new #GstNtpClock that will report the time provided by +the NTPv4 server on @remote_address and @remote_port.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">a new #GstClock that receives a time from the remote +clock.</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">a name for the clock</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="remote_address" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">the address or hostname of the remote clock provider</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="remote_port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">the port of the remote clock provider</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="base_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">initial time of the clock</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <field name="clock"> + <type name="Gst.SystemClock" c:type="GstSystemClock"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="NetClientClockPrivate" c:type="GstNetClientClockPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="NtpClockClass" c:type="GstNtpClockClass" glib:is-gtype-struct-for="NtpClock"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/> + <field name="parent_class"> + <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <function-macro name="PTP_CLOCK" c:identifier="GST_PTP_CLOCK" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PTP_CLOCK_CLASS" c:identifier="GST_PTP_CLOCK_CLASS" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <constant name="PTP_CLOCK_ID_NONE" value="18446744073709551615" c:type="GST_PTP_CLOCK_ID_NONE"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h">PTP clock identification that can be passed to gst_ptp_init() to +automatically select one based on the MAC address of interfaces</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <type name="guint64" c:type="guint64"/> + </constant> + <constant name="PTP_STATISTICS_BEST_MASTER_CLOCK_SELECTED" value="GstPtpStatisticsBestMasterClockSelected" c:type="GST_PTP_STATISTICS_BEST_MASTER_CLOCK_SELECTED"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="PTP_STATISTICS_NEW_DOMAIN_FOUND" value="GstPtpStatisticsNewDomainFound" c:type="GST_PTP_STATISTICS_NEW_DOMAIN_FOUND"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="PTP_STATISTICS_PATH_DELAY_MEASURED" value="GstPtpStatisticsPathDelayMeasured" c:type="GST_PTP_STATISTICS_PATH_DELAY_MEASURED"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="PTP_STATISTICS_TIME_UPDATED" value="GstPtpStatisticsTimeUpdated" c:type="GST_PTP_STATISTICS_TIME_UPDATED"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <class name="PtpClock" c:symbol-prefix="ptp_clock" c:type="GstPtpClock" version="1.6" parent="Gst.SystemClock" glib:type-name="GstPtpClock" glib:get-type="gst_ptp_clock_get_type" glib:type-struct="PtpClockClass"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">GstPtpClock implements a PTP (IEEE1588:2008) ordinary clock in slave-only +mode, that allows a GStreamer pipeline to synchronize to a PTP network +clock in some specific domain. + +The PTP subsystem can be initialized with gst_ptp_init(), which then starts +a helper process to do the actual communication via the PTP ports. This is +required as PTP listens on ports < 1024 and thus requires special +privileges. Once this helper process is started, the main process will +synchronize to all PTP domains that are detected on the selected +interfaces. + +gst_ptp_clock_new() then allows to create a GstClock that provides the PTP +time from a master clock inside a specific PTP domain. This clock will only +return valid timestamps once the timestamps in the PTP domain are known. To +check this, you can use gst_clock_wait_for_sync(), the GstClock::synced +signal and gst_clock_is_synced(). + +To gather statistics about the PTP clock synchronization, +gst_ptp_statistics_callback_add() can be used. This gives the application +the possibility to collect all kinds of statistics from the clock +synchronization.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <constructor name="new" c:identifier="gst_ptp_clock_new" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Creates a new PTP clock instance that exports the PTP time of the master +clock in @domain. This clock can be slaved to other clocks as needed. + +If gst_ptp_init() was not called before, this will call gst_ptp_init() with +default parameters. + +This clock only returns valid timestamps after it received the first +times from the PTP master clock on the network. Once this happens the +GstPtpClock::internal-clock property will become non-NULL. You can +check this with gst_clock_wait_for_sync(), the GstClock::synced signal and +gst_clock_is_synced().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">A new #GstClock</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Name of the clock</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="domain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">PTP domain</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <property name="domain" writable="1" construct-only="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="grandmaster-clock-id" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="internal-clock" transfer-ownership="none"> + <type name="Gst.Clock"/> + </property> + <property name="master-clock-id" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <field name="clock"> + <type name="Gst.SystemClock" c:type="GstSystemClock"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="PtpClockPrivate" c:type="GstPtpClockPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="PtpClockClass" c:type="GstPtpClockClass" glib:is-gtype-struct-for="PtpClock"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h">Opaque #GstPtpClockClass structure.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h">parented to #GstSystemClockClass</doc> + <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="PtpClockPrivate" c:type="GstPtpClockPrivate" disguised="1"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + </record> + <callback name="PtpStatisticsCallback" c:type="GstPtpStatisticsCallback"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h">The statistics can be the following structures: + +GST_PTP_STATISTICS_NEW_DOMAIN_FOUND: +"domain" G_TYPE_UINT The domain identifier of the domain +"clock" GST_TYPE_CLOCK The internal clock that is slaved to the + PTP domain + +GST_PTP_STATISTICS_BEST_MASTER_CLOCK_SELECTED: +"domain" G_TYPE_UINT The domain identifier of the domain +"master-clock-id" G_TYPE_UINT64 PTP clock identifier of the selected master + clock +"master-clock-port" G_TYPE_UINT PTP port number of the selected master clock +"grandmaster-clock-id" G_TYPE_UINT64 PTP clock identifier of the grandmaster clock + +GST_PTP_STATISTICS_PATH_DELAY_MEASURED: +"domain" G_TYPE_UINT The domain identifier of the domain +"mean-path-delay-avg" GST_TYPE_CLOCK_TIME Average mean path delay +"mean-path-delay" GST_TYPE_CLOCK_TIME Latest mean path delay +"delay-request-delay" GST_TYPE_CLOCK_TIME Delay of DELAY_REQ / DELAY_RESP messages + +GST_PTP_STATISTICS_TIME_UPDATED: +"domain" G_TYPE_UINT The domain identifier of the domain +"mean-path-delay-avg" GST_TYPE_CLOCK_TIME Average mean path delay +"local-time" GST_TYPE_CLOCK_TIME Local time that corresponds to ptp-time +"ptp-time" GST_TYPE_CLOCK_TIME Newly measured PTP time at local-time +"estimated-ptp-time" GST_TYPE_CLOCK_TIME Estimated PTP time based on previous measurements +"discontinuity" G_TYPE_INT64 Difference between estimated and measured PTP time +"synced" G_TYPE_BOOLEAN Currently synced to the remote clock +"r-squared" G_TYPE_DOUBLE R² of clock estimation regression +"internal-time" GST_TYPE_CLOCK_TIME Internal time clock parameter +"external-time" GST_TYPE_CLOCK_TIME External time clock parameter +"rate-num" G_TYPE_UINT64 Internal/external rate numerator +"rate-den" G_TYPE_UINT64 Internal/external rate denominator +"rate" G_TYPE_DOUBLE Internal/external rate + +If %FALSE is returned, the callback is removed and never called again.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="domain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h">PTP domain identifier</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="stats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h">New statistics</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h">Data passed to gst_ptp_statistics_callback_add()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <function name="buffer_add_net_address_meta" c:identifier="gst_buffer_add_net_address_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.c">Attaches @addr as metadata in a #GstNetAddressMeta to @buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.c">a #GstNetAddressMeta connected to @buffer</doc> + <type name="NetAddressMeta" c:type="GstNetAddressMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="addr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.c">a @GSocketAddress to connect to @buffer</doc> + <type name="Gio.SocketAddress" c:type="GSocketAddress*"/> + </parameter> + </parameters> + </function> + <function name="buffer_add_net_control_message_meta" c:identifier="gst_buffer_add_net_control_message_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.c">Attaches @message as metadata in a #GstNetControlMessageMeta to @buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.c">a #GstNetControlMessageMeta connected to @buffer</doc> + <type name="NetControlMessageMeta" c:type="GstNetControlMessageMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.c">a @GSocketControlMessage to attach to @buffer</doc> + <type name="Gio.SocketControlMessage" c:type="GSocketControlMessage*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_net_address_meta" c:identifier="gst_buffer_get_net_address_meta"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.c">Find the #GstNetAddressMeta on @buffer.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.c">the #GstNetAddressMeta or %NULL when there +is no such metadata on @buffer.</doc> + <type name="NetAddressMeta" c:type="GstNetAddressMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function-macro name="buffer_get_net_control_message_meta" c:identifier="gst_buffer_get_net_control_message_meta" introspectable="0"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.h"/> + <parameters> + <parameter name="b"> + </parameter> + </parameters> + </function-macro> + <function name="net_address_meta_api_get_type" c:identifier="gst_net_address_meta_api_get_type"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="net_address_meta_get_info" c:identifier="gst_net_address_meta_get_info" moved-to="NetAddressMeta.get_info"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetaddressmeta.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="net_control_message_meta_api_get_type" c:identifier="gst_net_control_message_meta_api_get_type"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + </function> + <function name="net_control_message_meta_get_info" c:identifier="gst_net_control_message_meta_get_info" moved-to="NetControlMessageMeta.get_info"> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetcontrolmessagemeta.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + <function name="net_time_packet_receive" c:identifier="gst_net_time_packet_receive" moved-to="NetTimePacket.receive" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">Receives a #GstNetTimePacket over a socket. Handles interrupted system +calls, but otherwise returns NULL on error.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">a new #GstNetTimePacket, or NULL on error. Free + with gst_net_time_packet_free() when done.</doc> + <type name="NetTimePacket" c:type="GstNetTimePacket*"/> + </return-value> + <parameters> + <parameter name="socket" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">socket to receive the time packet on</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </parameter> + <parameter name="src_address" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnettimepacket.c">address of variable to return sender address</doc> + <type name="Gio.SocketAddress" c:type="GSocketAddress**"/> + </parameter> + </parameters> + </function> + <function name="net_utils_set_socket_tos" c:identifier="gst_net_utils_set_socket_tos" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetutils.c">Configures IP_TOS value of socket, i.e. sets QoS DSCP.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetutils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetutils.c">TRUE if successful, FALSE in case an error occurred.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="socket" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetutils.c">Socket to configure</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </parameter> + <parameter name="qos_dscp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetutils.c">QoS DSCP value</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="ptp_deinit" c:identifier="gst_ptp_deinit" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Deinitialize the GStreamer PTP subsystem and stop the PTP clock. If there +are any remaining GstPtpClock instances, they won't be further synchronized +to the PTP network clock.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="ptp_init" c:identifier="gst_ptp_init" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Initialize the GStreamer PTP subsystem and create a PTP ordinary clock in +slave-only mode for all domains on the given @interfaces with the +given @clock_id. + +If @clock_id is %GST_PTP_CLOCK_ID_NONE, a clock id is automatically +generated from the MAC address of the first network interface. + +This function is automatically called by gst_ptp_clock_new() with default +parameters if it wasn't called before.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">%TRUE if the GStreamer PTP clock subsystem could be initialized.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="clock_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">PTP clock id of this process' clock or %GST_PTP_CLOCK_ID_NONE</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="interfaces" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">network interfaces to run the clock on</doc> + <array c:type="gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </function> + <function name="ptp_is_initialized" c:identifier="gst_ptp_is_initialized" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Check if the GStreamer PTP clock subsystem is initialized.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">%TRUE if the GStreamer PTP clock subsystem is initialized.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="ptp_is_supported" c:identifier="gst_ptp_is_supported" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Check if PTP clocks are generally supported on this system, and if previous +initializations did not fail.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">%TRUE if PTP clocks are generally supported on this system, and +previous initializations did not fail.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="ptp_statistics_callback_add" c:identifier="gst_ptp_statistics_callback_add" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Installs a new statistics callback for gathering PTP statistics. See +GstPtpStatisticsCallback for a list of statistics that are provided.</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Id for the callback that can be passed to +gst_ptp_statistics_callback_remove()</doc> + <type name="gulong" c:type="gulong"/> + </return-value> + <parameters> + <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">GstPtpStatisticsCallback to call</doc> + <type name="PtpStatisticsCallback" c:type="GstPtpStatisticsCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Data to pass to the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_data" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">GDestroyNotify to destroy the data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + <function name="ptp_statistics_callback_remove" c:identifier="gst_ptp_statistics_callback_remove" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Removes a PTP statistics callback that was previously added with +gst_ptp_statistics_callback_add().</doc> + <source-position filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstptpclock.c">Callback id to remove</doc> + <type name="gulong" c:type="gulong"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstPbutils-1.0.gir b/girs/GstPbutils-1.0.gir new file mode 100644 index 0000000000..d415a50b01 --- /dev/null +++ b/girs/GstPbutils-1.0.gir @@ -0,0 +1,4328 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <include name="GstAudio" version="1.0"/> + <include name="GstBase" version="1.0"/> + <include name="GstVideo" version="1.0"/> + <package name="gstreamer-pbutils-1.0"/> + <c:include name="gst/pbutils/pbutils.h"/> + <namespace name="GstPbutils" version="1.0" shared-library="libgstpbutils-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <alias name="DiscovererAudioInfoClass" c:type="GstDiscovererAudioInfoClass"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </alias> + <alias name="DiscovererContainerInfoClass" c:type="GstDiscovererContainerInfoClass"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </alias> + <alias name="DiscovererInfoClass" c:type="GstDiscovererInfoClass"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </alias> + <alias name="DiscovererStreamInfoClass" c:type="GstDiscovererStreamInfoClass"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </alias> + <alias name="DiscovererSubtitleInfoClass" c:type="GstDiscovererSubtitleInfoClass"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </alias> + <alias name="DiscovererVideoInfoClass" c:type="GstDiscovererVideoInfoClass"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </alias> + <alias name="EncodingTargetClass" c:type="GstEncodingTargetClass"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </alias> + <function-macro name="AUDIO_VISUALIZER" c:identifier="GST_AUDIO_VISUALIZER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_VISUALIZER_CLASS" c:identifier="GST_AUDIO_VISUALIZER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="AUDIO_VISUALIZER_GET_CLASS" c:identifier="GST_AUDIO_VISUALIZER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="AudioVisualizer" c:symbol-prefix="audio_visualizer" c:type="GstAudioVisualizer" parent="Gst.Element" abstract="1" glib:type-name="GstAudioVisualizer" glib:get-type="gst_audio_visualizer_get_type" glib:type-struct="AudioVisualizerClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.c">A baseclass for scopes (visualizers). It takes care of re-fitting the +audio-rate to video-rate and handles renegotiation (downstream video size +changes). + +It also provides several background shading effects. These effects are +applied to a previous picture before the `render()` implementation can draw a +new frame.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <virtual-method name="decide_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="scope" transfer-ownership="none"> + <type name="AudioVisualizer" c:type="GstAudioVisualizer*"/> + </instance-parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="render"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="scope" transfer-ownership="none"> + <type name="AudioVisualizer" c:type="GstAudioVisualizer*"/> + </instance-parameter> + <parameter name="audio" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="video" transfer-ownership="none"> + <type name="GstVideo.VideoFrame" c:type="GstVideoFrame*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="setup"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="scope" transfer-ownership="none"> + <type name="AudioVisualizer" c:type="GstAudioVisualizer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <property name="shade-amount" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="shader" writable="1" transfer-ownership="none"> + <type name="AudioVisualizerShader"/> + </property> + <field name="parent"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="req_spf"> + <type name="guint" c:type="guint"/> + </field> + <field name="vinfo"> + <type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/> + </field> + <field name="ainfo"> + <type name="GstAudio.AudioInfo" c:type="GstAudioInfo"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioVisualizerPrivate" c:type="GstAudioVisualizerPrivate*"/> + </field> + </class> + <record name="AudioVisualizerClass" c:type="GstAudioVisualizerClass" glib:is-gtype-struct-for="AudioVisualizer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="setup"> + <callback name="setup"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="scope" transfer-ownership="none"> + <type name="AudioVisualizer" c:type="GstAudioVisualizer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="render"> + <callback name="render"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="scope" transfer-ownership="none"> + <type name="AudioVisualizer" c:type="GstAudioVisualizer*"/> + </parameter> + <parameter name="audio" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="video" transfer-ownership="none"> + <type name="GstVideo.VideoFrame" c:type="GstVideoFrame*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="decide_allocation"> + <callback name="decide_allocation"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="scope" transfer-ownership="none"> + <type name="AudioVisualizer" c:type="GstAudioVisualizer*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + </record> + <record name="AudioVisualizerPrivate" c:type="GstAudioVisualizerPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + </record> + <enumeration name="AudioVisualizerShader" glib:type-name="GstAudioVisualizerShader" glib:get-type="gst_audio_visualizer_shader_get_type" c:type="GstAudioVisualizerShader"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">Different types of supported background shading functions.</doc> + <member name="none" value="0" c:identifier="GST_AUDIO_VISUALIZER_SHADER_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">no shading</doc> + </member> + <member name="fade" value="1" c:identifier="GST_AUDIO_VISUALIZER_SHADER_FADE" glib:nick="fade"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">plain fading</doc> + </member> + <member name="fade_and_move_up" value="2" c:identifier="GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP" glib:nick="fade-and-move-up"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">fade and move up</doc> + </member> + <member name="fade_and_move_down" value="3" c:identifier="GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN" glib:nick="fade-and-move-down"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">fade and move down</doc> + </member> + <member name="fade_and_move_left" value="4" c:identifier="GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT" glib:nick="fade-and-move-left"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">fade and move left</doc> + </member> + <member name="fade_and_move_right" value="5" c:identifier="GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT" glib:nick="fade-and-move-right"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">fade and move right</doc> + </member> + <member name="fade_and_move_horiz_out" value="6" c:identifier="GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT" glib:nick="fade-and-move-horiz-out"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">fade and move horizontally out</doc> + </member> + <member name="fade_and_move_horiz_in" value="7" c:identifier="GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN" glib:nick="fade-and-move-horiz-in"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">fade and move horizontally in</doc> + </member> + <member name="fade_and_move_vert_out" value="8" c:identifier="GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT" glib:nick="fade-and-move-vert-out"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">fade and move vertically out</doc> + </member> + <member name="fade_and_move_vert_in" value="9" c:identifier="GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN" glib:nick="fade-and-move-vert-in"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h">fade and move vertically in</doc> + </member> + </enumeration> + <callback name="AudioVisualizerShaderFunc" c:type="GstAudioVisualizerShaderFunc"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="scope" transfer-ownership="none"> + <type name="AudioVisualizer" c:type="GstAudioVisualizer*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <type name="GstVideo.VideoFrame" c:type="const GstVideoFrame*"/> + </parameter> + <parameter name="d" transfer-ownership="none"> + <type name="GstVideo.VideoFrame" c:type="GstVideoFrame*"/> + </parameter> + </parameters> + </callback> + <function-macro name="CHECK_PLUGINS_BASE_VERSION" c:identifier="GST_CHECK_PLUGINS_BASE_VERSION" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/> + <parameters> + <parameter name="major"> + </parameter> + <parameter name="minor"> + </parameter> + <parameter name="micro"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DISCOVERER" c:identifier="GST_DISCOVERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DISCOVERER_AUDIO_INFO" c:identifier="GST_DISCOVERER_AUDIO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DISCOVERER_CLASS" c:identifier="GST_DISCOVERER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DISCOVERER_CONTAINER_INFO" c:identifier="GST_DISCOVERER_CONTAINER_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DISCOVERER_INFO" c:identifier="GST_DISCOVERER_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DISCOVERER_STREAM_INFO" c:identifier="GST_DISCOVERER_STREAM_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DISCOVERER_SUBTITLE_INFO" c:identifier="GST_DISCOVERER_SUBTITLE_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DISCOVERER_VIDEO_INFO" c:identifier="GST_DISCOVERER_VIDEO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="Discoverer" c:symbol-prefix="discoverer" c:type="GstDiscoverer" parent="GObject.Object" glib:type-name="GstDiscoverer" glib:get-type="gst_discoverer_get_type" glib:type-struct="DiscovererClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">The #GstDiscoverer is a utility object which allows to get as much +information as possible from one or many URIs. + +It provides two APIs, allowing usage in blocking or non-blocking mode. + +The blocking mode just requires calling gst_discoverer_discover_uri() +with the URI one wishes to discover. + +The non-blocking mode requires a running #GMainLoop iterating a +#GMainContext, where one connects to the various signals, appends the +URIs to be processed (through gst_discoverer_discover_uri_async()) and then +asks for the discovery to begin (through gst_discoverer_start()). +By default this will use the GLib default main context unless you have +set a custom context using g_main_context_push_thread_default(). + +All the information is returned in a #GstDiscovererInfo structure.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <constructor name="new" c:identifier="gst_discoverer_new" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Creates a new #GstDiscoverer with the provided timeout.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">The new #GstDiscoverer. +If an error occurred when creating the discoverer, @err will be set +accordingly and %NULL will be returned. If @err is set, the caller must +free it when no longer needed using g_error_free().</doc> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </return-value> + <parameters> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">timeout per file, in nanoseconds. Allowed are values between + one second (#GST_SECOND) and one hour (3600 * #GST_SECOND)</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="discovered"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="discoverer" transfer-ownership="none"> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </instance-parameter> + <parameter name="info" transfer-ownership="none"> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </parameter> + <parameter name="err" transfer-ownership="none"> + <type name="GLib.Error" c:type="const GError*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="finished"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="discoverer" transfer-ownership="none"> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="source_setup"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="discoverer" transfer-ownership="none"> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </instance-parameter> + <parameter name="source" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="starting"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="discoverer" transfer-ownership="none"> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="discover_uri" c:identifier="gst_discoverer_discover_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Synchronously discovers the given @uri. + +A copy of @uri will be made internally, so the caller can safely g_free() +afterwards.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">the result of the scanning. Can be %NULL if an +error occurred.</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </return-value> + <parameters> + <instance-parameter name="discoverer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A #GstDiscoverer</doc> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">The URI to run on.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="discover_uri_async" c:identifier="gst_discoverer_discover_uri_async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Appends the given @uri to the list of URIs to discoverer. The actual +discovery of the @uri will only take place if gst_discoverer_start() has +been called. + +A copy of @uri will be made internally, so the caller can safely g_free() +afterwards.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">%TRUE if the @uri was successfully appended to the list of pending +uris, else %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="discoverer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A #GstDiscoverer</doc> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">the URI to add.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="start" c:identifier="gst_discoverer_start"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Allow asynchronous discovering of URIs to take place. +A #GMainLoop must be available for #GstDiscoverer to properly work in +asynchronous mode.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="discoverer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A #GstDiscoverer</doc> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </instance-parameter> + </parameters> + </method> + <method name="stop" c:identifier="gst_discoverer_stop"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Stop the discovery of any pending URIs and clears the list of +pending URIS (if any).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="discoverer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A #GstDiscoverer</doc> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </instance-parameter> + </parameters> + </method> + <property name="timeout" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">The duration (in nanoseconds) after which the discovery of an individual +URI will timeout. + +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> + <field name="priv" readable="0" private="1"> + <type name="DiscovererPrivate" c:type="GstDiscovererPrivate*"/> + </field> + <field name="_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="discovered" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Will be emitted in async mode when all information on a URI could be +discovered, or an error occurred. + +When an error occurs, @info might still contain some partial information, +depending on the circumstances of the error.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">the results #GstDiscovererInfo</doc> + <type name="DiscovererInfo"/> + </parameter> + <parameter name="error" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">#GError, which will be non-NULL + if an error occurred during + discovery. You must not free + this #GError, it will be freed by + the discoverer.</doc> + <type name="GLib.Error"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="finished" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Will be emitted in async mode when all pending URIs have been processed.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="source-setup" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">This signal is emitted after the source element has been created for, so +the URI being discovered, so it can be configured by setting additional +properties (e.g. set a proxy server for an http source, or set the device +and read speed for an audio cd source). + +This signal is usually emitted from the context of a GStreamer streaming +thread.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">source element</doc> + <type name="Gst.Element"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="starting" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Will be emitted when the discover starts analyzing the pending URIs</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + </class> + <class name="DiscovererAudioInfo" c:symbol-prefix="discoverer_audio_info" c:type="GstDiscovererAudioInfo" parent="DiscovererStreamInfo" glib:type-name="GstDiscovererAudioInfo" glib:get-type="gst_discoverer_audio_info_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">#GstDiscovererStreamInfo specific to audio streams.</doc> + <method name="get_bitrate" c:identifier="gst_discoverer_audio_info_get_bitrate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the average or nominal bitrate of the stream in bits/second.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererAudioInfo</doc> + <type name="DiscovererAudioInfo" c:type="const GstDiscovererAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_channel_mask" c:identifier="gst_discoverer_audio_info_get_channel_mask" version="1.14"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the channel-mask of the stream, refer to +gst_audio_channel_positions_from_mask() for more +information.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererAudioInfo</doc> + <type name="DiscovererAudioInfo" c:type="const GstDiscovererAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_channels" c:identifier="gst_discoverer_audio_info_get_channels"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the number of channels in the stream.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererAudioInfo</doc> + <type name="DiscovererAudioInfo" c:type="const GstDiscovererAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_depth" c:identifier="gst_discoverer_audio_info_get_depth"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the number of bits used per sample in each channel.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererAudioInfo</doc> + <type name="DiscovererAudioInfo" c:type="const GstDiscovererAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_language" c:identifier="gst_discoverer_audio_info_get_language"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the language of the stream, or NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererAudioInfo</doc> + <type name="DiscovererAudioInfo" c:type="const GstDiscovererAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_bitrate" c:identifier="gst_discoverer_audio_info_get_max_bitrate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the maximum bitrate of the stream in bits/second.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererAudioInfo</doc> + <type name="DiscovererAudioInfo" c:type="const GstDiscovererAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_sample_rate" c:identifier="gst_discoverer_audio_info_get_sample_rate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the sample rate of the stream in Hertz.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererAudioInfo</doc> + <type name="DiscovererAudioInfo" c:type="const GstDiscovererAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="DiscovererClass" c:type="GstDiscovererClass" glib:is-gtype-struct-for="Discoverer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <field name="parentclass"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="finished"> + <callback name="finished"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="discoverer" transfer-ownership="none"> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="starting"> + <callback name="starting"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="discoverer" transfer-ownership="none"> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="discovered"> + <callback name="discovered"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="discoverer" transfer-ownership="none"> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </parameter> + <parameter name="err" transfer-ownership="none"> + <type name="GLib.Error" c:type="const GError*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="source_setup"> + <callback name="source_setup"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="discoverer" transfer-ownership="none"> + <type name="Discoverer" c:type="GstDiscoverer*"/> + </parameter> + <parameter name="source" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="DiscovererContainerInfo" c:symbol-prefix="discoverer_container_info" c:type="GstDiscovererContainerInfo" parent="DiscovererStreamInfo" glib:type-name="GstDiscovererContainerInfo" glib:get-type="gst_discoverer_container_info_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">#GstDiscovererStreamInfo specific to container streams.</doc> + <method name="get_streams" c:identifier="gst_discoverer_container_info_get_streams"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the list of +#GstDiscovererStreamInfo this container stream offers. +Free with gst_discoverer_stream_info_list_free() after usage.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="DiscovererStreamInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererContainerInfo" c:type="GstDiscovererContainerInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_discoverer_container_info_get_tags" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">tags specific to the given container. If you wish to use +the tags after the life-time of @info, you will need to copy them.</doc> + <type name="Gst.TagList" c:type="const GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererContainerInfo" c:type="const GstDiscovererContainerInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <class name="DiscovererInfo" c:symbol-prefix="discoverer_info" c:type="GstDiscovererInfo" parent="GObject.Object" glib:type-name="GstDiscovererInfo" glib:get-type="gst_discoverer_info_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">Structure containing the information of a URI analyzed by #GstDiscoverer.</doc> + <function name="from_variant" c:identifier="gst_discoverer_info_from_variant" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Parses a #GVariant as produced by gst_discoverer_info_to_variant() +back to a #GstDiscovererInfo.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A newly-allocated #GstDiscovererInfo.</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </return-value> + <parameters> + <parameter name="variant" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A #GVariant to deserialize into a #GstDiscovererInfo.</doc> + <type name="GLib.Variant" c:type="GVariant*"/> + </parameter> + </parameters> + </function> + <method name="copy" c:identifier="gst_discoverer_info_copy"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">A copy of the #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </return-value> + <parameters> + <instance-parameter name="ptr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_audio_streams" c:identifier="gst_discoverer_info_get_audio_streams"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Finds all the #GstDiscovererAudioInfo contained in @info</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">A #GList of +matching #GstDiscovererStreamInfo. The caller should free it with +gst_discoverer_stream_info_list_free().</doc> + <type name="GLib.List" c:type="GList*"> + <type name="DiscovererAudioInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_container_streams" c:identifier="gst_discoverer_info_get_container_streams"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Finds all the #GstDiscovererContainerInfo contained in @info</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">A #GList of +matching #GstDiscovererStreamInfo. The caller should free it with +gst_discoverer_stream_info_list_free().</doc> + <type name="GLib.List" c:type="GList*"> + <type name="DiscovererContainerInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="gst_discoverer_info_get_duration"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the duration of the URI in #GstClockTime (nanoseconds).</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="const GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_live" c:identifier="gst_discoverer_info_get_live" version="1.14"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">whether the URI is live.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="const GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_misc" c:identifier="gst_discoverer_info_get_misc" deprecated="1"> + <doc-deprecated xml:space="preserve">This functions is deprecated since version 1.4, use +#gst_discoverer_info_get_missing_elements_installer_details</doc-deprecated> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Miscellaneous information stored as a #GstStructure +(for example: information about missing plugins). If you wish to use the +#GstStructure after the life-time of @info, you will need to copy it.</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="const GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_missing_elements_installer_details" c:identifier="gst_discoverer_info_get_missing_elements_installer_details" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Get the installer details for missing elements</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">An array of strings +containing information about how to install the various missing elements +for @info to be usable. If you wish to use the strings after the life-time +of @info, you will need to copy them.</doc> + <array c:type="const gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo to retrieve installer detail +for the missing element</doc> + <type name="DiscovererInfo" c:type="const GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_result" c:identifier="gst_discoverer_info_get_result"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the result of the discovery as a #GstDiscovererResult.</doc> + <type name="DiscovererResult" c:type="GstDiscovererResult"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="const GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_seekable" c:identifier="gst_discoverer_info_get_seekable"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the whether the URI is seekable.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="const GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_info" c:identifier="gst_discoverer_info_get_stream_info"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the structure (or topology) of the URI as a +#GstDiscovererStreamInfo. +This structure can be traversed to see the original hierarchy. Unref with +gst_discoverer_stream_info_unref() after usage.</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_list" c:identifier="gst_discoverer_info_get_stream_list"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the list of +all streams contained in the #info. Free after usage +with gst_discoverer_stream_info_list_free().</doc> + <type name="GLib.List" c:type="GList*"> + <type name="DiscovererStreamInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_streams" c:identifier="gst_discoverer_info_get_streams"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Finds the #GstDiscovererStreamInfo contained in @info that match the +given @streamtype.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">A #GList of +matching #GstDiscovererStreamInfo. The caller should free it with +gst_discoverer_stream_info_list_free().</doc> + <type name="GLib.List" c:type="GList*"> + <type name="DiscovererStreamInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </instance-parameter> + <parameter name="streamtype" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GType derived from #GstDiscovererStreamInfo</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_subtitle_streams" c:identifier="gst_discoverer_info_get_subtitle_streams"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Finds all the #GstDiscovererSubtitleInfo contained in @info</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">A #GList of +matching #GstDiscovererStreamInfo. The caller should free it with +gst_discoverer_stream_info_list_free().</doc> + <type name="GLib.List" c:type="GList*"> + <type name="DiscovererSubtitleInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_discoverer_info_get_tags" deprecated="1" deprecated-version="1.20"> + <doc-deprecated xml:space="preserve">Use gst_discoverer_{container,stream}_info_get_tags() instead.</doc-deprecated> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">all tags contained in the URI. If you wish to use +the tags after the life-time of @info, you will need to copy them.</doc> + <type name="Gst.TagList" c:type="const GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="const GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_toc" c:identifier="gst_discoverer_info_get_toc"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">TOC contained in the URI. If you wish to use +the TOC after the life-time of @info, you will need to copy it.</doc> + <type name="Gst.Toc" c:type="const GstToc*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="const GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri" c:identifier="gst_discoverer_info_get_uri"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the URI to which this information corresponds to. +Copy it if you wish to use it after the life-time of @info.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="const GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_video_streams" c:identifier="gst_discoverer_info_get_video_streams"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Finds all the #GstDiscovererVideoInfo contained in @info</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">A #GList of +matching #GstDiscovererStreamInfo. The caller should free it with +gst_discoverer_stream_info_list_free().</doc> + <type name="GLib.List" c:type="GList*"> + <type name="DiscovererVideoInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="to_variant" c:identifier="gst_discoverer_info_to_variant" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Serializes @info to a #GVariant that can be parsed again +through gst_discoverer_info_from_variant(). + +Note that any #GstToc (s) that might have been discovered will not be serialized +for now.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A newly-allocated #GVariant representing @info.</doc> + <type name="GLib.Variant" c:type="GVariant*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A #GstDiscovererInfo</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A combination of #GstDiscovererSerializeFlags to specify +what needs to be serialized.</doc> + <type name="DiscovererSerializeFlags" c:type="GstDiscovererSerializeFlags"/> + </parameter> + </parameters> + </method> + </class> + <record name="DiscovererPrivate" c:type="GstDiscovererPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + </record> + <enumeration name="DiscovererResult" glib:type-name="GstDiscovererResult" glib:get-type="gst_discoverer_result_get_type" c:type="GstDiscovererResult"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">Result values for the discovery process.</doc> + <member name="ok" value="0" c:identifier="GST_DISCOVERER_OK" glib:nick="ok"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">The discovery was successful</doc> + </member> + <member name="uri_invalid" value="1" c:identifier="GST_DISCOVERER_URI_INVALID" glib:nick="uri-invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">the URI is invalid</doc> + </member> + <member name="error" value="2" c:identifier="GST_DISCOVERER_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">an error happened and the GError is set</doc> + </member> + <member name="timeout" value="3" c:identifier="GST_DISCOVERER_TIMEOUT" glib:nick="timeout"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">the discovery timed-out</doc> + </member> + <member name="busy" value="4" c:identifier="GST_DISCOVERER_BUSY" glib:nick="busy"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">the discoverer was already discovering a file</doc> + </member> + <member name="missing_plugins" value="5" c:identifier="GST_DISCOVERER_MISSING_PLUGINS" glib:nick="missing-plugins"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">Some plugins are missing for full discovery</doc> + </member> + </enumeration> + <bitfield name="DiscovererSerializeFlags" version="1.6" glib:type-name="GstDiscovererSerializeFlags" glib:get-type="gst_discoverer_serialize_flags_get_type" c:type="GstDiscovererSerializeFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">You can use these flags to control what is serialized by +gst_discoverer_info_to_variant()</doc> + <member name="basic" value="0" c:identifier="GST_DISCOVERER_SERIALIZE_BASIC" glib:nick="basic"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">Serialize only basic information, excluding +caps, tags and miscellaneous information</doc> + </member> + <member name="caps" value="1" c:identifier="GST_DISCOVERER_SERIALIZE_CAPS" glib:nick="caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">Serialize the caps for each stream</doc> + </member> + <member name="tags" value="2" c:identifier="GST_DISCOVERER_SERIALIZE_TAGS" glib:nick="tags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">Serialize the tags for each stream</doc> + </member> + <member name="misc" value="4" c:identifier="GST_DISCOVERER_SERIALIZE_MISC" glib:nick="misc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">Serialize miscellaneous information for each stream</doc> + </member> + <member name="all" value="7" c:identifier="GST_DISCOVERER_SERIALIZE_ALL" glib:nick="all"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">Serialize all the available info, including +caps, tags and miscellaneous information</doc> + </member> + </bitfield> + <class name="DiscovererStreamInfo" c:symbol-prefix="discoverer_stream_info" c:type="GstDiscovererStreamInfo" parent="GObject.Object" glib:type-name="GstDiscovererStreamInfo" glib:get-type="gst_discoverer_stream_info_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">Base structure for information concerning a media stream. Depending on the +stream type, one can find more media-specific information in +#GstDiscovererAudioInfo, #GstDiscovererVideoInfo, and +#GstDiscovererContainerInfo. + +The #GstDiscovererStreamInfo represents the topology of the stream. Siblings +can be iterated over with gst_discoverer_stream_info_get_next() and +gst_discoverer_stream_info_get_previous(). Children (sub-streams) of a +stream can be accessed using the #GstDiscovererContainerInfo API. + +As a simple example, if you run #GstDiscoverer on an AVI file with one audio +and one video stream, you will get a #GstDiscovererContainerInfo +corresponding to the AVI container, which in turn will have a +#GstDiscovererAudioInfo sub-stream and a #GstDiscovererVideoInfo sub-stream +for the audio and video streams respectively.</doc> + <function name="list_free" c:identifier="gst_discoverer_stream_info_list_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Decrements the reference count of all contained #GstDiscovererStreamInfo +and fress the #GList.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="infos" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GList of #GstDiscovererStreamInfo</doc> + <type name="GLib.List" c:type="GList*"> + <type name="DiscovererStreamInfo"/> + </type> + </parameter> + </parameters> + </function> + <method name="get_caps" c:identifier="gst_discoverer_stream_info_get_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the #GstCaps of the stream. Unref with +#gst_caps_unref after usage.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_misc" c:identifier="gst_discoverer_stream_info_get_misc" deprecated="1"> + <doc-deprecated xml:space="preserve">This functions is deprecated since version 1.4, use +#gst_discoverer_info_get_missing_elements_installer_details</doc-deprecated> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">additional information regarding the stream (for +example codec version, profile, etc..). If you wish to use the #GstStructure +after the life-time of @info you will need to copy it.</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_next" c:identifier="gst_discoverer_stream_info_get_next"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the next #GstDiscovererStreamInfo in a chain. %NULL +for final streams. +Unref with #gst_discoverer_stream_info_unref after usage.</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_previous" c:identifier="gst_discoverer_stream_info_get_previous"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the previous #GstDiscovererStreamInfo in a chain. +%NULL for starting points. Unref with #gst_discoverer_stream_info_unref +after usage.</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_id" c:identifier="gst_discoverer_stream_info_get_stream_id"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the stream ID of this stream. If you wish to +use the stream ID after the life-time of @info you will need to copy it.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_number" c:identifier="gst_discoverer_stream_info_get_stream_number" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the stream number, -1 if no index could be determined. This property +acts as a unique identifier as a 'int' for the stream.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_type_nick" c:identifier="gst_discoverer_stream_info_get_stream_type_nick"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a human readable name for the stream type of the given @info (ex : "audio", +"container",...).</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_discoverer_stream_info_get_tags"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the tags contained in this stream. If you wish to +use the tags after the life-time of @info you will need to copy them.</doc> + <type name="Gst.TagList" c:type="const GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_toc" c:identifier="gst_discoverer_stream_info_get_toc"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the TOC contained in this stream. If you wish to +use the TOC after the life-time of @info you will need to copy it.</doc> + <type name="Gst.Toc" c:type="const GstToc*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + <type name="DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <class name="DiscovererSubtitleInfo" c:symbol-prefix="discoverer_subtitle_info" c:type="GstDiscovererSubtitleInfo" parent="DiscovererStreamInfo" glib:type-name="GstDiscovererSubtitleInfo" glib:get-type="gst_discoverer_subtitle_info_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">#GstDiscovererStreamInfo specific to subtitle streams (this includes text and +image based ones).</doc> + <method name="get_language" c:identifier="gst_discoverer_subtitle_info_get_language"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the language of the stream, or NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererSubtitleInfo</doc> + <type name="DiscovererSubtitleInfo" c:type="const GstDiscovererSubtitleInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <class name="DiscovererVideoInfo" c:symbol-prefix="discoverer_video_info" c:type="GstDiscovererVideoInfo" parent="DiscovererStreamInfo" glib:type-name="GstDiscovererVideoInfo" glib:get-type="gst_discoverer_video_info_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h">#GstDiscovererStreamInfo specific to video streams (this includes images).</doc> + <method name="get_bitrate" c:identifier="gst_discoverer_video_info_get_bitrate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the average or nominal bitrate of the video stream in bits/second.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_depth" c:identifier="gst_discoverer_video_info_get_depth"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the depth in bits of the video stream.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_framerate_denom" c:identifier="gst_discoverer_video_info_get_framerate_denom"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the framerate of the video stream (denominator).</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_framerate_num" c:identifier="gst_discoverer_video_info_get_framerate_num"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the framerate of the video stream (numerator).</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_height" c:identifier="gst_discoverer_video_info_get_height"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the height of the video stream in pixels.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_bitrate" c:identifier="gst_discoverer_video_info_get_max_bitrate"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the maximum bitrate of the video stream in bits/second.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_par_denom" c:identifier="gst_discoverer_video_info_get_par_denom"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the Pixel Aspect Ratio (PAR) of the video stream (denominator).</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_par_num" c:identifier="gst_discoverer_video_info_get_par_num"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the Pixel Aspect Ratio (PAR) of the video stream (numerator).</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_width" c:identifier="gst_discoverer_video_info_get_width"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">the width of the video stream in pixels.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_image" c:identifier="gst_discoverer_video_info_is_image"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">%TRUE if the video stream corresponds to an image (i.e. only contains +one frame).</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_interlaced" c:identifier="gst_discoverer_video_info_is_interlaced"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">%TRUE if the stream is interlaced, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererVideoInfo</doc> + <type name="DiscovererVideoInfo" c:type="const GstDiscovererVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <function-macro name="ENCODING_AUDIO_PROFILE" c:identifier="GST_ENCODING_AUDIO_PROFILE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="ENCODING_CATEGORY_CAPTURE" value="capture" c:type="GST_ENCODING_CATEGORY_CAPTURE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">#GstEncodingTarget category for recording and capture. +Targets within this category are optimized for low latency encoding.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ENCODING_CATEGORY_DEVICE" value="device" c:type="GST_ENCODING_CATEGORY_DEVICE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">#GstEncodingTarget category for device-specific targets. +The name of the target will usually be the constructor and model of the device, +and that target will contain #GstEncodingProfiles suitable for that device.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ENCODING_CATEGORY_FILE_EXTENSION" value="file-extension" c:type="GST_ENCODING_CATEGORY_FILE_EXTENSION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">#GstEncodingTarget category for file extensions. +The name of the target will be the name of the file extensions possible +for a particular target. Those targets are defining like 'default' formats +usually used for a particular file extension.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ENCODING_CATEGORY_ONLINE_SERVICE" value="online-service" c:type="GST_ENCODING_CATEGORY_ONLINE_SERVICE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">#GstEncodingTarget category for online-services. +The name of the target will usually be the name of the online service +and that target will contain #GstEncodingProfiles suitable for that online +service.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="ENCODING_CATEGORY_STORAGE_EDITING" value="storage-editing" c:type="GST_ENCODING_CATEGORY_STORAGE_EDITING"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">#GstEncodingTarget category for storage, archiving and editing targets. +Those targets can be lossless and/or provide very fast random access content. +The name of the target will usually be the container type or editing target, +and that target will contain #GstEncodingProfiles suitable for editing or +storage.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="ENCODING_CONTAINER_PROFILE" c:identifier="GST_ENCODING_CONTAINER_PROFILE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ENCODING_PROFILE" c:identifier="GST_ENCODING_PROFILE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ENCODING_TARGET" c:identifier="GST_ENCODING_TARGET" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="ENCODING_VIDEO_PROFILE" c:identifier="GST_ENCODING_VIDEO_PROFILE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <class name="EncodingAudioProfile" c:symbol-prefix="encoding_audio_profile" c:type="GstEncodingAudioProfile" parent="EncodingProfile" glib:type-name="GstEncodingAudioProfile" glib:get-type="gst_encoding_audio_profile_get_type" glib:type-struct="EncodingAudioProfileClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h">Variant of #GstEncodingProfile for audio streams.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <constructor name="new" c:identifier="gst_encoding_audio_profile_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Creates a new #GstEncodingAudioProfile + +All provided allocatable arguments will be internally copied, so can be +safely freed/unreferenced after calling this method.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the newly created #GstEncodingAudioProfile.</doc> + <type name="EncodingAudioProfile" c:type="GstEncodingAudioProfile*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="preset" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the preset(s) to use on the encoder, can be %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="restriction" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the #GstCaps used to restrict the input to the encoder, can be +NULL. See gst_encoding_profile_get_restriction() for more details.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="presence" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the number of time this stream must be used. 0 means any number of + times (including never)</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + </class> + <record name="EncodingAudioProfileClass" c:type="GstEncodingAudioProfileClass" disguised="1" glib:is-gtype-struct-for="EncodingAudioProfile"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + </record> + <class name="EncodingContainerProfile" c:symbol-prefix="encoding_container_profile" c:type="GstEncodingContainerProfile" parent="EncodingProfile" glib:type-name="GstEncodingContainerProfile" glib:get-type="gst_encoding_container_profile_get_type" glib:type-struct="EncodingContainerProfileClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h">Encoding profiles for containers. Keeps track of a list of #GstEncodingProfile</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <constructor name="new" c:identifier="gst_encoding_container_profile_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Creates a new #GstEncodingContainerProfile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The newly created #GstEncodingContainerProfile.</doc> + <type name="EncodingContainerProfile" c:type="GstEncodingContainerProfile*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The name of the container profile, can be %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The description of the container profile, + can be %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The format to use for this profile</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="preset" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The preset to use for this profile.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="add_profile" c:identifier="gst_encoding_container_profile_add_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Add a #GstEncodingProfile to the list of profiles handled by @container. + +No copy of @profile will be made, if you wish to use it elsewhere after this +method you should increment its reference count.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">%TRUE if the @stream was properly added, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the #GstEncodingContainerProfile to use</doc> + <type name="EncodingContainerProfile" c:type="GstEncodingContainerProfile*"/> + </instance-parameter> + <parameter name="profile" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the #GstEncodingProfile to add.</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </parameter> + </parameters> + </method> + <method name="contains_profile" c:identifier="gst_encoding_container_profile_contains_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Checks if @container contains a #GstEncodingProfile identical to +@profile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">%TRUE if @container contains a #GstEncodingProfile identical +to @profile, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingContainerProfile</doc> + <type name="EncodingContainerProfile" c:type="GstEncodingContainerProfile*"/> + </instance-parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </parameter> + </parameters> + </method> + <method name="get_profiles" c:identifier="gst_encoding_container_profile_get_profiles"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c"> +the list of contained #GstEncodingProfile.</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="EncodingProfile"/> + </type> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingContainerProfile</doc> + <type name="EncodingContainerProfile" c:type="GstEncodingContainerProfile*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="EncodingContainerProfileClass" c:type="GstEncodingContainerProfileClass" disguised="1" glib:is-gtype-struct-for="EncodingContainerProfile"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + </record> + <class name="EncodingProfile" c:symbol-prefix="encoding_profile" c:type="GstEncodingProfile" parent="GObject.Object" glib:type-name="GstEncodingProfile" glib:get-type="gst_encoding_profile_get_type" glib:type-struct="EncodingProfileClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h">The opaque base class object for all encoding profiles. This contains generic +information like name, description, format and preset.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <function name="find" c:identifier="gst_encoding_profile_find"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Find the #GstEncodingProfile with the specified name and category.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The matching #GstEncodingProfile or %NULL.</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </return-value> + <parameters> + <parameter name="targetname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The name of the target</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="profilename" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">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> + <parameter name="category" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The target category. Can be %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="from_discoverer" c:identifier="gst_encoding_profile_from_discoverer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Creates a #GstEncodingProfile matching the formats from the given +#GstDiscovererInfo. Streams other than audio or video (eg, +subtitles), are currently ignored.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The new #GstEncodingProfile or %NULL.</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The #GstDiscovererInfo to read from</doc> + <type name="DiscovererInfo" c:type="GstDiscovererInfo*"/> + </parameter> + </parameters> + </function> + <method name="copy" c:identifier="gst_encoding_profile_copy" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Makes a deep copy of @self</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The copy of @self</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The #GstEncodingProfile to copy</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_allow_dynamic_output" c:identifier="gst_encoding_profile_get_allow_dynamic_output"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Get whether the format that has been negotiated in at some point can be renegotiated +later during the encoding.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_description" c:identifier="gst_encoding_profile_get_description"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the description of the profile, can be %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_element_properties" c:identifier="gst_encoding_profile_get_element_properties" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The properties that are going to be set on the underlying element</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_file_extension" c:identifier="gst_encoding_profile_get_file_extension"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a suitable file extension for @profile, or NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_format" c:identifier="gst_encoding_profile_get_format"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">(nullable): the #GstCaps corresponding to the media format used +in the profile. Unref after usage.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_input_caps" c:identifier="gst_encoding_profile_get_input_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Computes the full output caps that this @profile will be able to consume.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The full caps the given @profile can consume. Call +gst_caps_unref() when you are done with the caps.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_name" c:identifier="gst_encoding_profile_get_name"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the name of the profile, can be %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_presence" c:identifier="gst_encoding_profile_get_presence"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The number of times the profile is used in its parent +container profile. If 0, it is not a mandatory stream.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_preset" c:identifier="gst_encoding_profile_get_preset"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the name of the #GstPreset to be used in the profile. +This is the name that has been set when saving the preset.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_preset_name" c:identifier="gst_encoding_profile_get_preset_name"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the name of the #GstPreset factory to be used in the profile.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_restriction" c:identifier="gst_encoding_profile_get_restriction"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The restriction #GstCaps to apply before the encoder +that will be used in the profile. The fields present in restriction caps are +properties of the raw stream (that is before encoding), such as height and +width for video and depth and sampling rate for audio. Does not apply to +#GstEncodingContainerProfile (since there is no corresponding raw stream). +Can be %NULL. Unref after usage.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_single_segment" c:identifier="gst_encoding_profile_get_single_segment" version="1.18"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">#TRUE if the stream represented by @profile should use a single +segment before the encoder, #FALSE otherwise. This means that buffers will be retimestamped +and segments will be eat so as to appear as one segment.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_type_nick" c:identifier="gst_encoding_profile_get_type_nick"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the human-readable name of the type of @profile.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_enabled" c:identifier="gst_encoding_profile_is_enabled"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_equal" c:identifier="gst_encoding_profile_is_equal"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Checks whether the two #GstEncodingProfile are equal</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">%TRUE if @a and @b are equal, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="a" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="b" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </parameter> + </parameters> + </method> + <method name="set_allow_dynamic_output" c:identifier="gst_encoding_profile_set_allow_dynamic_output"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Sets whether the format that has been negotiated in at some point can be renegotiated +later during the encoding.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="allow_dynamic_output" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Whether the format that has been negotiated first can be renegotiated +during the encoding</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_description" c:identifier="gst_encoding_profile_set_description"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Set @description as the given description for the @profile. A copy of +@description will be made internally.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="description" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the description to set on the profile</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_element_properties" c:identifier="gst_encoding_profile_set_element_properties" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">This allows setting the muxing/encoding element properties. + +**Set properties generically** + +``` properties + [element-properties, boolean-prop=true, string-prop="hi"] +``` + +**Mapping properties with well known element factories** + +``` properties +element-properties-map, map = { + [openh264enc, gop-size=32, ], + [x264enc, key-int-max=32, tune=zerolatency], + } +```</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="element_properties" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">A #GstStructure defining the properties +to be set to the element the profile represents.</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="set_enabled" c:identifier="gst_encoding_profile_set_enabled" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Set whether the profile should be used or not.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">%FALSE to disable @profile, %TRUE to enable it</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_format" c:identifier="gst_encoding_profile_set_format"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Sets the media format used in the profile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the media format to use in the profile.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_name" c:identifier="gst_encoding_profile_set_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Set @name as the given name for the @profile. A copy of @name will be made +internally.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the name to set on the profile</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_presence" c:identifier="gst_encoding_profile_set_presence"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Set the number of time the profile is used in its parent +container profile. If 0, it is not a mandatory stream</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="presence" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the number of time the profile can be used</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_preset" c:identifier="gst_encoding_profile_set_preset"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Sets the name of the #GstElement that implements the #GstPreset interface +to use for the profile. +This is the name that has been set when saving the preset.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="preset" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the element preset to use</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_preset_name" c:identifier="gst_encoding_profile_set_preset_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Sets the name of the #GstPreset's factory to be used in the profile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="preset_name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The name of the preset to use in this @profile.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_restriction" c:identifier="gst_encoding_profile_set_restriction"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Set the restriction #GstCaps to apply before the encoder +that will be used in the profile. See gst_encoding_profile_get_restriction() +for more about restrictions. Does not apply to #GstEncodingContainerProfile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="restriction" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the restriction to apply</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_single_segment" c:identifier="gst_encoding_profile_set_single_segment" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">If using a single segment, buffers will be retimestamped and segments will be +eat so as to appear as one segment. + +> *NOTE*: Single segment is not property supported when using +> #encodebin:avoid-reencoding</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingProfile</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </instance-parameter> + <parameter name="single_segment" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">#TRUE if the stream represented by @profile should use a +single segment before the encoder, #FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="element-properties" version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">A #GstStructure defining the properties to be set to the element +the profile represents. + +For example for `av1enc`: + +``` +element-properties,row-mt=true, end-usage=vbr +```</doc> + <type name="Gst.Structure"/> + </property> + <property name="restriction-caps" writable="1" transfer-ownership="none"> + <type name="Gst.Caps"/> + </property> + </class> + <record name="EncodingProfileClass" c:type="GstEncodingProfileClass" disguised="1" glib:is-gtype-struct-for="EncodingProfile"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + </record> + <class name="EncodingTarget" c:symbol-prefix="encoding_target" c:type="GstEncodingTarget" parent="GObject.Object" glib:type-name="GstEncodingTarget" glib:get-type="gst_encoding_target_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">Collection of #GstEncodingProfile for a specific target or use-case. + +When being stored/loaded, targets come from a specific category, like +#GST_ENCODING_CATEGORY_DEVICE.</doc> + <constructor name="new" c:identifier="gst_encoding_target_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">Creates a new #GstEncodingTarget. + +The name and category can only consist of lowercase ASCII letters for the +first character, followed by either lowercase ASCII letters, digits or +hyphens ('-'). + +The @category *should* be one of the existing +well-defined categories, like #GST_ENCODING_CATEGORY_DEVICE, but it +*can* be a application or user specific category if +needed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The newly created #GstEncodingTarget or %NULL if +there was an error.</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The name of the target.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="category" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The name of the category to which this @target +belongs. For example: #GST_ENCODING_CATEGORY_DEVICE.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">A description of #GstEncodingTarget in the +current locale.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="profiles" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">A #GList of +#GstEncodingProfile.</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="EncodingProfile"/> + </type> + </parameter> + </parameters> + </constructor> + <function name="load" c:identifier="gst_encoding_target_load" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">Searches for the #GstEncodingTarget with the given name, loads it +and returns it. + +If the category name is specified only targets from that category will be +searched for.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The #GstEncodingTarget if available, else %NULL.</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">the name of the #GstEncodingTarget to load (automatically +converted to lower case internally as capital letters are not +valid for target names).</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="category" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">the name of the target category, like +#GST_ENCODING_CATEGORY_DEVICE. Can be %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="load_from_file" c:identifier="gst_encoding_target_load_from_file" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">Opens the provided file and returns the contained #GstEncodingTarget.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The #GstEncodingTarget contained in the file, else +%NULL</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </return-value> + <parameters> + <parameter name="filepath" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The file location to load the #GstEncodingTarget from</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <method name="add_profile" c:identifier="gst_encoding_target_add_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">Adds the given @profile to the @target. Each added profile must have +a unique name within the profile. + +The @target will steal a reference to the @profile. If you wish to use +the profile after calling this method, you should increase its reference +count.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">%TRUE if the profile was added, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">the #GstEncodingTarget to add a profile to</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </instance-parameter> + <parameter name="profile" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">the #GstEncodingProfile to add</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </parameter> + </parameters> + </method> + <method name="get_category" c:identifier="gst_encoding_target_get_category"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The category of the @target. For example: +#GST_ENCODING_CATEGORY_DEVICE.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">a #GstEncodingTarget</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_description" c:identifier="gst_encoding_target_get_description"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The description of the @target.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">a #GstEncodingTarget</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_name" c:identifier="gst_encoding_target_get_name"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The name of the @target.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">a #GstEncodingTarget</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_path" c:identifier="gst_encoding_target_get_path" version="1.18"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The path to the @target file.</doc> + <type name="filename" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">a #GstEncodingTarget</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_profile" c:identifier="gst_encoding_target_get_profile"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The matching #GstEncodingProfile, or %NULL.</doc> + <type name="EncodingProfile" c:type="GstEncodingProfile*"/> + </return-value> + <parameters> + <instance-parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">a #GstEncodingTarget</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">the name of the profile to retrieve</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_profiles" c:identifier="gst_encoding_target_get_profiles"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">A list of +#GstEncodingProfile(s) this @target handles.</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="EncodingProfile"/> + </type> + </return-value> + <parameters> + <instance-parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">a #GstEncodingTarget</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </instance-parameter> + </parameters> + </method> + <method name="save" c:identifier="gst_encoding_target_save" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">Saves the @target to a default user-local directory.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">%TRUE if the target was correctly saved, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">a #GstEncodingTarget</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </instance-parameter> + </parameters> + </method> + <method name="save_to_file" c:identifier="gst_encoding_target_save_to_file" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">Saves the @target to the provided file location.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">%TRUE if the target was correctly saved, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">a #GstEncodingTarget</doc> + <type name="EncodingTarget" c:type="GstEncodingTarget*"/> + </instance-parameter> + <parameter name="filepath" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">the location to store the @target at.</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </class> + <class name="EncodingVideoProfile" c:symbol-prefix="encoding_video_profile" c:type="GstEncodingVideoProfile" parent="EncodingProfile" glib:type-name="GstEncodingVideoProfile" glib:get-type="gst_encoding_video_profile_get_type" glib:type-struct="EncodingVideoProfileClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h">Variant of #GstEncodingProfile for video streams, allows specifying the @pass.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <constructor name="new" c:identifier="gst_encoding_video_profile_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Creates a new #GstEncodingVideoProfile + +All provided allocatable arguments will be internally copied, so can be +safely freed/unreferenced after calling this method. + +If you wish to control the pass number (in case of multi-pass scenarios), +please refer to the gst_encoding_video_profile_set_pass() documentation. + +If you wish to use/force a constant framerate please refer to the +gst_encoding_video_profile_set_variableframerate() documentation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the newly created #GstEncodingVideoProfile.</doc> + <type name="EncodingVideoProfile" c:type="GstEncodingVideoProfile*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the #GstCaps</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="preset" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the preset(s) to use on the encoder, can be %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="restriction" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the #GstCaps used to restrict the input to the encoder, can be +NULL. See gst_encoding_profile_get_restriction() for more details.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="presence" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the number of time this stream must be used. 0 means any number of + times (including never)</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <method name="get_pass" c:identifier="gst_encoding_video_profile_get_pass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Get the pass number if this is part of a multi-pass profile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">The pass number. Starts at 1 for multi-pass. 0 if this is +not a multi-pass profile</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="prof" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingVideoProfile</doc> + <type name="EncodingVideoProfile" c:type="GstEncodingVideoProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_variableframerate" c:identifier="gst_encoding_video_profile_get_variableframerate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">> *NOTE*: Fixed framerate won't be enforced when #encodebin:avoid-reencoding +> is set.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Whether non-constant video framerate is allowed for encoding.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="prof" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingVideoProfile</doc> + <type name="EncodingVideoProfile" c:type="GstEncodingVideoProfile*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_pass" c:identifier="gst_encoding_video_profile_set_pass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">Sets the pass number of this video profile. The first pass profile should have +this value set to 1. If this video profile isn't part of a multi-pass profile, +you may set it to 0 (the default value).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="prof" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingVideoProfile</doc> + <type name="EncodingVideoProfile" c:type="GstEncodingVideoProfile*"/> + </instance-parameter> + <parameter name="pass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">the pass number for this profile</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_variableframerate" c:identifier="gst_encoding_video_profile_set_variableframerate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">If set to %TRUE, then the incoming stream will be allowed to have non-constant +framerate. If set to %FALSE (default value), then the incoming stream will +be normalized by dropping/duplicating frames in order to produce a +constance framerate.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="prof" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a #GstEncodingVideoProfile</doc> + <type name="EncodingVideoProfile" c:type="GstEncodingVideoProfile*"/> + </instance-parameter> + <parameter name="variableframerate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c">a boolean</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + </class> + <record name="EncodingVideoProfileClass" c:type="GstEncodingVideoProfileClass" disguised="1" glib:is-gtype-struct-for="EncodingVideoProfile"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + </record> + <function-macro name="IS_DISCOVERER" c:identifier="GST_IS_DISCOVERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DISCOVERER_AUDIO_INFO" c:identifier="GST_IS_DISCOVERER_AUDIO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DISCOVERER_CLASS" c:identifier="GST_IS_DISCOVERER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DISCOVERER_CONTAINER_INFO" c:identifier="GST_IS_DISCOVERER_CONTAINER_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DISCOVERER_INFO" c:identifier="GST_IS_DISCOVERER_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DISCOVERER_STREAM_INFO" c:identifier="GST_IS_DISCOVERER_STREAM_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DISCOVERER_SUBTITLE_INFO" c:identifier="GST_IS_DISCOVERER_SUBTITLE_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_DISCOVERER_VIDEO_INFO" c:identifier="GST_IS_DISCOVERER_VIDEO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ENCODING_AUDIO_PROFILE" c:identifier="GST_IS_ENCODING_AUDIO_PROFILE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ENCODING_CONTAINER_PROFILE" c:identifier="GST_IS_ENCODING_CONTAINER_PROFILE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ENCODING_PROFILE" c:identifier="GST_IS_ENCODING_PROFILE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ENCODING_TARGET" c:identifier="GST_IS_ENCODING_TARGET" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_ENCODING_VIDEO_PROFILE" c:identifier="GST_IS_ENCODING_VIDEO_PROFILE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_SYNAESTHESIA" c:identifier="GST_IS_SYNAESTHESIA" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_SYNAESTHESIA_CLASS" c:identifier="GST_IS_SYNAESTHESIA_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstaudiovisualizer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <record name="InstallPluginsContext" c:type="GstInstallPluginsContext" glib:type-name="GstInstallPluginsContext" glib:get-type="gst_install_plugins_context_get_type" c:symbol-prefix="install_plugins_context"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">Opaque context structure for the plugin installation. Use the provided +API to set details on it.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <constructor name="new" c:identifier="gst_install_plugins_context_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Creates a new #GstInstallPluginsContext.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a new #GstInstallPluginsContext. Free with +gst_install_plugins_context_free() when no longer needed</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </return-value> + </constructor> + <method name="copy" c:identifier="gst_install_plugins_context_copy" version="1.12.1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Copies a #GstInstallPluginsContext.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">A copy of @ctx</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a #GstInstallPluginsContext</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_install_plugins_context_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Frees a #GstInstallPluginsContext.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a #GstInstallPluginsContext</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_confirm_search" c:identifier="gst_install_plugins_context_set_confirm_search" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">This function is used to tell the external installer process whether it +should ask for confirmation or not before searching for missing plugins. + +If set, this option will be passed to the installer via a +--interaction=[show-confirm-search|hide-confirm-search] command line option.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a #GstInstallPluginsContext</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </instance-parameter> + <parameter name="confirm_search" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">whether to ask for confirmation before searching for plugins</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_desktop_id" c:identifier="gst_install_plugins_context_set_desktop_id" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">This function is used to pass the calling application's desktop file ID to +the external installer process. + +A desktop file ID is the basename of the desktop file, including the +.desktop extension. + +If set, the desktop file ID will be passed to the installer via a +--desktop-id= command line option.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a #GstInstallPluginsContext</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </instance-parameter> + <parameter name="desktop_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">the desktop file ID of the calling application</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_startup_notification_id" c:identifier="gst_install_plugins_context_set_startup_notification_id" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Sets the startup notification ID for the launched process. + +This is typically used to to pass the current X11 event timestamp to the +external installer process. + +Startup notification IDs are defined in the +[FreeDesktop.Org Startup Notifications standard](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt). + +If set, the ID will be passed to the installer via a +--startup-notification-id= command line option. + +GTK+/GNOME applications should be able to create a startup notification ID +like this: +|[ + timestamp = gtk_get_current_event_time (); + startup_id = g_strdup_printf ("_TIME%u", timestamp); +... +]|</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a #GstInstallPluginsContext</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </instance-parameter> + <parameter name="startup_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">the startup notification ID</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_xid" c:identifier="gst_install_plugins_context_set_xid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">This function is for X11-based applications (such as most Gtk/Qt +applications on linux/unix) only. You can use it to tell the external +installer the XID of your main application window. That way the installer +can make its own window transient to your application window during the +installation. + +If set, the XID will be passed to the installer via a --transient-for=XID +command line option. + +Gtk+/Gnome application should be able to obtain the XID of the top-level +window like this: +|[ +##include <gtk/gtk.h> +##ifdef GDK_WINDOWING_X11 +##include <gdk/gdkx.h> +##endif +... +##ifdef GDK_WINDOWING_X11 + xid = GDK_WINDOW_XWINDOW (GTK_WIDGET (application_window)->window); +##endif +... +]|</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a #GstInstallPluginsContext</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </instance-parameter> + <parameter name="xid" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">the XWindow ID (XID) of the top-level application</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + </record> + <callback name="InstallPluginsResultFunc" c:type="GstInstallPluginsResultFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">The prototype of the callback function that will be called once the +external plugin installer program has returned. You only need to provide +a callback function if you are using the asynchronous interface.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="result" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">whether the installation of the requested plugins succeeded or not</doc> + <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">the user data passed to gst_install_plugins_async()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <enumeration name="InstallPluginsReturn" glib:type-name="GstInstallPluginsReturn" glib:get-type="gst_install_plugins_return_get_type" c:type="GstInstallPluginsReturn"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">Result codes returned by gst_install_plugins_async() and +gst_install_plugins_sync(), and also the result code passed to the +#GstInstallPluginsResultFunc specified with gst_install_plugins_async(). + +These codes indicate success or failure of starting an external installer +program and to what extent the requested plugins could be installed.</doc> + <member name="success" value="0" c:identifier="GST_INSTALL_PLUGINS_SUCCESS" glib:nick="success"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">all of the requested plugins could be + installed</doc> + </member> + <member name="not_found" value="1" c:identifier="GST_INSTALL_PLUGINS_NOT_FOUND" glib:nick="not-found"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">no appropriate installation candidate for + any of the requested plugins could be found. Only return this if nothing + has been installed. Return #GST_INSTALL_PLUGINS_PARTIAL_SUCCESS if + some (but not all) of the requested plugins could be installed.</doc> + </member> + <member name="error" value="2" c:identifier="GST_INSTALL_PLUGINS_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">an error occurred during the installation. If + this happens, the user has already seen an error message and another + one should not be displayed</doc> + </member> + <member name="partial_success" value="3" c:identifier="GST_INSTALL_PLUGINS_PARTIAL_SUCCESS" glib:nick="partial-success"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">some of the requested plugins could + be installed, but not all</doc> + </member> + <member name="user_abort" value="4" c:identifier="GST_INSTALL_PLUGINS_USER_ABORT" glib:nick="user-abort"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">the user has aborted the installation</doc> + </member> + <member name="crashed" value="100" c:identifier="GST_INSTALL_PLUGINS_CRASHED" glib:nick="crashed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">the installer had an unclean exit code + (ie. death by signal)</doc> + </member> + <member name="invalid" value="101" c:identifier="GST_INSTALL_PLUGINS_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">the helper returned an invalid status code</doc> + </member> + <member name="started_ok" value="200" c:identifier="GST_INSTALL_PLUGINS_STARTED_OK" glib:nick="started-ok"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">returned by gst_install_plugins_async() to + indicate that everything went fine so far and the provided callback + will be called with the result of the installation later</doc> + </member> + <member name="internal_failure" value="201" c:identifier="GST_INSTALL_PLUGINS_INTERNAL_FAILURE" glib:nick="internal-failure"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">some internal failure has + occurred when trying to start the installer</doc> + </member> + <member name="helper_missing" value="202" c:identifier="GST_INSTALL_PLUGINS_HELPER_MISSING" glib:nick="helper-missing"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">the helper script to call the + actual installer is not installed</doc> + </member> + <member name="install_in_progress" value="203" c:identifier="GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS" glib:nick="install-in-progress"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h">a previously-started plugin + installation is still in progress, try again later</doc> + </member> + <function name="get_name" c:identifier="gst_install_plugins_return_get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Convenience function to return the descriptive string associated +with a status code. This function returns English strings and +should not be used for user messages. It is here only to assist +in debugging.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a descriptive string for the status code in @ret</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">the return status code</doc> + <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/> + </parameter> + </parameters> + </function> + </enumeration> + <function-macro name="PBUTILS_DEPRECATED_FOR" c:identifier="GST_PBUTILS_DEPRECATED_FOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/pbutils-prelude.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <constant name="PLUGINS_BASE_VERSION_MAJOR" value="1" c:type="GST_PLUGINS_BASE_VERSION_MAJOR"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h">The major version of GStreamer's gst-plugins-base libraries at compile time.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PLUGINS_BASE_VERSION_MICRO" value="0" c:type="GST_PLUGINS_BASE_VERSION_MICRO"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h">The micro version of GStreamer's gst-plugins-base libraries at compile time.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PLUGINS_BASE_VERSION_MINOR" value="23" c:type="GST_PLUGINS_BASE_VERSION_MINOR"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h">The minor version of GStreamer's gst-plugins-base libraries at compile time.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PLUGINS_BASE_VERSION_NANO" value="1" c:type="GST_PLUGINS_BASE_VERSION_NANO"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h">The nano version of GStreamer's gst-plugins-base libraries at compile time. +Actual releases have 0, GIT versions have 1, prerelease versions have 2-...</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/> + <type name="gint" c:type="gint"/> + </constant> + <bitfield name="PbUtilsCapsDescriptionFlags" version="1.20" glib:type-name="GstPbUtilsCapsDescriptionFlags" glib:get-type="gst_pb_utils_caps_description_flags_get_type" c:type="GstPbUtilsCapsDescriptionFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h">Flags that are returned by gst_pb_utils_get_caps_description_flags() and +describe the format of the caps.</doc> + <member name="container" value="1" c:identifier="GST_PBUTILS_CAPS_DESCRIPTION_FLAG_CONTAINER" glib:nick="container"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h">Caps describe a container format.</doc> + </member> + <member name="audio" value="2" c:identifier="GST_PBUTILS_CAPS_DESCRIPTION_FLAG_AUDIO" glib:nick="audio"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h">Caps describe an audio format, or a + container format that can store audio.</doc> + </member> + <member name="video" value="4" c:identifier="GST_PBUTILS_CAPS_DESCRIPTION_FLAG_VIDEO" glib:nick="video"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h">Caps describe an video format, or a + container format that can store video.</doc> + </member> + <member name="image" value="8" c:identifier="GST_PBUTILS_CAPS_DESCRIPTION_FLAG_IMAGE" glib:nick="image"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h">Caps describe an image format, or a + container format that can store image.</doc> + </member> + <member name="subtitle" value="16" c:identifier="GST_PBUTILS_CAPS_DESCRIPTION_FLAG_SUBTITLE" glib:nick="subtitle"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h">Caps describe an subtitle format, or a + container format that can store subtitles.</doc> + </member> + <member name="tag" value="32" c:identifier="GST_PBUTILS_CAPS_DESCRIPTION_FLAG_TAG" glib:nick="tag"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h">Container format is a tags container.</doc> + </member> + <member name="generic" value="64" c:identifier="GST_PBUTILS_CAPS_DESCRIPTION_FLAG_GENERIC" glib:nick="generic"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h">Container format can store any kind of + stream type.</doc> + </member> + <member name="metadata" value="128" c:identifier="GST_PBUTILS_CAPS_DESCRIPTION_FLAG_METADATA" glib:nick="metadata"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h">Caps describe a metadata + format, or a container format that can store metadata.</doc> + </member> + </bitfield> + <function name="codec_utils_aac_caps_set_level_and_profile" c:identifier="gst_codec_utils_aac_caps_set_level_and_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Sets the level and profile on @caps if it can be determined from +@audio_config. See gst_codec_utils_aac_get_level() and +gst_codec_utils_aac_get_profile() for more details on the parameters. +@caps must be audio/mpeg caps with an "mpegversion" field of either 2 or 4. +If mpegversion is 4, the "base-profile" field is also set in @caps.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">%TRUE if the level and profile could be set, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the #GstCaps to which level and profile fields are to be added</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="audio_config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">a pointer to the AudioSpecificConfig + as specified in the Elementary Stream Descriptor (esds) + in ISO/IEC 14496-1. (See below for more details)</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of @audio_config in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_aac_get_channels" c:identifier="gst_codec_utils_aac_get_channels" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Returns the channels of the given AAC stream.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The channels or 0 if the channel could not be determined.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="audio_config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">a pointer to the AudioSpecificConfig + as specified in the Elementary Stream Descriptor (esds) + in ISO/IEC 14496-1.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of @audio_config in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_aac_get_index_from_sample_rate" c:identifier="gst_codec_utils_aac_get_index_from_sample_rate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Translates the sample rate to the index corresponding to it in AAC spec.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The AAC index for this sample rate, -1 if the rate is not a +valid AAC sample rate.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Sample rate</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_aac_get_level" c:identifier="gst_codec_utils_aac_get_level"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Determines the level of a stream as defined in ISO/IEC 14496-3. For AAC LC +streams, the constraints from the AAC audio profile are applied. For AAC +Main, LTP, SSR and others, the Main profile is used. + +The @audio_config parameter follows the following format, starting from the +most significant bit of the first byte: + + * 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</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The level as a const string and %NULL if the level could not be +determined.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="audio_config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">a pointer to the AudioSpecificConfig + as specified in the Elementary Stream Descriptor (esds) + in ISO/IEC 14496-1.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of @audio_config in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_aac_get_profile" c:identifier="gst_codec_utils_aac_get_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Returns the profile of the given AAC stream as a string. The profile is +normally determined using the AudioObjectType field which is in the first +5 bits of @audio_config</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The profile as a const string and %NULL if the profile could not be +determined.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="audio_config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">a pointer to the AudioSpecificConfig + as specified in the Elementary Stream Descriptor (esds) + in ISO/IEC 14496-1.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of @audio_config in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_aac_get_sample_rate" c:identifier="gst_codec_utils_aac_get_sample_rate" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Translates the sample rate index found in AAC headers to the actual sample +rate.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The sample rate if sr_idx is valid, 0 otherwise.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="audio_config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">a pointer to the AudioSpecificConfig + as specified in the Elementary Stream Descriptor (esds) + in ISO/IEC 14496-1.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of @audio_config</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_aac_get_sample_rate_from_index" c:identifier="gst_codec_utils_aac_get_sample_rate_from_index"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Translates the sample rate index found in AAC headers to the actual sample +rate.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The sample rate if @sr_idx is valid, 0 otherwise.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="sr_idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Sample rate index as from the AudioSpecificConfig (MPEG-4 + container) or ADTS frame header</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_caps_from_mime_codec" c:identifier="gst_codec_utils_caps_from_mime_codec" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Converts a RFC 6381 compatible codec string to #GstCaps. More than one codec +string can be present (separated by `,`). + +Registered codecs can be found at http://mp4ra.org/#/codecs</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The corresponding #GstCaps or %NULL</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="codecs_field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">A mime codec string field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_caps_get_mime_codec" c:identifier="gst_codec_utils_caps_get_mime_codec" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Converts @caps to a RFC 6381 compatible codec string if possible. + +Useful for providing the 'codecs' field inside the 'Content-Type' HTTP +header for containerized formats, such as mp4 or matroska. + +Registered codecs can be found at http://mp4ra.org/#/codecs</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">a RFC 6381 compatible codec string or %NULL</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">A #GstCaps to convert to mime codec</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h264_caps_set_level_and_profile" c:identifier="gst_codec_utils_h264_caps_set_level_and_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Sets the level and profile in @caps if it can be determined from @sps. See +gst_codec_utils_h264_get_level() and gst_codec_utils_h264_get_profile() +for more details on the parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">%TRUE if the level and profile could be set, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the #GstCaps to which the level and profile are to be added</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="sps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the sequence parameter set for the stream.</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @sps.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h264_get_level" c:identifier="gst_codec_utils_h264_get_level"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Converts the level indication (level_idc) in the stream's +sequence parameter set into a string. The SPS is expected to have the +same format as for gst_codec_utils_h264_get_profile().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The level as a const string, or %NULL if there is an error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="sps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the sequence parameter set for the stream.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @sps.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h264_get_level_idc" c:identifier="gst_codec_utils_h264_get_level_idc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Transform a level string from the caps into the level_idc</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the level_idc or 0 if the level is unknown</doc> + <type name="guint8" c:type="guint8"/> + </return-value> + <parameters> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">A level string from caps</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h264_get_profile" c:identifier="gst_codec_utils_h264_get_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Converts the profile indication (profile_idc) in the stream's +sequence parameter set into a string. The SPS is expected to have the +following format, as defined in the H.264 specification. The SPS is viewed +as a bitstream here, with bit 0 being the most significant bit of the first +byte. + +* Bit 0:7 - Profile indication +* Bit 8 - constraint_set0_flag +* Bit 9 - constraint_set1_flag +* Bit 10 - constraint_set2_flag +* Bit 11 - constraint_set3_flag +* Bit 12 - constraint_set3_flag +* Bit 13:15 - Reserved +* Bit 16:24 - Level indication</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The profile as a const string, or %NULL if there is an error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="sps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the sequence parameter set for the stream.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @sps.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h264_get_profile_flags_level" c:identifier="gst_codec_utils_h264_get_profile_flags_level" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Parses profile, flags, and level from a H264 AVCC extradata/sequence_header. +These are most commonly retrieved from a video/x-h264 caps with a codec_data +buffer. + +The format of H264 AVCC extradata/sequence_header is documented in the +ITU-T H.264 specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15 +section 5.3.3.1.2.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">%TRUE on success, %FALSE on failure</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="codec_data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">H264 AVCC extradata</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">length of @codec_data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="profile" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">return location for h264 profile_idc or %NULL</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">return location for h264 constraint set flags or %NULL</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="level" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">return location h264 level_idc or %NULL</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h265_caps_set_level_tier_and_profile" c:identifier="gst_codec_utils_h265_caps_set_level_tier_and_profile" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Sets the level, tier and profile in @caps if it can be determined from +@profile_tier_level. See gst_codec_utils_h265_get_level(), +gst_codec_utils_h265_get_tier() and gst_codec_utils_h265_get_profile() +for more details on the parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">%TRUE if the level, tier, profile could be set, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the #GstCaps to which the level, tier and profile are to be added</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="profile_tier_level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the profile_tier_level + struct</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @profile_tier_level.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h265_get_level" c:identifier="gst_codec_utils_h265_get_level" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Converts the level indication (general_level_idc) in the stream's +profile_tier_level structure into a string. The profiel_tier_level is +expected to have the same format as for gst_codec_utils_h264_get_profile().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The level as a const string, or %NULL if there is an error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="profile_tier_level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the profile_tier_level + for the stream</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @profile_tier_level.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h265_get_level_idc" c:identifier="gst_codec_utils_h265_get_level_idc" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Transform a level string from the caps into the level_idc</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the level_idc or 0 if the level is unknown</doc> + <type name="guint8" c:type="guint8"/> + </return-value> + <parameters> + <parameter name="level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">A level string from caps</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h265_get_profile" c:identifier="gst_codec_utils_h265_get_profile" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Converts the profile indication (general_profile_idc) in the stream's +profile_level_tier structure into a string. The profile_tier_level is +expected to have the following format, as defined in the H.265 +specification. The profile_tier_level is viewed as a bitstream here, +with bit 0 being the most significant bit of the first byte. + +* Bit 0:1 - general_profile_space +* Bit 2 - general_tier_flag +* Bit 3:7 - general_profile_idc +* Bit 8:39 - gernal_profile_compatibility_flags +* Bit 40 - general_progressive_source_flag +* Bit 41 - general_interlaced_source_flag +* Bit 42 - general_non_packed_constraint_flag +* Bit 43 - general_frame_only_constraint_flag +* Bit 44:87 - See below +* Bit 88:95 - general_level_idc</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The profile as a const string, or %NULL if there is an error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="profile_tier_level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the profile_tier_level + structure for the stream.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @profile_tier_level</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_h265_get_tier" c:identifier="gst_codec_utils_h265_get_tier" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Converts the tier indication (general_tier_flag) in the stream's +profile_tier_level structure into a string. The profile_tier_level +is expected to have the same format as for gst_codec_utils_h264_get_profile().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The tier as a const string, or %NULL if there is an error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="profile_tier_level" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the profile_tier_level + for the stream.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @profile_tier_level.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_mpeg4video_caps_set_level_and_profile" c:identifier="gst_codec_utils_mpeg4video_caps_set_level_and_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Sets the level and profile in @caps if it can be determined from +@vis_obj_seq. See gst_codec_utils_mpeg4video_get_level() and +gst_codec_utils_mpeg4video_get_profile() for more details on the +parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">%TRUE if the level and profile could be set, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the #GstCaps to which the level and profile are to be added</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="vis_obj_seq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the visual object + sequence for the stream.</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @sps.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_mpeg4video_get_level" c:identifier="gst_codec_utils_mpeg4video_get_level"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Converts the level indication in the stream's visual object sequence into +a string. @vis_obj_seq is expected to be the data following the visual +object sequence start code. Only the first byte +(profile_and_level_indication) is used.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The level as a const string, or NULL if there is an error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="vis_obj_seq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the visual object + sequence for the stream.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @sps.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_mpeg4video_get_profile" c:identifier="gst_codec_utils_mpeg4video_get_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Converts the profile indication in the stream's visual object sequence into +a string. @vis_obj_seq is expected to be the data following the visual +object sequence start code. Only the first byte +(profile_and_level_indication) is used.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The profile as a const string, or NULL if there is an error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="vis_obj_seq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pointer to the visual object + sequence for the stream.</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Length of the data available in @sps.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_opus_create_caps" c:identifier="gst_codec_utils_opus_create_caps" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Creates Opus caps from the given parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The #GstCaps, or %NULL if the parameters would lead to +invalid Opus caps.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the sample rate</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of channels</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="channel_mapping_family" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the channel mapping family</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="stream_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of independent streams</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="coupled_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of stereo streams</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="channel_mapping" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the mapping between the streams</doc> + <array zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + </parameters> + </function> + <function name="codec_utils_opus_create_caps_from_header" c:identifier="gst_codec_utils_opus_create_caps_from_header" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Creates Opus caps from the given OpusHead @header and comment header +@comments.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The #GstCaps.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="header" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">OpusHead header</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="comments" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Comment header or NULL</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_opus_create_header" c:identifier="gst_codec_utils_opus_create_header" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Creates OpusHead header from the given parameters.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">The #GstBuffer containing the OpusHead.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the sample rate</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of channels</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="channel_mapping_family" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the channel mapping family</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="stream_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of independent streams</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="coupled_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of stereo streams</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="channel_mapping" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the mapping between the streams</doc> + <array zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="pre_skip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pre-skip in 48kHz samples or 0</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="output_gain" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Output gain or 0</doc> + <type name="gint16" c:type="gint16"/> + </parameter> + </parameters> + </function> + <function name="codec_utils_opus_parse_caps" c:identifier="gst_codec_utils_opus_parse_caps" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Parses Opus caps and fills the different fields with defaults if possible.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">%TRUE if parsing was successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the #GstCaps to parse the data from</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="rate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the sample rate</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="channels" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of channels</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="channel_mapping_family" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the channel mapping family</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="stream_count" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of independent streams</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="coupled_count" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of stereo streams</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="channel_mapping" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the mapping between the streams</doc> + <array zero-terminated="0" c:type="guint8*" fixed-size="256"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + </parameters> + </function> + <function name="codec_utils_opus_parse_header" c:identifier="gst_codec_utils_opus_parse_header" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Parses the OpusHead header.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">%TRUE if parsing was successful, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="header" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the OpusHead #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="rate" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the sample rate</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="channels" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of channels</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="channel_mapping_family" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the channel mapping family</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="stream_count" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of independent streams</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="coupled_count" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the number of stereo streams</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="channel_mapping" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">the mapping between the streams</doc> + <array zero-terminated="0" c:type="guint8*" fixed-size="256"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="pre_skip" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Pre-skip in 48kHz samples or 0</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + <parameter name="output_gain" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c">Output gain or 0</doc> + <type name="gint16" c:type="gint16*"/> + </parameter> + </parameters> + </function> + <function-macro name="discoverer_info_ref" c:identifier="gst_discoverer_info_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Increments the reference count of @info.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="discoverer_info_unref" c:identifier="gst_discoverer_info_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Decrements the reference count of @info.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererInfo</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="discoverer_stream_info_ref" c:identifier="gst_discoverer_stream_info_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Increments the reference count of @info.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="discoverer_stream_info_unref" c:identifier="gst_discoverer_stream_info_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">Decrements the reference count of @info.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/> + <parameters> + <parameter name="info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c">a #GstDiscovererStreamInfo</doc> + </parameter> + </parameters> + </function-macro> + <function name="encoding_list_all_targets" c:identifier="gst_encoding_list_all_targets"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">List all available #GstEncodingTarget for the specified category, or all categories +if @categoryname is %NULL.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The list of #GstEncodingTarget</doc> + <type name="GLib.List" c:type="GList*"> + <type name="EncodingTarget"/> + </type> + </return-value> + <parameters> + <parameter name="categoryname" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">The category, for ex: #GST_ENCODING_CATEGORY_DEVICE. +Can be %NULL.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="encoding_list_available_categories" c:identifier="gst_encoding_list_available_categories"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">Lists all #GstEncodingTarget categories present on disk.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c">A list +of #GstEncodingTarget categories.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="utf8"/> + </type> + </return-value> + </function> + <function-macro name="encoding_profile_ref" c:identifier="gst_encoding_profile_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h">Increases the reference count of the @profile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h">a #GstEncodingProfile</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="encoding_profile_unref" c:identifier="gst_encoding_profile_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h">Decreases the reference count of the @profile, possibly freeing the @profile.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h"/> + <parameters> + <parameter name="profile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.h">a #GstEncodingProfile</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="encoding_target_ref" c:identifier="gst_encoding_target_ref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">Increases the reference count of the @target.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <parameters> + <parameter name="target"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">a #GstEncodingTarget</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="encoding_target_unref" c:identifier="gst_encoding_target_unref" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">Decreases the reference count of the @target, possibly freeing it.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h"/> + <parameters> + <parameter name="target"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/encoding-target.h">a #GstEncodingTarget</doc> + </parameter> + </parameters> + </function-macro> + <function name="install_plugins_async" c:identifier="gst_install_plugins_async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Requests plugin installation without blocking. Once the plugins have been +installed or installation has failed, @func will be called with the result +of the installation and your provided @user_data pointer. + +This function requires a running GLib/Gtk main loop. If you are not +running a GLib/Gtk main loop, make sure to regularly call +g_main_context_iteration(NULL,FALSE). + +The installer strings that make up @detail are typically obtained by +calling gst_missing_plugin_message_get_installer_detail() on missing-plugin +messages that have been caught on a pipeline's bus or created by the +application via the provided API, such as gst_missing_element_message_new(). + +It is possible to request the installation of multiple missing plugins in +one go (as might be required if there is a demuxer for a certain format +installed but no suitable video decoder and no suitable audio decoder).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">result code whether an external installer could be started</doc> + <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/> + </return-value> + <parameters> + <parameter name="details" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">NULL-terminated array + of installer string details (see below)</doc> + <array c:type="const gchar* const*"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="ctx" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a #GstInstallPluginsContext, or NULL</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="async" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">the function to call when the installer program returns</doc> + <type name="InstallPluginsResultFunc" c:type="GstInstallPluginsResultFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">the user data to pass to @func when called, or NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="install_plugins_installation_in_progress" c:identifier="gst_install_plugins_installation_in_progress"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Checks whether plugin installation (initiated by this application only) +is currently in progress.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">TRUE if plugin installation is in progress, otherwise FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="install_plugins_return_get_name" c:identifier="gst_install_plugins_return_get_name" moved-to="InstallPluginsReturn.get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Convenience function to return the descriptive string associated +with a status code. This function returns English strings and +should not be used for user messages. It is here only to assist +in debugging.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a descriptive string for the status code in @ret</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="ret" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">the return status code</doc> + <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/> + </parameter> + </parameters> + </function> + <function name="install_plugins_supported" c:identifier="gst_install_plugins_supported"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Checks whether plugin installation is likely to be supported by the +current environment. This currently only checks whether the helper script +that is to be provided by the distribution or operating system vendor +exists.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">TRUE if plugin installation is likely to be supported.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="install_plugins_sync" c:identifier="gst_install_plugins_sync"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">Requests plugin installation and block until the plugins have been +installed or installation has failed. + +This function should almost never be used, it only exists for cases where +a non-GLib main loop is running and the user wants to run it in a separate +thread and marshal the result back asynchronously into the main thread +using the other non-GLib main loop. You should almost always use +gst_install_plugins_async() instead of this function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">the result of the installation.</doc> + <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/> + </return-value> + <parameters> + <parameter name="details" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">NULL-terminated array + of installer string details</doc> + <array c:type="const gchar* const*"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="ctx" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/install-plugins.c">a #GstInstallPluginsContext, or NULL</doc> + <type name="InstallPluginsContext" c:type="GstInstallPluginsContext*"/> + </parameter> + </parameters> + </function> + <function name="is_missing_plugin_message" c:identifier="gst_is_missing_plugin_message"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Checks whether @msg is a missing plugins message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">%TRUE if @msg is a missing-plugins message, otherwise %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="missing_decoder_installer_detail_new" c:identifier="gst_missing_decoder_installer_detail_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). + +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a newly-allocated detail string. Free string + with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="decode_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the (fixed) caps for which a decoder element is needed</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="missing_decoder_message_new" c:identifier="gst_missing_decoder_message_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Creates a missing-plugin message for @element to notify the application +that a decoder element for a particular set of (fixed) caps is missing. +This function is mainly for use in plugins.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a new #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the #GstElement posting the message</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="decode_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the (fixed) caps for which a decoder element is needed</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="missing_element_installer_detail_new" c:identifier="gst_missing_element_installer_detail_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). + +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a newly-allocated detail string. Free string + with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="factory_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the name of the missing element (element factory), + e.g. "videoscale" or "cdparanoiasrc"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_element_message_new" c:identifier="gst_missing_element_message_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Creates a missing-plugin message for @element to notify the application +that a certain required element is missing. This function is mainly for +use in plugins.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a new #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the #GstElement posting the message</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="factory_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the name of the missing element (element factory), + e.g. "videoscale" or "cdparanoiasrc"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_encoder_installer_detail_new" c:identifier="gst_missing_encoder_installer_detail_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). + +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a newly-allocated detail string. Free string + with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="encode_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the (fixed) caps for which an encoder element is needed</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="missing_encoder_message_new" c:identifier="gst_missing_encoder_message_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Creates a missing-plugin message for @element to notify the application +that an encoder element for a particular set of (fixed) caps is missing. +This function is mainly for use in plugins.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a new #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the #GstElement posting the message</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="encode_caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the (fixed) caps for which an encoder element is needed</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="missing_plugin_message_get_description" c:identifier="gst_missing_plugin_message_get_description"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Returns a localised string describing the missing feature, for use in +error dialogs and the like. Should never return NULL unless @msg is not +a valid missing-plugin message. + +This function is mainly for applications that need a human-readable string +describing a missing plugin, given a previously collected missing-plugin +message</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a newly-allocated description string. Free + string with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a missing-plugin #GstMessage of type #GST_MESSAGE_ELEMENT</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="missing_plugin_message_get_installer_detail" c:identifier="gst_missing_plugin_message_get_installer_detail"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). + +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a newly-allocated detail string, or NULL on error. Free string + with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a missing-plugin #GstMessage of type #GST_MESSAGE_ELEMENT</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="missing_uri_sink_installer_detail_new" c:identifier="gst_missing_uri_sink_installer_detail_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). + +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a newly-allocated detail string. Free string + with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the URI protocol the missing source needs to implement, + e.g. "http" or "mms"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_uri_sink_message_new" c:identifier="gst_missing_uri_sink_message_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Creates a missing-plugin message for @element to notify the application +that a sink element for a particular URI protocol is missing. This +function is mainly for use in plugins.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a new #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the #GstElement posting the message</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the URI protocol the missing sink needs to implement, + e.g. "http" or "smb"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_uri_source_installer_detail_new" c:identifier="gst_missing_uri_source_installer_detail_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). + +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a newly-allocated detail string. Free string + with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the URI protocol the missing source needs to implement, + e.g. "http" or "mms"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_uri_source_message_new" c:identifier="gst_missing_uri_source_message_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">Creates a missing-plugin message for @element to notify the application +that a source element for a particular URI protocol is missing. This +function is mainly for use in plugins.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">a new #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the #GstElement posting the message</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c">the URI protocol the missing source needs to implement, + e.g. "http" or "mms"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_add_codec_description_to_tag_list" c:identifier="gst_pb_utils_add_codec_description_to_tag_list"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">Adds a codec tag describing the format specified by @caps to @taglist.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">TRUE if a codec tag was added, FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="taglist" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">a #GstTagList</doc> + <type name="Gst.TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="codec_tag" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">a GStreamer codec tag such as #GST_TAG_AUDIO_CODEC, + #GST_TAG_VIDEO_CODEC or #GST_TAG_CODEC. If none is specified, + the function will attempt to detect the appropriate category.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">the (fixed) #GstCaps for which a codec tag should be added.</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_caps_description_flags" c:identifier="gst_pb_utils_get_caps_description_flags" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">Returns flags that describe the format of the caps if known. No flags are +set for unknown caps.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">#GstPbUtilsCapsDescriptionFlags that describe @caps, or no flags + if the caps are unknown.</doc> + <type name="PbUtilsCapsDescriptionFlags" c:type="GstPbUtilsCapsDescriptionFlags"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">the (fixed) #GstCaps for which flags are requested</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_codec_description" c:identifier="gst_pb_utils_get_codec_description"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">Returns a localised (as far as this is possible) string describing the +media format specified in @caps, for use in error dialogs or other messages +to be seen by the user. Should never return NULL unless @caps is invalid. + +Also see the convenience function +gst_pb_utils_add_codec_description_to_tag_list().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">a newly-allocated description string, or NULL on error. Free + string with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">the (fixed) #GstCaps for which an format description is needed</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_decoder_description" c:identifier="gst_pb_utils_get_decoder_description"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">Returns a localised string describing an decoder for the format specified +in @caps, for use in error dialogs or other messages to be seen by the user. + +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">a newly-allocated description string. Free + string with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">the (fixed) #GstCaps for which an decoder description is needed</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_element_description" c:identifier="gst_pb_utils_get_element_description"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">Returns a localised string describing the given element, for use in +error dialogs or other messages to be seen by the user. + +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">a newly-allocated description string. Free + string with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="factory_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">the name of the element, e.g. "giosrc"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_encoder_description" c:identifier="gst_pb_utils_get_encoder_description"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">Returns a localised string describing an encoder for the format specified +in @caps, for use in error dialogs or other messages to be seen by the user. + +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">a newly-allocated description string. Free + string with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">the (fixed) #GstCaps for which an encoder description is needed</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_file_extension_from_caps" c:identifier="gst_pb_utils_get_file_extension_from_caps" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">Returns a possible file extension for the given caps, if known.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">a newly-allocated file extension string, or NULL on error. Free + string with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">the (fixed) #GstCaps for which a file extension is needed</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_sink_description" c:identifier="gst_pb_utils_get_sink_description"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">Returns a localised string describing a sink element handling the protocol +specified in @protocol, for use in error dialogs or other messages to be +seen by the user. + +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">a newly-allocated description string. Free + string with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">the protocol the sink element needs to handle, e.g. "http"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_source_description" c:identifier="gst_pb_utils_get_source_description"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">Returns a localised string describing a source element handling the protocol +specified in @protocol, for use in error dialogs or other messages to be +seen by the user. + +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">a newly-allocated description string. Free + string with g_free() when not needed any longer.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/descriptions.c">the protocol the source element needs to handle, e.g. "http"</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_init" c:identifier="gst_pb_utils_init"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/pbutils.c">Initialises the base utils support library. This function is not +thread-safe. Applications should call it after calling gst_init(), +plugins should call it from their plugin_init function. + +This function may be called multiple times. It will do nothing if the +library has already been initialised.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/pbutils.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="plugins_base_version" c:identifier="gst_plugins_base_version"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.c">Gets the version number of the GStreamer Plugins Base libraries.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.c">pointer to a guint to store the major version number, or %NULL</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.c">pointer to a guint to store the minor version number, or %NULL</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="micro" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.c">pointer to a guint to store the micro version number, or %NULL</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="nano" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.c">pointer to a guint to store the nano version number, or %NULL</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="plugins_base_version_string" c:identifier="gst_plugins_base_version_string"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.c">This function returns a string that is useful for describing this version +of GStreamer's gst-plugins-base libraries to the outside world: user agent +strings, logging, about dialogs ...</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.c">a newly allocated string describing this version of gst-plugins-base</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + </function> + </namespace> +</repository> diff --git a/girs/GstPlay-1.0.gir b/girs/GstPlay-1.0.gir new file mode 100644 index 0000000000..d6c2c93317 --- /dev/null +++ b/girs/GstPlay-1.0.gir @@ -0,0 +1,2901 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <include name="GstAudio" version="1.0"/> + <include name="GstBase" version="1.0"/> + <include name="GstPbutils" version="1.0"/> + <include name="GstTag" version="1.0"/> + <include name="GstVideo" version="1.0"/> + <package name="gstreamer-play-1.0"/> + <c:include name="gst/play/play.h"/> + <namespace name="GstPlay" version="1.0" shared-library="libgstplay-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="IS_PLAY" c:identifier="GST_IS_PLAY" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_AUDIO_INFO" c:identifier="GST_IS_PLAY_AUDIO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_AUDIO_INFO_CLASS" c:identifier="GST_IS_PLAY_AUDIO_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_CLASS" c:identifier="GST_IS_PLAY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_MEDIA_INFO" c:identifier="GST_IS_PLAY_MEDIA_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_MEDIA_INFO_CLASS" c:identifier="GST_IS_PLAY_MEDIA_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_SIGNAL_ADAPTER" c:identifier="GST_IS_PLAY_SIGNAL_ADAPTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_SIGNAL_ADAPTER_CLASS" c:identifier="GST_IS_PLAY_SIGNAL_ADAPTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_STREAM_INFO" c:identifier="GST_IS_PLAY_STREAM_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_STREAM_INFO_CLASS" c:identifier="GST_IS_PLAY_STREAM_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_SUBTITLE_INFO" c:identifier="GST_IS_PLAY_SUBTITLE_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_SUBTITLE_INFO_CLASS" c:identifier="GST_IS_PLAY_SUBTITLE_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_VIDEO_INFO" c:identifier="GST_IS_PLAY_VIDEO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_VIDEO_INFO_CLASS" c:identifier="GST_IS_PLAY_VIDEO_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_VIDEO_OVERLAY_VIDEO_RENDERER" c:identifier="GST_IS_PLAY_VIDEO_OVERLAY_VIDEO_RENDERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_VIDEO_OVERLAY_VIDEO_RENDERER_CLASS" c:identifier="GST_IS_PLAY_VIDEO_OVERLAY_VIDEO_RENDERER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAY_VIDEO_RENDERER" c:identifier="GST_IS_PLAY_VIDEO_RENDERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY" c:identifier="GST_PLAY" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_AUDIO_INFO" c:identifier="GST_PLAY_AUDIO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_AUDIO_INFO_CLASS" c:identifier="GST_PLAY_AUDIO_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_CAST" c:identifier="GST_PLAY_CAST" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_CLASS" c:identifier="GST_PLAY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_DEPRECATED_FOR" c:identifier="GST_PLAY_DEPRECATED_FOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/play-prelude.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_GET_CLASS" c:identifier="GST_PLAY_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_MEDIA_INFO" c:identifier="GST_PLAY_MEDIA_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_MEDIA_INFO_CLASS" c:identifier="GST_PLAY_MEDIA_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_SIGNAL_ADAPTER" c:identifier="GST_PLAY_SIGNAL_ADAPTER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_SIGNAL_ADAPTER_CAST" c:identifier="GST_PLAY_SIGNAL_ADAPTER_CAST" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_SIGNAL_ADAPTER_CLASS" c:identifier="GST_PLAY_SIGNAL_ADAPTER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_SIGNAL_ADAPTER_GET_CLASS" c:identifier="GST_PLAY_SIGNAL_ADAPTER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_STREAM_INFO" c:identifier="GST_PLAY_STREAM_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_STREAM_INFO_CLASS" c:identifier="GST_PLAY_STREAM_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_SUBTITLE_INFO" c:identifier="GST_PLAY_SUBTITLE_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_SUBTITLE_INFO_CLASS" c:identifier="GST_PLAY_SUBTITLE_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_VIDEO_INFO" c:identifier="GST_PLAY_VIDEO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_VIDEO_INFO_CLASS" c:identifier="GST_PLAY_VIDEO_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_VIDEO_OVERLAY_VIDEO_RENDERER" c:identifier="GST_PLAY_VIDEO_OVERLAY_VIDEO_RENDERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_VIDEO_OVERLAY_VIDEO_RENDERER_CAST" c:identifier="GST_PLAY_VIDEO_OVERLAY_VIDEO_RENDERER_CAST" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_VIDEO_OVERLAY_VIDEO_RENDERER_CLASS" c:identifier="GST_PLAY_VIDEO_OVERLAY_VIDEO_RENDERER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_VIDEO_OVERLAY_VIDEO_RENDERER_GET_CLASS" c:identifier="GST_PLAY_VIDEO_OVERLAY_VIDEO_RENDERER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_VIDEO_RENDERER" c:identifier="GST_PLAY_VIDEO_RENDERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAY_VIDEO_RENDERER_GET_INTERFACE" c:identifier="GST_PLAY_VIDEO_RENDERER_GET_INTERFACE" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-renderer.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <class name="Play" c:symbol-prefix="play" c:type="GstPlay" version="1.20" parent="Gst.Object" glib:type-name="GstPlay" glib:get-type="gst_play_get_type" glib:type-struct="PlayClass"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-types.h"/> + <constructor name="new" c:identifier="gst_play_new" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Creates a new #GstPlay instance. + +Video is going to be rendered by @video_renderer, or if %NULL is provided +no special video set up will be done and some default handling will be +performed.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a new #GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </return-value> + <parameters> + <parameter name="video_renderer" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">GstPlayVideoRenderer to use</doc> + <type name="PlayVideoRenderer" c:type="GstPlayVideoRenderer*"/> + </parameter> + </parameters> + </constructor> + <function name="config_get_position_update_interval" c:identifier="gst_play_config_get_position_update_interval" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">current position update interval in milliseconds</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlay configuration</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="config_get_seek_accurate" c:identifier="gst_play_config_get_seek_accurate" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">%TRUE if accurate seeking is enabled</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlay configuration</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="config_get_user_agent" c:identifier="gst_play_config_get_user_agent" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Return the user agent which has been configured using +gst_play_config_set_user_agent() if any.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the configured agent, or %NULL</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlay configuration</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="config_set_position_update_interval" c:identifier="gst_play_config_set_position_update_interval" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">set desired interval in milliseconds between two position-updated messages. +pass 0 to stop updating the position.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlay configuration</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">interval in ms</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="config_set_seek_accurate" c:identifier="gst_play_config_set_seek_accurate" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Enable or disable accurate seeking. When enabled, elements will try harder +to seek as accurately as possible to the requested seek position. Generally +it will be slower especially for formats that don't have any indexes or +timestamp markers in the stream. + +If accurate seeking is disabled, elements will seek as close as the request +position without slowing down seeking too much. + +Accurate seeking is disabled by default.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlay configuration</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="accurate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">accurate seek or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="config_set_user_agent" c:identifier="gst_play_config_set_user_agent" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Set the user agent to pass to the server if @play needs to connect +to a server during playback. This is typically used when playing HTTP +or RTSP streams.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlay configuration</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="agent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the string to use as user agent</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_audio_streams" c:identifier="gst_play_get_audio_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">A #GList of +matching #GstPlayAudioInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayAudioInfo"/> + </type> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </parameter> + </parameters> + </function> + <function name="get_subtitle_streams" c:identifier="gst_play_get_subtitle_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">A #GList of +matching #GstPlaySubtitleInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlaySubtitleInfo"/> + </type> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </parameter> + </parameters> + </function> + <function name="get_video_streams" c:identifier="gst_play_get_video_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">A #GList of +matching #GstPlayVideoInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayVideoInfo"/> + </type> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </parameter> + </parameters> + </function> + <function name="is_play_message" c:identifier="gst_play_is_play_message" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #gboolean indicating wheter the passes message represents a #GstPlay message or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="visualizations_free" c:identifier="gst_play_visualizations_free" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.c">Frees a %NULL terminated array of #GstPlayVisualization.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="viss" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.c">a %NULL terminated array of #GstPlayVisualization to free</doc> + <type name="PlayVisualization" c:type="GstPlayVisualization**"/> + </parameter> + </parameters> + </function> + <function name="visualizations_get" c:identifier="gst_play_visualizations_get" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.c"> + a %NULL terminated array containing all available + visualizations. Use gst_play_visualizations_free() after + usage.</doc> + <array c:type="GstPlayVisualization**"> + <type name="PlayVisualization"/> + </array> + </return-value> + </function> + <method name="get_audio_video_offset" c:identifier="gst_play_get_audio_video_offset" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Retrieve the current value of audio-video-offset property</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The current value of audio-video-offset in nanoseconds</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_color_balance" c:identifier="gst_play_get_color_balance" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Retrieve the current value of the indicated @type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The current value of @type, between [0,1]. In case of + error -1 is returned.</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlayColorBalanceType</doc> + <type name="PlayColorBalanceType" c:type="GstPlayColorBalanceType"/> + </parameter> + </parameters> + </method> + <method name="get_config" c:identifier="gst_play_get_config" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Get a copy of the current configuration of the play. This configuration +can either be modified and used for the gst_play_set_config() call +or it must be freed after usage.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a copy of the current configuration of @play. Use +gst_structure_free() after usage or gst_play_set_config().</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_audio_track" c:identifier="gst_play_get_current_audio_track" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A Function to get current audio #GstPlayAudioInfo instance.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">current audio track. + +The caller should free it with g_object_unref()</doc> + <type name="PlayAudioInfo" c:type="GstPlayAudioInfo*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_subtitle_track" c:identifier="gst_play_get_current_subtitle_track" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A Function to get current subtitle #GstPlaySubtitleInfo instance.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">current subtitle track. + +The caller should free it with g_object_unref()</doc> + <type name="PlaySubtitleInfo" c:type="GstPlaySubtitleInfo*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_video_track" c:identifier="gst_play_get_current_video_track" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A Function to get current video #GstPlayVideoInfo instance.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">current video track. + +The caller should free it with g_object_unref()</doc> + <type name="PlayVideoInfo" c:type="GstPlayVideoInfo*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_visualization" c:identifier="gst_play_get_current_visualization" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Name of the currently enabled + visualization. + g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="gst_play_get_duration" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Retrieves the duration of the media stream that self represents.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the duration of the currently-playing media stream, in +nanoseconds.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_media_info" c:identifier="gst_play_get_media_info" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A Function to get the current media info #GstPlayMediaInfo instance.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">media info instance. + +The caller should free it with g_object_unref()</doc> + <type name="PlayMediaInfo" c:type="GstPlayMediaInfo*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_message_bus" c:identifier="gst_play_get_message_bus" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">GstPlay API exposes a #GstBus instance which purpose is to provide data +structures representing play-internal events in form of #GstMessage<!-- -->s of +type GST_MESSAGE_APPLICATION. + +Each message carries a "play-message" field of type #GstPlayMessage. +Further fields of the message data are specific to each possible value of +that enumeration. + +Applications can consume the messages asynchronously within their own +event-loop / UI-thread etc. Note that in case the application does not +consume the messages, the bus will accumulate these internally and eventually +fill memory. To avoid that, the bus has to be set "flushing".</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The play message bus instance</doc> + <type name="Gst.Bus" c:type="GstBus*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_multiview_flags" c:identifier="gst_play_get_multiview_flags" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Retrieve the current value of the indicated @type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The current value of @type, Default: 0x00000000 "none</doc> + <type name="GstVideo.VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_multiview_mode" c:identifier="gst_play_get_multiview_mode" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Retrieve the current value of the indicated @type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The current value of @type, Default: -1 "none"</doc> + <type name="GstVideo.VideoMultiviewFramePacking" c:type="GstVideoMultiviewFramePacking"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_mute" c:identifier="gst_play_get_mute" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">%TRUE if the currently-playing stream is muted.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pipeline" c:identifier="gst_play_get_pipeline" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The internal playbin instance. + +The caller should free it with g_object_unref()</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_position" c:identifier="gst_play_get_position" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the absolute position time, in nanoseconds, of the +currently-playing stream.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_rate" c:identifier="gst_play_get_rate" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">current playback rate</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_subtitle_uri" c:identifier="gst_play_get_subtitle_uri" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">current subtitle URI</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">URI of the current external subtitle. + g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_subtitle_video_offset" c:identifier="gst_play_get_subtitle_video_offset" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Retrieve the current value of subtitle-video-offset property</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The current value of subtitle-video-offset in nanoseconds</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri" c:identifier="gst_play_get_uri" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Gets the URI of the currently-playing stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a string containing the URI of the +currently-playing stream. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_video_snapshot" c:identifier="gst_play_get_video_snapshot" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Get a snapshot of the currently selected video stream, if any. The format can be +selected with @format and optional configuration is possible with @config +Currently supported settings are: +- width, height of type G_TYPE_INT +- pixel-aspect-ratio of type GST_TYPE_FRACTION + Except for GST_PLAY_THUMBNAIL_RAW_NATIVE format, if no config is set, pixel-aspect-ratio would be 1/1</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Current video snapshot sample or %NULL on failure</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">output format of the video snapshot</doc> + <type name="PlaySnapshotFormat" c:type="GstPlaySnapshotFormat"/> + </parameter> + <parameter name="config" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Additional configuration</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="get_volume" c:identifier="gst_play_get_volume" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Returns the current volume level, as a percentage between 0 and 1.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the volume as percentage between 0 and 1.</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_color_balance" c:identifier="gst_play_has_color_balance" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Checks whether the @play has color balance support available.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">%TRUE if @play has color balance support. Otherwise, + %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="pause" c:identifier="gst_play_pause" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Pauses the current stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="play" c:identifier="gst_play_play" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Request to play the loaded stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="seek" c:identifier="gst_play_seek" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Seeks the currently-playing stream to the absolute @position time +in nanoseconds.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">position to seek in nanoseconds</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_audio_track" c:identifier="gst_play_set_audio_track" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">%TRUE or %FALSE + +Sets the audio track @stream_index.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="stream_index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">stream index</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_audio_track_enabled" c:identifier="gst_play_set_audio_track_enabled" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Enable or disable the current audio track.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">TRUE or FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_audio_video_offset" c:identifier="gst_play_set_audio_video_offset" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Sets audio-video-offset property by value of @offset</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#gint64 in nanoseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_color_balance" c:identifier="gst_play_set_color_balance" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Sets the current value of the indicated channel @type to the passed +value.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlayColorBalanceType</doc> + <type name="PlayColorBalanceType" c:type="GstPlayColorBalanceType"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The new value for the @type, ranged [0,1]</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_config" c:identifier="gst_play_set_config" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Set the configuration of the play. If the play is already configured, and +the configuration haven't change, this function will return %TRUE. If the +play is not in the GST_PLAY_STATE_STOPPED, this method will return %FALSE +and active configuration will remain. + +@config is a #GstStructure that contains the configuration parameters for +the play. + +This function takes ownership of @config.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">%TRUE when the configuration could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="config" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstStructure</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="set_multiview_flags" c:identifier="gst_play_set_multiview_flags" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Sets the current value of the indicated mode @type to the passed +value.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The new value for the @type</doc> + <type name="GstVideo.VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/> + </parameter> + </parameters> + </method> + <method name="set_multiview_mode" c:identifier="gst_play_set_multiview_mode" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Sets the current value of the indicated mode @type to the passed +value.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">The new value for the @type</doc> + <type name="GstVideo.VideoMultiviewFramePacking" c:type="GstVideoMultiviewFramePacking"/> + </parameter> + </parameters> + </method> + <method name="set_mute" c:identifier="gst_play_set_mute" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">%TRUE if the currently-playing stream should be muted.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Mute state the should be set</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_rate" c:identifier="gst_play_set_rate" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Playback at specified rate</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">playback rate</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_subtitle_track" c:identifier="gst_play_set_subtitle_track" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">%TRUE or %FALSE + +Sets the subtitle stack @stream_index.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="stream_index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">stream index</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_subtitle_track_enabled" c:identifier="gst_play_set_subtitle_track_enabled" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Enable or disable the current subtitle track.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">TRUE or FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_subtitle_uri" c:identifier="gst_play_set_subtitle_uri" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Sets the external subtitle URI. This should be combined with a call to +gst_play_set_subtitle_track_enabled(@play, TRUE) so the subtitles are actually +rendered.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">subtitle URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_subtitle_video_offset" c:identifier="gst_play_set_subtitle_video_offset" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Sets subtitle-video-offset property by value of @offset</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#gint64 in nanoseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_uri" c:identifier="gst_play_set_uri" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Sets the next URI to play.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">next URI to play.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_video_track" c:identifier="gst_play_set_video_track" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">%TRUE or %FALSE + +Sets the video track @stream_index.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="stream_index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">stream index</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_video_track_enabled" c:identifier="gst_play_set_video_track_enabled" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Enable or disable the current video track.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">TRUE or FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_visualization" c:identifier="gst_play_set_visualization" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">%TRUE if the visualizations was set correctly. Otherwise, +%FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">visualization element obtained from +#gst_play_visualizations_get()</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_visualization_enabled" c:identifier="gst_play_set_visualization_enabled" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Enable or disable the visualization.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">TRUE or FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_volume" c:identifier="gst_play_set_volume" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Sets the volume level of the stream as a percentage between 0 and 1.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the new volume level, as a percentage between 0 and 1</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="stop" c:identifier="gst_play_stop" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Stops playing the current stream and resets to the first position +in the stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">#GstPlay instance</doc> + <type name="Play" c:type="GstPlay*"/> + </instance-parameter> + </parameters> + </method> + <property name="audio-video-offset" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="current-audio-track" transfer-ownership="none"> + <type name="PlayAudioInfo"/> + </property> + <property name="current-subtitle-track" transfer-ownership="none"> + <type name="PlaySubtitleInfo"/> + </property> + <property name="current-video-track" transfer-ownership="none"> + <type name="PlayVideoInfo"/> + </property> + <property name="duration" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="media-info" transfer-ownership="none"> + <type name="PlayMediaInfo"/> + </property> + <property name="mute" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="pipeline" transfer-ownership="none"> + <type name="Gst.Element"/> + </property> + <property name="position" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="rate" writable="1" transfer-ownership="none"> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="subtitle-video-offset" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="suburi" writable="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="uri" writable="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="video-multiview-flags" writable="1" transfer-ownership="none"> + <type name="GstVideo.VideoMultiviewFlags"/> + </property> + <property name="video-multiview-mode" writable="1" transfer-ownership="none"> + <type name="GstVideo.VideoMultiviewFramePacking"/> + </property> + <property name="video-renderer" writable="1" transfer-ownership="none"> + <type name="PlayVideoRenderer"/> + </property> + <property name="volume" writable="1" transfer-ownership="none"> + <type name="gdouble" c:type="gdouble"/> + </property> + </class> + <class name="PlayAudioInfo" c:symbol-prefix="play_audio_info" c:type="GstPlayAudioInfo" version="1.20" parent="PlayStreamInfo" glib:type-name="GstPlayAudioInfo" glib:get-type="gst_play_audio_info_get_type" glib:type-struct="PlayAudioInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h">#GstPlayStreamInfo specific to audio streams.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <method name="get_bitrate" c:identifier="gst_play_audio_info_get_bitrate" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the audio bitrate in #GstPlayAudioInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayAudioInfo</doc> + <type name="PlayAudioInfo" c:type="const GstPlayAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_channels" c:identifier="gst_play_audio_info_get_channels" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the number of audio channels in #GstPlayAudioInfo or 0 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayAudioInfo</doc> + <type name="PlayAudioInfo" c:type="const GstPlayAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_language" c:identifier="gst_play_audio_info_get_language" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the language of the stream, or %NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayAudioInfo</doc> + <type name="PlayAudioInfo" c:type="const GstPlayAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_bitrate" c:identifier="gst_play_audio_info_get_max_bitrate" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the audio maximum bitrate in #GstPlayAudioInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayAudioInfo</doc> + <type name="PlayAudioInfo" c:type="const GstPlayAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_sample_rate" c:identifier="gst_play_audio_info_get_sample_rate" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the audio sample rate in #GstPlayAudioInfo or 0 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayAudioInfo</doc> + <type name="PlayAudioInfo" c:type="const GstPlayAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlayAudioInfoClass" c:type="GstPlayAudioInfoClass" disguised="1" glib:is-gtype-struct-for="PlayAudioInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + </record> + <record name="PlayClass" c:type="GstPlayClass" disguised="1" glib:is-gtype-struct-for="Play"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-types.h"/> + </record> + <enumeration name="PlayColorBalanceType" version="1.20" glib:type-name="GstPlayColorBalanceType" glib:get-type="gst_play_color_balance_type_get_type" c:type="GstPlayColorBalanceType"> + <member name="hue" value="3" c:identifier="GST_PLAY_COLOR_BALANCE_HUE" glib:nick="hue"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">hue or color balance.</doc> + </member> + <member name="brightness" value="0" c:identifier="GST_PLAY_COLOR_BALANCE_BRIGHTNESS" glib:nick="brightness"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">brightness or black level.</doc> + </member> + <member name="saturation" value="2" c:identifier="GST_PLAY_COLOR_BALANCE_SATURATION" glib:nick="saturation"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">color saturation or chroma +gain.</doc> + </member> + <member name="contrast" value="1" c:identifier="GST_PLAY_COLOR_BALANCE_CONTRAST" glib:nick="contrast"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">contrast or luma gain.</doc> + </member> + <function name="get_name" c:identifier="gst_play_color_balance_type_get_name" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Gets a string representing the given color balance type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a string with the name of the color + balance type.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlayColorBalanceType</doc> + <type name="PlayColorBalanceType" c:type="GstPlayColorBalanceType"/> + </parameter> + </parameters> + </function> + </enumeration> + <enumeration name="PlayError" version="1.20" glib:type-name="GstPlayError" glib:get-type="gst_play_error_get_type" c:type="GstPlayError" glib:error-domain="gst-play-error-quark"> + <member name="failed" value="0" c:identifier="GST_PLAY_ERROR_FAILED" glib:nick="failed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">generic error.</doc> + </member> + <function name="get_name" c:identifier="gst_play_error_get_name" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Gets a string representing the given error.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a string with the given error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlayError</doc> + <type name="PlayError" c:type="GstPlayError"/> + </parameter> + </parameters> + </function> + <function name="quark" c:identifier="gst_play_error_quark" version="1.20"> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <class name="PlayMediaInfo" c:symbol-prefix="play_media_info" c:type="GstPlayMediaInfo" version="1.20" parent="GObject.Object" glib:type-name="GstPlayMediaInfo" glib:get-type="gst_play_media_info_get_type" glib:type-struct="PlayMediaInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h">Structure containing the media information of a URI.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <method name="get_audio_streams" c:identifier="gst_play_media_info_get_audio_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">A #GList of +matching #GstPlayAudioInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayAudioInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_container_format" c:identifier="gst_play_media_info_get_container_format" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the container format or %NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="gst_play_media_info_get_duration" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">duration of the media.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_image_sample" c:identifier="gst_play_media_info_get_image_sample" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">Function to get the image (or preview-image) stored in taglist. +Application can use `gst_sample_*_()` API's to get caps, buffer etc.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">GstSample or %NULL.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_number_of_audio_streams" c:identifier="gst_play_media_info_get_number_of_audio_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">number of audio streams.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_number_of_streams" c:identifier="gst_play_media_info_get_number_of_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">number of total streams.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_number_of_subtitle_streams" c:identifier="gst_play_media_info_get_number_of_subtitle_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">number of subtitle streams.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_number_of_video_streams" c:identifier="gst_play_media_info_get_number_of_video_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">number of video streams.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_list" c:identifier="gst_play_media_info_get_stream_list" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">A #GList of +matching #GstPlayStreamInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayStreamInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_subtitle_streams" c:identifier="gst_play_media_info_get_subtitle_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">A #GList of +matching #GstPlaySubtitleInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlaySubtitleInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_play_media_info_get_tags" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the tags contained in media info.</doc> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_title" c:identifier="gst_play_media_info_get_title" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the media title or %NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri" c:identifier="gst_play_media_info_get_uri" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the URI associated with #GstPlayMediaInfo.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_video_streams" c:identifier="gst_play_media_info_get_video_streams" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">A #GList of +matching #GstPlayVideoInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayVideoInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_live" c:identifier="gst_play_media_info_is_live" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">%TRUE if the media is live.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_seekable" c:identifier="gst_play_media_info_is_seekable" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">%TRUE if the media is seekable.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayMediaInfo</doc> + <type name="PlayMediaInfo" c:type="const GstPlayMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlayMediaInfoClass" c:type="GstPlayMediaInfoClass" disguised="1" glib:is-gtype-struct-for="PlayMediaInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + </record> + <enumeration name="PlayMessage" version="1.20" glib:type-name="GstPlayMessage" glib:get-type="gst_play_message_get_type" c:type="GstPlayMessage"> + <doc-version xml:space="preserve"> + +Types of messages that will be posted on the play API bus. + +See also #gst_play_get_message_bus()</doc-version> + <member name="uri_loaded" value="0" c:identifier="GST_PLAY_MESSAGE_URI_LOADED" glib:nick="uri-loaded"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Source element was initalized for set URI</doc> + </member> + <member name="position_updated" value="1" c:identifier="GST_PLAY_MESSAGE_POSITION_UPDATED" glib:nick="position-updated"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Sink position changed</doc> + </member> + <member name="duration_changed" value="2" c:identifier="GST_PLAY_MESSAGE_DURATION_CHANGED" glib:nick="duration-changed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Duration of stream changed</doc> + </member> + <member name="state_changed" value="3" c:identifier="GST_PLAY_MESSAGE_STATE_CHANGED" glib:nick="state-changed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">State changed, see #GstPlayState</doc> + </member> + <member name="buffering" value="4" c:identifier="GST_PLAY_MESSAGE_BUFFERING" glib:nick="buffering"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Pipeline is in buffering state, message contains the percentage value of the decoding buffer</doc> + </member> + <member name="end_of_stream" value="5" c:identifier="GST_PLAY_MESSAGE_END_OF_STREAM" glib:nick="end-of-stream"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Sink has received EOS</doc> + </member> + <member name="error" value="6" c:identifier="GST_PLAY_MESSAGE_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Message contains an error</doc> + </member> + <member name="warning" value="7" c:identifier="GST_PLAY_MESSAGE_WARNING" glib:nick="warning"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Message contains an error</doc> + </member> + <member name="video_dimensions_changed" value="8" c:identifier="GST_PLAY_MESSAGE_VIDEO_DIMENSIONS_CHANGED" glib:nick="video-dimensions-changed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Video sink received format in different dimensions than before</doc> + </member> + <member name="media_info_updated" value="9" c:identifier="GST_PLAY_MESSAGE_MEDIA_INFO_UPDATED" glib:nick="media-info-updated"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">A media-info property has changed, message contains current #GstPlayMediaInfo</doc> + </member> + <member name="volume_changed" value="10" c:identifier="GST_PLAY_MESSAGE_VOLUME_CHANGED" glib:nick="volume-changed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">The volume of the audio ouput has changed</doc> + </member> + <member name="mute_changed" value="11" c:identifier="GST_PLAY_MESSAGE_MUTE_CHANGED" glib:nick="mute-changed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Audio muting flag has been toggled</doc> + </member> + <member name="seek_done" value="12" c:identifier="GST_PLAY_MESSAGE_SEEK_DONE" glib:nick="seek-done"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">Any pending seeking operation has been completed</doc> + </member> + <function name="get_name" c:identifier="gst_play_message_get_name" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a string with the name of the message.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="message_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlayMessage</doc> + <type name="PlayMessage" c:type="GstPlayMessage"/> + </parameter> + </parameters> + </function> + <function name="parse_buffering_percent" c:identifier="gst_play_message_parse_buffering_percent" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given buffering-percent @msg and extract the corresponding value</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="percent" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting buffering percent</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="parse_duration_updated" c:identifier="gst_play_message_parse_duration_updated" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given duration @msg and extract the corresponding #GstClockTime</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="duration" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting duration</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </function> + <function name="parse_error" c:identifier="gst_play_message_parse_error" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given error @msg and extract the corresponding #GError</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting error</doc> + <type name="GLib.Error" c:type="GError**"/> + </parameter> + <parameter name="details" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstStructure containing additional details about the error</doc> + <type name="Gst.Structure" c:type="GstStructure**"/> + </parameter> + </parameters> + </function> + <function name="parse_media_info_updated" c:identifier="gst_play_message_parse_media_info_updated" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract the corresponding media information</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="info" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting media info</doc> + <type name="PlayMediaInfo" c:type="GstPlayMediaInfo**"/> + </parameter> + </parameters> + </function> + <function name="parse_muted_changed" c:identifier="gst_play_message_parse_muted_changed" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract the corresponding audio muted state</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="muted" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting audio muted state</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </function> + <function name="parse_position_updated" c:identifier="gst_play_message_parse_position_updated" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given position @msg and extract the corresponding #GstClockTime</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="position" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting position</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </function> + <function name="parse_state_changed" c:identifier="gst_play_message_parse_state_changed" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given state @msg and extract the corresponding #GstPlayState</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="state" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting play state</doc> + <type name="PlayState" c:type="GstPlayState*"/> + </parameter> + </parameters> + </function> + <function name="parse_type" c:identifier="gst_play_message_parse_type" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract its #GstPlayMessage type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting message type</doc> + <type name="PlayMessage" c:type="GstPlayMessage*"/> + </parameter> + </parameters> + </function> + <function name="parse_video_dimensions_changed" c:identifier="gst_play_message_parse_video_dimensions_changed" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract the corresponding video dimensions</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting video width</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting video height</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="parse_volume_changed" c:identifier="gst_play_message_parse_volume_changed" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract the corresponding audio volume</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="volume" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting audio volume</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </function> + <function name="parse_warning" c:identifier="gst_play_message_parse_warning" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given error @msg and extract the corresponding #GError warning</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting warning</doc> + <type name="GLib.Error" c:type="GError**"/> + </parameter> + <parameter name="details" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstStructure containing additional details about the warning</doc> + <type name="Gst.Structure" c:type="GstStructure**"/> + </parameter> + </parameters> + </function> + </enumeration> + <class name="PlaySignalAdapter" c:symbol-prefix="play_signal_adapter" c:type="GstPlaySignalAdapter" version="1.20" parent="GObject.Object" glib:type-name="GstPlaySignalAdapter" glib:get-type="gst_play_signal_adapter_get_type" glib:type-struct="PlaySignalAdapterClass"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-types.h"/> + <constructor name="new" c:identifier="gst_play_signal_adapter_new" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">A bus-watching #GSource will be created and attached to the the +thread-default #GMainContext. The attached callback will emit the +corresponding signal for the message received. Matching signals for play +messages from the bus will be emitted by it on the created adapter object.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">A new #GstPlaySignalAdapter to connect signal handlers to.</doc> + <type name="PlaySignalAdapter" c:type="GstPlaySignalAdapter*"/> + </return-value> + <parameters> + <parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">#GstPlay instance to emit signals for.</doc> + <type name="Play" c:type="GstPlay*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_sync_emit" c:identifier="gst_play_signal_adapter_new_sync_emit" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">Create an adapter that synchronously emits its signals, from the thread in +which the messages have been posted.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">A new #GstPlaySignalAdapter to connect signal handlers to.</doc> + <type name="PlaySignalAdapter" c:type="GstPlaySignalAdapter*"/> + </return-value> + <parameters> + <parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">#GstPlay instance to emit signals for.</doc> + <type name="Play" c:type="GstPlay*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_with_main_context" c:identifier="gst_play_signal_adapter_new_with_main_context" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">A bus-watching #GSource will be created and attached to the @context. The +attached callback will emit the corresponding signal for the message +received. Matching signals for play messages from the bus will be emitted by +it on the created adapter object.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">A new #GstPlaySignalAdapter to connect signal handlers to.</doc> + <type name="PlaySignalAdapter" c:type="GstPlaySignalAdapter*"/> + </return-value> + <parameters> + <parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">#GstPlay instance to emit signals for.</doc> + <type name="Play" c:type="GstPlay*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">A #GMainContext on which the main-loop will process play bus messages on.</doc> + <type name="GLib.MainContext" c:type="GMainContext*"/> + </parameter> + </parameters> + </constructor> + <method name="get_play" c:identifier="gst_play_signal_adapter_get_play" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">The #GstPlay owning this signal adapter.</doc> + <type name="Play" c:type="GstPlay*"/> + </return-value> + <parameters> + <instance-parameter name="adapter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">#GstPlaySignalAdapter instance</doc> + <type name="PlaySignalAdapter" c:type="GstPlaySignalAdapter*"/> + </instance-parameter> + </parameters> + </method> + <property name="play" transfer-ownership="none"> + <type name="Play"/> + </property> + <glib:signal name="buffering" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="duration-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="end-of-stream" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="error" when="last" no-recurse="1" no-hooks="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">Emitted on errors.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">The error</doc> + <type name="GLib.Error"/> + </parameter> + <parameter name="details" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">Additional error details</doc> + <type name="Gst.Structure"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="media-info-updated" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="PlayMediaInfo"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="mute-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="position-updated" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="seek-done" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="state-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="PlayState"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="uri-loaded" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="video-dimensions-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="p0" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="volume-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="warning" when="last" no-recurse="1" no-hooks="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">Emitted on warnings.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">The warning</doc> + <type name="GLib.Error"/> + </parameter> + <parameter name="details" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-signal-adapter.c">Additional warning details</doc> + <type name="Gst.Structure"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="PlaySignalAdapterClass" c:type="GstPlaySignalAdapterClass" disguised="1" glib:is-gtype-struct-for="PlaySignalAdapter"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-types.h"/> + </record> + <enumeration name="PlaySnapshotFormat" version="1.20" c:type="GstPlaySnapshotFormat"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <member name="raw_native" value="0" c:identifier="GST_PLAY_THUMBNAIL_RAW_NATIVE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">raw native format.</doc> + </member> + <member name="raw_xrgb" value="1" c:identifier="GST_PLAY_THUMBNAIL_RAW_xRGB"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">raw xRGB format.</doc> + </member> + <member name="raw_bgrx" value="2" c:identifier="GST_PLAY_THUMBNAIL_RAW_BGRx"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">raw BGRx format.</doc> + </member> + <member name="jpg" value="3" c:identifier="GST_PLAY_THUMBNAIL_JPG"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">jpeg format.</doc> + </member> + <member name="png" value="4" c:identifier="GST_PLAY_THUMBNAIL_PNG"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">png format.</doc> + </member> + </enumeration> + <enumeration name="PlayState" version="1.20" glib:type-name="GstPlayState" glib:get-type="gst_play_state_get_type" c:type="GstPlayState"> + <member name="stopped" value="0" c:identifier="GST_PLAY_STATE_STOPPED" glib:nick="stopped"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">the play is stopped.</doc> + </member> + <member name="buffering" value="1" c:identifier="GST_PLAY_STATE_BUFFERING" glib:nick="buffering"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">the play is buffering.</doc> + </member> + <member name="paused" value="2" c:identifier="GST_PLAY_STATE_PAUSED" glib:nick="paused"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">the play is paused.</doc> + </member> + <member name="playing" value="3" c:identifier="GST_PLAY_STATE_PLAYING" glib:nick="playing"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h">the play is currently playing a +stream.</doc> + </member> + <function name="get_name" c:identifier="gst_play_state_get_name" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Gets a string representing the given state.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a string with the name of the state.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlayState</doc> + <type name="PlayState" c:type="GstPlayState"/> + </parameter> + </parameters> + </function> + </enumeration> + <class name="PlayStreamInfo" c:symbol-prefix="play_stream_info" c:type="GstPlayStreamInfo" version="1.20" parent="GObject.Object" abstract="1" glib:type-name="GstPlayStreamInfo" glib:get-type="gst_play_stream_info_get_type" glib:type-struct="PlayStreamInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h">Base structure for information concerning a media stream. Depending on +the stream type, one can find more media-specific information in +#GstPlayVideoInfo, #GstPlayAudioInfo, #GstPlaySubtitleInfo.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <method name="get_caps" c:identifier="gst_play_stream_info_get_caps" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the #GstCaps of the stream or %NULL if +unknown.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayStreamInfo</doc> + <type name="PlayStreamInfo" c:type="const GstPlayStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_codec" c:identifier="gst_play_stream_info_get_codec" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">A string describing codec used in #GstPlayStreamInfo.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">codec string or %NULL on unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayStreamInfo</doc> + <type name="PlayStreamInfo" c:type="const GstPlayStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_index" c:identifier="gst_play_stream_info_get_index" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">Function to get stream index from #GstPlayStreamInfo instance or -1 if +unknown.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the stream index of this stream.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayStreamInfo</doc> + <type name="PlayStreamInfo" c:type="const GstPlayStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_type" c:identifier="gst_play_stream_info_get_stream_type" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">Function to return human readable name for the stream type +of the given @info (ex: "audio", "video", "subtitle")</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a human readable name</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayStreamInfo</doc> + <type name="PlayStreamInfo" c:type="const GstPlayStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_play_stream_info_get_tags" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the tags contained in this stream.</doc> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayStreamInfo</doc> + <type name="PlayStreamInfo" c:type="const GstPlayStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlayStreamInfoClass" c:type="GstPlayStreamInfoClass" disguised="1" glib:is-gtype-struct-for="PlayStreamInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + </record> + <class name="PlaySubtitleInfo" c:symbol-prefix="play_subtitle_info" c:type="GstPlaySubtitleInfo" version="1.20" parent="PlayStreamInfo" glib:type-name="GstPlaySubtitleInfo" glib:get-type="gst_play_subtitle_info_get_type" glib:type-struct="PlaySubtitleInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h">#GstPlayStreamInfo specific to subtitle streams.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <method name="get_language" c:identifier="gst_play_subtitle_info_get_language" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the language of the stream, or %NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlaySubtitleInfo</doc> + <type name="PlaySubtitleInfo" c:type="const GstPlaySubtitleInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlaySubtitleInfoClass" c:type="GstPlaySubtitleInfoClass" disguised="1" glib:is-gtype-struct-for="PlaySubtitleInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + </record> + <class name="PlayVideoInfo" c:symbol-prefix="play_video_info" c:type="GstPlayVideoInfo" version="1.20" parent="PlayStreamInfo" glib:type-name="GstPlayVideoInfo" glib:get-type="gst_play_video_info_get_type" glib:type-struct="PlayVideoInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h">#GstPlayStreamInfo specific to video streams.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <method name="get_bitrate" c:identifier="gst_play_video_info_get_bitrate" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the current bitrate of video in #GstPlayVideoInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayVideoInfo</doc> + <type name="PlayVideoInfo" c:type="const GstPlayVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_framerate" c:identifier="gst_play_video_info_get_framerate" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayVideoInfo</doc> + <type name="PlayVideoInfo" c:type="const GstPlayVideoInfo*"/> + </instance-parameter> + <parameter name="fps_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">Numerator of frame rate</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="fps_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">Denominator of frame rate</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_height" c:identifier="gst_play_video_info_get_height" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the height of video in #GstPlayVideoInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayVideoInfo</doc> + <type name="PlayVideoInfo" c:type="const GstPlayVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_bitrate" c:identifier="gst_play_video_info_get_max_bitrate" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the maximum bitrate of video in #GstPlayVideoInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayVideoInfo</doc> + <type name="PlayVideoInfo" c:type="const GstPlayVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pixel_aspect_ratio" c:identifier="gst_play_video_info_get_pixel_aspect_ratio" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">Returns the pixel aspect ratio in @par_n and @par_d</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayVideoInfo</doc> + <type name="PlayVideoInfo" c:type="const GstPlayVideoInfo*"/> + </instance-parameter> + <parameter name="par_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">numerator</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="par_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">denominator</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_width" c:identifier="gst_play_video_info_get_width" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">the width of video in #GstPlayVideoInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.c">a #GstPlayVideoInfo</doc> + <type name="PlayVideoInfo" c:type="const GstPlayVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlayVideoInfoClass" c:type="GstPlayVideoInfoClass" disguised="1" glib:is-gtype-struct-for="PlayVideoInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-media-info.h"/> + </record> + <class name="PlayVideoOverlayVideoRenderer" c:symbol-prefix="play_video_overlay_video_renderer" c:type="GstPlayVideoOverlayVideoRenderer" version="1.20" parent="GObject.Object" glib:type-name="GstPlayVideoOverlayVideoRenderer" glib:get-type="gst_play_video_overlay_video_renderer_get_type" glib:type-struct="PlayVideoOverlayVideoRendererClass"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <implements name="PlayVideoRenderer"/> + <function name="new" c:identifier="gst_play_video_overlay_video_renderer_new" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="full"> + <type name="PlayVideoRenderer" c:type="GstPlayVideoRenderer*"/> + </return-value> + <parameters> + <parameter name="window_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">Window handle to use or %NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="new_with_sink" c:identifier="gst_play_video_overlay_video_renderer_new_with_sink" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="full"> + <type name="PlayVideoRenderer" c:type="GstPlayVideoRenderer*"/> + </return-value> + <parameters> + <parameter name="window_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">Window handle to use or %NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="video_sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">the custom video_sink element to be set for the video renderer</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </function> + <method name="expose" c:identifier="gst_play_video_overlay_video_renderer_expose" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">Tell an overlay that it has been exposed. This will redraw the current frame +in the drawable even if the pipeline is PAUSED.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">a #GstPlayVideoOverlayVideoRenderer instance.</doc> + <type name="PlayVideoOverlayVideoRenderer" c:type="GstPlayVideoOverlayVideoRenderer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_render_rectangle" c:identifier="gst_play_video_overlay_video_renderer_get_render_rectangle" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">Return the currently configured render rectangle. See gst_play_video_overlay_video_renderer_set_render_rectangle() +for details.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">a #GstPlayVideoOverlayVideoRenderer instance</doc> + <type name="PlayVideoOverlayVideoRenderer" c:type="GstPlayVideoOverlayVideoRenderer*"/> + </instance-parameter> + <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">the horizontal offset of the render area inside the window</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">the vertical offset of the render area inside the window</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">the width of the render area inside the window</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">the height of the render area inside the window</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_window_handle" c:identifier="gst_play_video_overlay_video_renderer_get_window_handle" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">The currently set, platform specific window +handle</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">#GstPlayVideoRenderer instance</doc> + <type name="PlayVideoOverlayVideoRenderer" c:type="GstPlayVideoOverlayVideoRenderer*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_render_rectangle" c:identifier="gst_play_video_overlay_video_renderer_set_render_rectangle" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">Configure a subregion as a video target within the window set by +gst_play_video_overlay_video_renderer_set_window_handle(). If this is not +used or not supported the video will fill the area of the window set as the +overlay to 100%. By specifying the rectangle, the video can be overlaid to +a specific region of that window only. After setting the new rectangle one +should call gst_play_video_overlay_video_renderer_expose() to force a +redraw. To unset the region pass -1 for the @width and @height parameters. + +This method is needed for non fullscreen video overlay in UI toolkits that +do not support subwindows.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">a #GstPlayVideoOverlayVideoRenderer instance</doc> + <type name="PlayVideoOverlayVideoRenderer" c:type="GstPlayVideoOverlayVideoRenderer*"/> + </instance-parameter> + <parameter name="x" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">the horizontal offset of the render area inside the window</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">the vertical offset of the render area inside the window</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">the width of the render area inside the window</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">the height of the render area inside the window</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_window_handle" c:identifier="gst_play_video_overlay_video_renderer_set_window_handle" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">Sets the platform specific window handle into which the video +should be rendered</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">#GstPlayVideoRenderer instance</doc> + <type name="PlayVideoOverlayVideoRenderer" c:type="GstPlayVideoOverlayVideoRenderer*"/> + </instance-parameter> + <parameter name="window_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.c">handle referencing to the platform specific window</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <property name="video-sink" writable="1" transfer-ownership="none"> + <type name="Gst.Element"/> + </property> + <property name="window-handle" writable="1" construct="1" transfer-ownership="none"> + <type name="gpointer" c:type="gpointer"/> + </property> + </class> + <record name="PlayVideoOverlayVideoRendererClass" c:type="GstPlayVideoOverlayVideoRendererClass" disguised="1" glib:is-gtype-struct-for="PlayVideoOverlayVideoRenderer"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-overlay-video-renderer.h"/> + </record> + <interface name="PlayVideoRenderer" c:symbol-prefix="play_video_renderer" c:type="GstPlayVideoRenderer" version="1.20" glib:type-name="GstPlayVideoRenderer" glib:get-type="gst_play_video_renderer_get_type" glib:type-struct="PlayVideoRendererInterface"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-renderer.h"/> + <virtual-method name="create_video_sink" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-renderer.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="PlayVideoRenderer" c:type="GstPlayVideoRenderer*"/> + </instance-parameter> + <parameter name="play" transfer-ownership="none"> + <type name="Play" c:type="GstPlay*"/> + </parameter> + </parameters> + </virtual-method> + </interface> + <record name="PlayVideoRendererInterface" c:type="GstPlayVideoRendererInterface" glib:is-gtype-struct-for="PlayVideoRenderer"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-renderer.h"/> + <field name="parent_iface"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="create_video_sink" introspectable="0"> + <callback name="create_video_sink" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-video-renderer.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="PlayVideoRenderer" c:type="GstPlayVideoRenderer*"/> + </parameter> + <parameter name="play" transfer-ownership="none"> + <type name="Play" c:type="GstPlay*"/> + </parameter> + </parameters> + </callback> + </field> + </record> + <record name="PlayVisualization" c:type="GstPlayVisualization" version="1.20" glib:type-name="GstPlayVisualization" glib:get-type="gst_play_visualization_get_type" c:symbol-prefix="play_visualization"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.h">A #GstPlayVisualization descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.h"/> + <field name="name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.h">name of the visualization.</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="description" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.h">description of the visualization.</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <method name="copy" c:identifier="gst_play_visualization_copy" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.c">Makes a copy of the #GstPlayVisualization. The result must be +freed using gst_play_visualization_free().</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.c">an allocated copy of @vis.</doc> + <type name="PlayVisualization" c:type="GstPlayVisualization*"/> + </return-value> + <parameters> + <instance-parameter name="vis" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.c">#GstPlayVisualization instance</doc> + <type name="PlayVisualization" c:type="const GstPlayVisualization*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_play_visualization_free" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.c">Frees a #GstPlayVisualization.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="vis" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay-visualization.c">#GstPlayVisualization instance</doc> + <type name="PlayVisualization" c:type="GstPlayVisualization*"/> + </instance-parameter> + </parameters> + </method> + </record> + <function name="play_color_balance_type_get_name" c:identifier="gst_play_color_balance_type_get_name" moved-to="PlayColorBalanceType.get_name" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Gets a string representing the given color balance type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a string with the name of the color + balance type.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlayColorBalanceType</doc> + <type name="PlayColorBalanceType" c:type="GstPlayColorBalanceType"/> + </parameter> + </parameters> + </function> + <function name="play_error_get_name" c:identifier="gst_play_error_get_name" moved-to="PlayError.get_name" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Gets a string representing the given error.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a string with the given error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlayError</doc> + <type name="PlayError" c:type="GstPlayError"/> + </parameter> + </parameters> + </function> + <function name="play_error_quark" c:identifier="gst_play_error_quark" moved-to="PlayError.quark" version="1.20"> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="play_message_get_name" c:identifier="gst_play_message_get_name" moved-to="PlayMessage.get_name" version="1.20"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a string with the name of the message.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="message_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlayMessage</doc> + <type name="PlayMessage" c:type="GstPlayMessage"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_buffering_percent" c:identifier="gst_play_message_parse_buffering_percent" moved-to="PlayMessage.parse_buffering_percent" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given buffering-percent @msg and extract the corresponding value</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="percent" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting buffering percent</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_duration_updated" c:identifier="gst_play_message_parse_duration_updated" moved-to="PlayMessage.parse_duration_updated" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given duration @msg and extract the corresponding #GstClockTime</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="duration" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting duration</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_error" c:identifier="gst_play_message_parse_error" moved-to="PlayMessage.parse_error" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given error @msg and extract the corresponding #GError</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting error</doc> + <type name="GLib.Error" c:type="GError**"/> + </parameter> + <parameter name="details" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstStructure containing additional details about the error</doc> + <type name="Gst.Structure" c:type="GstStructure**"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_media_info_updated" c:identifier="gst_play_message_parse_media_info_updated" moved-to="PlayMessage.parse_media_info_updated" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract the corresponding media information</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="info" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting media info</doc> + <type name="PlayMediaInfo" c:type="GstPlayMediaInfo**"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_muted_changed" c:identifier="gst_play_message_parse_muted_changed" moved-to="PlayMessage.parse_muted_changed" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract the corresponding audio muted state</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="muted" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting audio muted state</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_position_updated" c:identifier="gst_play_message_parse_position_updated" moved-to="PlayMessage.parse_position_updated" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given position @msg and extract the corresponding #GstClockTime</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="position" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting position</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_state_changed" c:identifier="gst_play_message_parse_state_changed" moved-to="PlayMessage.parse_state_changed" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given state @msg and extract the corresponding #GstPlayState</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="state" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting play state</doc> + <type name="PlayState" c:type="GstPlayState*"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_type" c:identifier="gst_play_message_parse_type" moved-to="PlayMessage.parse_type" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract its #GstPlayMessage type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting message type</doc> + <type name="PlayMessage" c:type="GstPlayMessage*"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_video_dimensions_changed" c:identifier="gst_play_message_parse_video_dimensions_changed" moved-to="PlayMessage.parse_video_dimensions_changed" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract the corresponding video dimensions</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting video width</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting video height</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_volume_changed" c:identifier="gst_play_message_parse_volume_changed" moved-to="PlayMessage.parse_volume_changed" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given @msg and extract the corresponding audio volume</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="volume" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting audio volume</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </function> + <function name="play_message_parse_warning" c:identifier="gst_play_message_parse_warning" moved-to="PlayMessage.parse_warning" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Parse the given error @msg and extract the corresponding #GError warning</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstMessage</doc> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">the resulting warning</doc> + <type name="GLib.Error" c:type="GError**"/> + </parameter> + <parameter name="details" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">A #GstStructure containing additional details about the warning</doc> + <type name="Gst.Structure" c:type="GstStructure**"/> + </parameter> + </parameters> + </function> + <function name="play_state_get_name" c:identifier="gst_play_state_get_name" moved-to="PlayState.get_name" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">Gets a string representing the given state.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a string with the name of the state.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/play/gstplay.c">a #GstPlayState</doc> + <type name="PlayState" c:type="GstPlayState"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstPlayer-1.0.gir b/girs/GstPlayer-1.0.gir new file mode 100644 index 0000000000..6e153adef2 --- /dev/null +++ b/girs/GstPlayer-1.0.gir @@ -0,0 +1,2422 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <include name="GstAudio" version="1.0"/> + <include name="GstBase" version="1.0"/> + <include name="GstPbutils" version="1.0"/> + <include name="GstTag" version="1.0"/> + <include name="GstVideo" version="1.0"/> + <package name="gstreamer-player-1.0"/> + <c:include name="gst/player/player.h"/> + <namespace name="GstPlayer" version="1.0" shared-library="libgstplayer-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="IS_PLAYER" c:identifier="GST_IS_PLAYER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_AUDIO_INFO" c:identifier="GST_IS_PLAYER_AUDIO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_AUDIO_INFO_CLASS" c:identifier="GST_IS_PLAYER_AUDIO_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_CLASS" c:identifier="GST_IS_PLAYER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER" c:identifier="GST_IS_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_CLASS" c:identifier="GST_IS_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_MEDIA_INFO" c:identifier="GST_IS_PLAYER_MEDIA_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_MEDIA_INFO_CLASS" c:identifier="GST_IS_PLAYER_MEDIA_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_SIGNAL_DISPATCHER" c:identifier="GST_IS_PLAYER_SIGNAL_DISPATCHER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-signal-dispatcher.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_STREAM_INFO" c:identifier="GST_IS_PLAYER_STREAM_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_STREAM_INFO_CLASS" c:identifier="GST_IS_PLAYER_STREAM_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_SUBTITLE_INFO" c:identifier="GST_IS_PLAYER_SUBTITLE_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_SUBTITLE_INFO_CLASS" c:identifier="GST_IS_PLAYER_SUBTITLE_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_VIDEO_INFO" c:identifier="GST_IS_PLAYER_VIDEO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_VIDEO_INFO_CLASS" c:identifier="GST_IS_PLAYER_VIDEO_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER" c:identifier="GST_IS_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_CLASS" c:identifier="GST_IS_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_PLAYER_VIDEO_RENDERER" c:identifier="GST_IS_PLAYER_VIDEO_RENDERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER" c:identifier="GST_PLAYER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_AUDIO_INFO" c:identifier="GST_PLAYER_AUDIO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_AUDIO_INFO_CLASS" c:identifier="GST_PLAYER_AUDIO_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_CAST" c:identifier="GST_PLAYER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_CLASS" c:identifier="GST_PLAYER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_DEPRECATED_FOR" c:identifier="GST_PLAYER_DEPRECATED_FOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/player-prelude.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_GET_CLASS" c:identifier="GST_PLAYER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER" c:identifier="GST_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_CAST" c:identifier="GST_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_CLASS" c:identifier="GST_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_GET_CLASS" c:identifier="GST_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_MEDIA_INFO" c:identifier="GST_PLAYER_MEDIA_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_MEDIA_INFO_CLASS" c:identifier="GST_PLAYER_MEDIA_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_SIGNAL_DISPATCHER" c:identifier="GST_PLAYER_SIGNAL_DISPATCHER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-signal-dispatcher.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_SIGNAL_DISPATCHER_GET_INTERFACE" c:identifier="GST_PLAYER_SIGNAL_DISPATCHER_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-signal-dispatcher.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_STREAM_INFO" c:identifier="GST_PLAYER_STREAM_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_STREAM_INFO_CLASS" c:identifier="GST_PLAYER_STREAM_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_SUBTITLE_INFO" c:identifier="GST_PLAYER_SUBTITLE_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_SUBTITLE_INFO_CLASS" c:identifier="GST_PLAYER_SUBTITLE_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_VIDEO_INFO" c:identifier="GST_PLAYER_VIDEO_INFO" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_VIDEO_INFO_CLASS" c:identifier="GST_PLAYER_VIDEO_INFO_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER" c:identifier="GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_CAST" c:identifier="GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_CLASS" c:identifier="GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_GET_CLASS" c:identifier="GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_VIDEO_RENDERER" c:identifier="GST_PLAYER_VIDEO_RENDERER" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-renderer.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="PLAYER_VIDEO_RENDERER_GET_INTERFACE" c:identifier="GST_PLAYER_VIDEO_RENDERER_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-renderer.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <class name="Player" c:symbol-prefix="player" c:type="GstPlayer" parent="Gst.Object" glib:type-name="GstPlayer" glib:get-type="gst_player_get_type" glib:type-struct="PlayerClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Starting from GStreamer 1.20, application developers are strongly advised to migrate to #GstPlay. +#GstPlayer will be deprecated in 1.20 and most likely removed by 1.24.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-types.h"/> + <constructor name="new" c:identifier="gst_player_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Creates a new #GstPlayer instance that uses @signal_dispatcher to dispatch +signals to some event loop system, or emits signals directly if NULL is +passed. See gst_player_g_main_context_signal_dispatcher_new(). + +Video is going to be rendered by @video_renderer, or if %NULL is provided +no special video set up will be done and some default handling will be +performed.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a new #GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </return-value> + <parameters> + <parameter name="video_renderer" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">GstPlayerVideoRenderer to use</doc> + <type name="PlayerVideoRenderer" c:type="GstPlayerVideoRenderer*"/> + </parameter> + <parameter name="signal_dispatcher" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">GstPlayerSignalDispatcher to use</doc> + <type name="PlayerSignalDispatcher" c:type="GstPlayerSignalDispatcher*"/> + </parameter> + </parameters> + </constructor> + <function name="config_get_position_update_interval" c:identifier="gst_player_config_get_position_update_interval" version="1.10"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">current position update interval in milliseconds</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayer configuration</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="config_get_seek_accurate" c:identifier="gst_player_config_get_seek_accurate" version="1.12"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">%TRUE if accurate seeking is enabled</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayer configuration</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="config_get_user_agent" c:identifier="gst_player_config_get_user_agent" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Return the user agent which has been configured using +gst_player_config_set_user_agent() if any.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">the configured agent, or %NULL</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayer configuration</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="config_set_position_update_interval" c:identifier="gst_player_config_set_position_update_interval" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">set interval in milliseconds between two position-updated signals. +pass 0 to stop updating the position.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayer configuration</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">interval in ms</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="config_set_seek_accurate" c:identifier="gst_player_config_set_seek_accurate" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Enable or disable accurate seeking. When enabled, elements will try harder +to seek as accurately as possible to the requested seek position. Generally +it will be slower especially for formats that don't have any indexes or +timestamp markers in the stream. + +If accurate seeking is disabled, elements will seek as close as the request +position without slowing down seeking too much. + +Accurate seeking is disabled by default.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayer configuration</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="accurate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">accurate seek or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="config_set_user_agent" c:identifier="gst_player_config_set_user_agent" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Set the user agent to pass to the server if @player needs to connect +to a server during playback. This is typically used when playing HTTP +or RTSP streams.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayer configuration</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="agent" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">the string to use as user agent</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_audio_streams" c:identifier="gst_player_get_audio_streams"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">A #GList of +matching #GstPlayerAudioInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayerAudioInfo"/> + </type> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </parameter> + </parameters> + </function> + <function name="get_subtitle_streams" c:identifier="gst_player_get_subtitle_streams"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">A #GList of +matching #GstPlayerSubtitleInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayerSubtitleInfo"/> + </type> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </parameter> + </parameters> + </function> + <function name="get_video_streams" c:identifier="gst_player_get_video_streams"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">A #GList of +matching #GstPlayerVideoInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayerVideoInfo"/> + </type> + </return-value> + <parameters> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </parameter> + </parameters> + </function> + <function name="visualizations_free" c:identifier="gst_player_visualizations_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.c">Frees a %NULL terminated array of #GstPlayerVisualization.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="viss" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.c">a %NULL terminated array of #GstPlayerVisualization to free</doc> + <type name="PlayerVisualization" c:type="GstPlayerVisualization**"/> + </parameter> + </parameters> + </function> + <function name="visualizations_get" c:identifier="gst_player_visualizations_get"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.c"> + a %NULL terminated array containing all available + visualizations. Use gst_player_visualizations_free() after + usage.</doc> + <array c:type="GstPlayerVisualization**"> + <type name="PlayerVisualization"/> + </array> + </return-value> + </function> + <method name="get_audio_video_offset" c:identifier="gst_player_get_audio_video_offset" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Retrieve the current value of audio-video-offset property</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">The current value of audio-video-offset in nanoseconds</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_color_balance" c:identifier="gst_player_get_color_balance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Retrieve the current value of the indicated @type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">The current value of @type, between [0,1]. In case of + error -1 is returned.</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayerColorBalanceType</doc> + <type name="PlayerColorBalanceType" c:type="GstPlayerColorBalanceType"/> + </parameter> + </parameters> + </method> + <method name="get_config" c:identifier="gst_player_get_config" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Get a copy of the current configuration of the player. This configuration +can either be modified and used for the gst_player_set_config() call +or it must be freed after usage.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a copy of the current configuration of @player. Use +gst_structure_free() after usage or gst_player_set_config().</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_audio_track" c:identifier="gst_player_get_current_audio_track"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">A Function to get current audio #GstPlayerAudioInfo instance.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">current audio track. + +The caller should free it with g_object_unref()</doc> + <type name="PlayerAudioInfo" c:type="GstPlayerAudioInfo*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_subtitle_track" c:identifier="gst_player_get_current_subtitle_track"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">A Function to get current subtitle #GstPlayerSubtitleInfo instance.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">current subtitle track. + +The caller should free it with g_object_unref()</doc> + <type name="PlayerSubtitleInfo" c:type="GstPlayerSubtitleInfo*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_video_track" c:identifier="gst_player_get_current_video_track"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">A Function to get current video #GstPlayerVideoInfo instance.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">current video track. + +The caller should free it with g_object_unref()</doc> + <type name="PlayerVideoInfo" c:type="GstPlayerVideoInfo*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_current_visualization" c:identifier="gst_player_get_current_visualization"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Name of the currently enabled + visualization. + g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="gst_player_get_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Retrieves the duration of the media stream that self represents.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">the duration of the currently-playing media stream, in +nanoseconds.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_media_info" c:identifier="gst_player_get_media_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">A Function to get the current media info #GstPlayerMediaInfo instance.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">media info instance. + +The caller should free it with g_object_unref()</doc> + <type name="PlayerMediaInfo" c:type="GstPlayerMediaInfo*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_multiview_flags" c:identifier="gst_player_get_multiview_flags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Retrieve the current value of the indicated @type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">The current value of @type, Default: 0x00000000 "none</doc> + <type name="GstVideo.VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_multiview_mode" c:identifier="gst_player_get_multiview_mode" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Retrieve the current value of the indicated @type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">The current value of @type, Default: -1 "none"</doc> + <type name="GstVideo.VideoMultiviewFramePacking" c:type="GstVideoMultiviewFramePacking"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_mute" c:identifier="gst_player_get_mute"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">%TRUE if the currently-playing stream is muted.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pipeline" c:identifier="gst_player_get_pipeline"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">The internal playbin instance. + +The caller should free it with g_object_unref()</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_position" c:identifier="gst_player_get_position"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">the absolute position time, in nanoseconds, of the +currently-playing stream.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_rate" c:identifier="gst_player_get_rate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">current playback rate</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_subtitle_uri" c:identifier="gst_player_get_subtitle_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">current subtitle URI</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">URI of the current external subtitle. + g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_subtitle_video_offset" c:identifier="gst_player_get_subtitle_video_offset" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Retrieve the current value of subtitle-video-offset property</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">The current value of subtitle-video-offset in nanoseconds</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri" c:identifier="gst_player_get_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Gets the URI of the currently-playing stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a string containing the URI of the +currently-playing stream. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_video_snapshot" c:identifier="gst_player_get_video_snapshot" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Get a snapshot of the currently selected video stream, if any. The format can be +selected with @format and optional configuration is possible with @config +Currently supported settings are: +- width, height of type G_TYPE_INT +- pixel-aspect-ratio of type GST_TYPE_FRACTION + Except for GST_PLAYER_THUMBNAIL_RAW_NATIVE format, if no config is set, pixel-aspect-ratio would be 1/1</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Current video snapshot sample or %NULL on failure</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">output format of the video snapshot</doc> + <type name="PlayerSnapshotFormat" c:type="GstPlayerSnapshotFormat"/> + </parameter> + <parameter name="config" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Additional configuration</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="get_volume" c:identifier="gst_player_get_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Returns the current volume level, as a percentage between 0 and 1.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">the volume as percentage between 0 and 1.</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_color_balance" c:identifier="gst_player_has_color_balance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Checks whether the @player has color balance support available.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">%TRUE if @player has color balance support. Otherwise, + %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="pause" c:identifier="gst_player_pause"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Pauses the current stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="play" c:identifier="gst_player_play"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Request to play the loaded stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="seek" c:identifier="gst_player_seek"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Seeks the currently-playing stream to the absolute @position time +in nanoseconds.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">position to seek in nanoseconds</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_audio_track" c:identifier="gst_player_set_audio_track"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">%TRUE or %FALSE + +Sets the audio track @stream_idex.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="stream_index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">stream index</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_audio_track_enabled" c:identifier="gst_player_set_audio_track_enabled"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Enable or disable the current audio track.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">TRUE or FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_audio_video_offset" c:identifier="gst_player_set_audio_video_offset" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Sets audio-video-offset property by value of @offset</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#gint64 in nanoseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_color_balance" c:identifier="gst_player_set_color_balance"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Sets the current value of the indicated channel @type to the passed +value.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayerColorBalanceType</doc> + <type name="PlayerColorBalanceType" c:type="GstPlayerColorBalanceType"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">The new value for the @type, ranged [0,1]</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_config" c:identifier="gst_player_set_config" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Set the configuration of the player. If the player is already configured, and +the configuration haven't change, this function will return %TRUE. If the +player is not in the GST_PLAYER_STATE_STOPPED, this method will return %FALSE +and active configuration will remain. + +@config is a #GstStructure that contains the configuration parameters for +the player. + +This function takes ownership of @config.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">%TRUE when the configuration could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="config" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstStructure</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="set_multiview_flags" c:identifier="gst_player_set_multiview_flags" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Sets the current value of the indicated mode @type to the passed +value.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">The new value for the @type</doc> + <type name="GstVideo.VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/> + </parameter> + </parameters> + </method> + <method name="set_multiview_mode" c:identifier="gst_player_set_multiview_mode" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Sets the current value of the indicated mode @type to the passed +value.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">The new value for the @type</doc> + <type name="GstVideo.VideoMultiviewFramePacking" c:type="GstVideoMultiviewFramePacking"/> + </parameter> + </parameters> + </method> + <method name="set_mute" c:identifier="gst_player_set_mute"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">%TRUE if the currently-playing stream should be muted.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Mute state the should be set</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_rate" c:identifier="gst_player_set_rate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Playback at specified rate</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">playback rate</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_subtitle_track" c:identifier="gst_player_set_subtitle_track"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">%TRUE or %FALSE + +Sets the subtitle stack @stream_index.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="stream_index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">stream index</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_subtitle_track_enabled" c:identifier="gst_player_set_subtitle_track_enabled"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Enable or disable the current subtitle track.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">TRUE or FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_subtitle_uri" c:identifier="gst_player_set_subtitle_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Sets the external subtitle URI. This should be combined with a call to +gst_player_set_subtitle_track_enabled(@player, TRUE) so the subtitles are actually +rendered.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">subtitle URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_subtitle_video_offset" c:identifier="gst_player_set_subtitle_video_offset" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Sets subtitle-video-offset property by value of @offset</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#gint64 in nanoseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_uri" c:identifier="gst_player_set_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Sets the next URI to play.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">next URI to play.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_video_track" c:identifier="gst_player_set_video_track"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">%TRUE or %FALSE + +Sets the video track @stream_index.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="stream_index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">stream index</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_video_track_enabled" c:identifier="gst_player_set_video_track_enabled"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Enable or disable the current video track.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">TRUE or FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_visualization" c:identifier="gst_player_set_visualization"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">%TRUE if the visualizations was set correctly. Otherwise, +%FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">visualization element obtained from +#gst_player_visualizations_get()</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_visualization_enabled" c:identifier="gst_player_set_visualization_enabled"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Enable or disable the visualization.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">TRUE or FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_volume" c:identifier="gst_player_set_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Sets the volume level of the stream as a percentage between 0 and 1. + +This volume is a linear factor. For showing the volume in a GUI it +might make sense to first convert from a different format. Volume sliders +should usually use a cubic volume. See gst_stream_volume_convert_volume().</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + <parameter name="val" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">the new volume level, as a percentage between 0 and 1</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="stop" c:identifier="gst_player_stop"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Stops playing the current stream and resets to the first position +in the stream.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="player" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">#GstPlayer instance</doc> + <type name="Player" c:type="GstPlayer*"/> + </instance-parameter> + </parameters> + </method> + <property name="audio-video-offset" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="current-audio-track" transfer-ownership="none"> + <type name="PlayerAudioInfo"/> + </property> + <property name="current-subtitle-track" transfer-ownership="none"> + <type name="PlayerSubtitleInfo"/> + </property> + <property name="current-video-track" transfer-ownership="none"> + <type name="PlayerVideoInfo"/> + </property> + <property name="duration" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="media-info" transfer-ownership="none"> + <type name="PlayerMediaInfo"/> + </property> + <property name="mute" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="pipeline" transfer-ownership="none"> + <type name="Gst.Element"/> + </property> + <property name="position" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </property> + <property name="rate" writable="1" transfer-ownership="none"> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="signal-dispatcher" readable="0" writable="1" construct-only="1" transfer-ownership="none"> + <type name="PlayerSignalDispatcher"/> + </property> + <property name="subtitle-video-offset" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="suburi" writable="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="uri" writable="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="video-multiview-flags" writable="1" transfer-ownership="none"> + <type name="GstVideo.VideoMultiviewFlags"/> + </property> + <property name="video-multiview-mode" writable="1" transfer-ownership="none"> + <type name="GstVideo.VideoMultiviewFramePacking"/> + </property> + <property name="video-renderer" writable="1" construct-only="1" transfer-ownership="none"> + <type name="PlayerVideoRenderer"/> + </property> + <property name="volume" writable="1" transfer-ownership="none"> + <type name="gdouble" c:type="gdouble"/> + </property> + <glib:signal name="buffering" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="duration-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="end-of-stream" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="error" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GLib.Error"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="media-info-updated" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="PlayerMediaInfo"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="mute-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="position-updated" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="seek-done" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="state-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="PlayerState"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="uri-loaded" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="video-dimensions-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="p0" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="volume-changed" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="warning" when="last" no-recurse="1" no-hooks="1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GLib.Error"/> + </parameter> + </parameters> + </glib:signal> + </class> + <class name="PlayerAudioInfo" c:symbol-prefix="player_audio_info" c:type="GstPlayerAudioInfo" parent="PlayerStreamInfo" glib:type-name="GstPlayerAudioInfo" glib:get-type="gst_player_audio_info_get_type" glib:type-struct="PlayerAudioInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h">#GstPlayerStreamInfo specific to audio streams.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <method name="get_bitrate" c:identifier="gst_player_audio_info_get_bitrate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the audio bitrate in #GstPlayerAudioInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerAudioInfo</doc> + <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_channels" c:identifier="gst_player_audio_info_get_channels"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the number of audio channels in #GstPlayerAudioInfo or 0 if +unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerAudioInfo</doc> + <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_language" c:identifier="gst_player_audio_info_get_language"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the language of the stream, or NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerAudioInfo</doc> + <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_bitrate" c:identifier="gst_player_audio_info_get_max_bitrate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the audio maximum bitrate in #GstPlayerAudioInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerAudioInfo</doc> + <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_sample_rate" c:identifier="gst_player_audio_info_get_sample_rate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the audio sample rate in #GstPlayerAudioInfo or 0 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerAudioInfo</doc> + <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlayerAudioInfoClass" c:type="GstPlayerAudioInfoClass" disguised="1" glib:is-gtype-struct-for="PlayerAudioInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + </record> + <record name="PlayerClass" c:type="GstPlayerClass" disguised="1" glib:is-gtype-struct-for="Player"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-types.h"/> + </record> + <enumeration name="PlayerColorBalanceType" glib:type-name="GstPlayerColorBalanceType" glib:get-type="gst_player_color_balance_type_get_type" c:type="GstPlayerColorBalanceType"> + <member name="hue" value="3" c:identifier="GST_PLAYER_COLOR_BALANCE_HUE" glib:nick="hue"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h">hue or color balance.</doc> + </member> + <member name="brightness" value="0" c:identifier="GST_PLAYER_COLOR_BALANCE_BRIGHTNESS" glib:nick="brightness"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h">brightness or black level.</doc> + </member> + <member name="saturation" value="2" c:identifier="GST_PLAYER_COLOR_BALANCE_SATURATION" glib:nick="saturation"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h">color saturation or chroma +gain.</doc> + </member> + <member name="contrast" value="1" c:identifier="GST_PLAYER_COLOR_BALANCE_CONTRAST" glib:nick="contrast"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h">contrast or luma gain.</doc> + </member> + <function name="get_name" c:identifier="gst_player_color_balance_type_get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Gets a string representing the given color balance type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a string with the name of the color + balance type.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayerColorBalanceType</doc> + <type name="PlayerColorBalanceType" c:type="GstPlayerColorBalanceType"/> + </parameter> + </parameters> + </function> + </enumeration> + <enumeration name="PlayerError" glib:type-name="GstPlayerError" glib:get-type="gst_player_error_get_type" c:type="GstPlayerError" glib:error-domain="gst-player-error-quark"> + <member name="failed" value="0" c:identifier="GST_PLAYER_ERROR_FAILED" glib:nick="failed"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h">generic error.</doc> + </member> + <function name="get_name" c:identifier="gst_player_error_get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Gets a string representing the given error.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a string with the given error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayerError</doc> + <type name="PlayerError" c:type="GstPlayerError"/> + </parameter> + </parameters> + </function> + <function name="quark" c:identifier="gst_player_error_quark"> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + </enumeration> + <class name="PlayerGMainContextSignalDispatcher" c:symbol-prefix="player_g_main_context_signal_dispatcher" c:type="GstPlayerGMainContextSignalDispatcher" parent="GObject.Object" glib:type-name="GstPlayerGMainContextSignalDispatcher" glib:get-type="gst_player_g_main_context_signal_dispatcher_get_type" glib:type-struct="PlayerGMainContextSignalDispatcherClass"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h"/> + <implements name="PlayerSignalDispatcher"/> + <function name="new" c:identifier="gst_player_g_main_context_signal_dispatcher_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.c">Creates a new GstPlayerSignalDispatcher that uses @application_context, +or the thread default one if %NULL is used. See gst_player_new().</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.c">the new GstPlayerSignalDispatcher</doc> + <type name="PlayerSignalDispatcher" c:type="GstPlayerSignalDispatcher*"/> + </return-value> + <parameters> + <parameter name="application_context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.c">GMainContext to use or %NULL</doc> + <type name="GLib.MainContext" c:type="GMainContext*"/> + </parameter> + </parameters> + </function> + <property name="application-context" writable="1" construct-only="1" transfer-ownership="none"> + <type name="GLib.MainContext"/> + </property> + </class> + <record name="PlayerGMainContextSignalDispatcherClass" c:type="GstPlayerGMainContextSignalDispatcherClass" disguised="1" glib:is-gtype-struct-for="PlayerGMainContextSignalDispatcher"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h"/> + </record> + <class name="PlayerMediaInfo" c:symbol-prefix="player_media_info" c:type="GstPlayerMediaInfo" parent="GObject.Object" glib:type-name="GstPlayerMediaInfo" glib:get-type="gst_player_media_info_get_type" glib:type-struct="PlayerMediaInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h">Structure containing the media information of a URI.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <method name="get_audio_streams" c:identifier="gst_player_media_info_get_audio_streams"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">A #GList of +matching #GstPlayerAudioInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayerAudioInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_container_format" c:identifier="gst_player_media_info_get_container_format"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the container format or %NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="gst_player_media_info_get_duration"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">duration of the media or %GST_CLOCK_TIME_NONE if unknown.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_image_sample" c:identifier="gst_player_media_info_get_image_sample"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">Function to get the image (or preview-image) stored in taglist. +Application can use `gst_sample_*_()` API's to get caps, buffer etc.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">GstSample or %NULL.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_number_of_audio_streams" c:identifier="gst_player_media_info_get_number_of_audio_streams" version="1.12"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">number of audio streams or 0 if unknown.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_number_of_streams" c:identifier="gst_player_media_info_get_number_of_streams" version="1.12"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">number of total streams or 0 if unknown.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_number_of_subtitle_streams" c:identifier="gst_player_media_info_get_number_of_subtitle_streams" version="1.12"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">number of subtitle streams or 0 if unknown.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_number_of_video_streams" c:identifier="gst_player_media_info_get_number_of_video_streams" version="1.12"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">number of video streams or 0 if unknown.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_list" c:identifier="gst_player_media_info_get_stream_list"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">A #GList of +matching #GstPlayerStreamInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayerStreamInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_subtitle_streams" c:identifier="gst_player_media_info_get_subtitle_streams"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">A #GList of +matching #GstPlayerSubtitleInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayerSubtitleInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_player_media_info_get_tags"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the tags contained in media info.</doc> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_title" c:identifier="gst_player_media_info_get_title"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the media title or %NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri" c:identifier="gst_player_media_info_get_uri"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the URI associated with #GstPlayerMediaInfo.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_video_streams" c:identifier="gst_player_media_info_get_video_streams"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">A #GList of +matching #GstPlayerVideoInfo.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="PlayerVideoInfo"/> + </type> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_live" c:identifier="gst_player_media_info_is_live"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">%TRUE if the media is live.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_seekable" c:identifier="gst_player_media_info_is_seekable"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">%TRUE if the media is seekable.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerMediaInfo</doc> + <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlayerMediaInfoClass" c:type="GstPlayerMediaInfoClass" disguised="1" glib:is-gtype-struct-for="PlayerMediaInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + </record> + <interface name="PlayerSignalDispatcher" c:symbol-prefix="player_signal_dispatcher" c:type="GstPlayerSignalDispatcher" glib:type-name="GstPlayerSignalDispatcher" glib:get-type="gst_player_signal_dispatcher_get_type" glib:type-struct="PlayerSignalDispatcherInterface"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-signal-dispatcher.h"/> + <virtual-method name="dispatch"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-signal-dispatcher.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="PlayerSignalDispatcher" c:type="GstPlayerSignalDispatcher*"/> + </instance-parameter> + <parameter name="player" transfer-ownership="none"> + <type name="Player" c:type="GstPlayer*"/> + </parameter> + <parameter name="emitter" transfer-ownership="none" scope="notified" closure="2" destroy="3"> + <type name="PlayerSignalDispatcherFunc" c:type="GstPlayerSignalDispatcherFunc"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy" transfer-ownership="none" scope="async"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </virtual-method> + </interface> + <callback name="PlayerSignalDispatcherFunc" c:type="GstPlayerSignalDispatcherFunc"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-signal-dispatcher.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="PlayerSignalDispatcherInterface" c:type="GstPlayerSignalDispatcherInterface" glib:is-gtype-struct-for="PlayerSignalDispatcher"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-signal-dispatcher.h"/> + <field name="parent_iface"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="dispatch"> + <callback name="dispatch"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-signal-dispatcher.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="PlayerSignalDispatcher" c:type="GstPlayerSignalDispatcher*"/> + </parameter> + <parameter name="player" transfer-ownership="none"> + <type name="Player" c:type="GstPlayer*"/> + </parameter> + <parameter name="emitter" transfer-ownership="none" scope="notified" closure="3" destroy="4"> + <type name="PlayerSignalDispatcherFunc" c:type="GstPlayerSignalDispatcherFunc"/> + </parameter> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy" transfer-ownership="none" scope="async"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </callback> + </field> + </record> + <enumeration name="PlayerSnapshotFormat" c:type="GstPlayerSnapshotFormat"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <member name="raw_native" value="0" c:identifier="GST_PLAYER_THUMBNAIL_RAW_NATIVE"> + </member> + <member name="raw_xrgb" value="1" c:identifier="GST_PLAYER_THUMBNAIL_RAW_xRGB"> + </member> + <member name="raw_bgrx" value="2" c:identifier="GST_PLAYER_THUMBNAIL_RAW_BGRx"> + </member> + <member name="jpg" value="3" c:identifier="GST_PLAYER_THUMBNAIL_JPG"> + </member> + <member name="png" value="4" c:identifier="GST_PLAYER_THUMBNAIL_PNG"> + </member> + </enumeration> + <enumeration name="PlayerState" glib:type-name="GstPlayerState" glib:get-type="gst_player_state_get_type" c:type="GstPlayerState"> + <member name="stopped" value="0" c:identifier="GST_PLAYER_STATE_STOPPED" glib:nick="stopped"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h">the player is stopped.</doc> + </member> + <member name="buffering" value="1" c:identifier="GST_PLAYER_STATE_BUFFERING" glib:nick="buffering"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h">the player is buffering.</doc> + </member> + <member name="paused" value="2" c:identifier="GST_PLAYER_STATE_PAUSED" glib:nick="paused"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h">the player is paused.</doc> + </member> + <member name="playing" value="3" c:identifier="GST_PLAYER_STATE_PLAYING" glib:nick="playing"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h">the player is currently playing a +stream.</doc> + </member> + <function name="get_name" c:identifier="gst_player_state_get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Gets a string representing the given state.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a string with the name of the state.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayerState</doc> + <type name="PlayerState" c:type="GstPlayerState"/> + </parameter> + </parameters> + </function> + </enumeration> + <class name="PlayerStreamInfo" c:symbol-prefix="player_stream_info" c:type="GstPlayerStreamInfo" parent="GObject.Object" abstract="1" glib:type-name="GstPlayerStreamInfo" glib:get-type="gst_player_stream_info_get_type" glib:type-struct="PlayerStreamInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h">Base structure for information concerning a media stream. Depending on +the stream type, one can find more media-specific information in +#GstPlayerVideoInfo, #GstPlayerAudioInfo, #GstPlayerSubtitleInfo.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <method name="get_caps" c:identifier="gst_player_stream_info_get_caps"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the #GstCaps of the stream.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerStreamInfo</doc> + <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_codec" c:identifier="gst_player_stream_info_get_codec"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">A string describing codec used in #GstPlayerStreamInfo.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">codec string or %NULL on unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerStreamInfo</doc> + <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_index" c:identifier="gst_player_stream_info_get_index"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">Function to get stream index from #GstPlayerStreamInfo instance or -1 if +unknown.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the stream index of this stream.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerStreamInfo</doc> + <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_type" c:identifier="gst_player_stream_info_get_stream_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">Function to return human readable name for the stream type +of the given @info (ex: "audio", "video", "subtitle")</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a human readable name</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerStreamInfo</doc> + <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tags" c:identifier="gst_player_stream_info_get_tags"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the tags contained in this stream.</doc> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerStreamInfo</doc> + <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlayerStreamInfoClass" c:type="GstPlayerStreamInfoClass" disguised="1" glib:is-gtype-struct-for="PlayerStreamInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + </record> + <class name="PlayerSubtitleInfo" c:symbol-prefix="player_subtitle_info" c:type="GstPlayerSubtitleInfo" parent="PlayerStreamInfo" glib:type-name="GstPlayerSubtitleInfo" glib:get-type="gst_player_subtitle_info_get_type" glib:type-struct="PlayerSubtitleInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h">#GstPlayerStreamInfo specific to subtitle streams.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <method name="get_language" c:identifier="gst_player_subtitle_info_get_language"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the language of the stream, or %NULL if unknown.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerSubtitleInfo</doc> + <type name="PlayerSubtitleInfo" c:type="const GstPlayerSubtitleInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlayerSubtitleInfoClass" c:type="GstPlayerSubtitleInfoClass" disguised="1" glib:is-gtype-struct-for="PlayerSubtitleInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + </record> + <class name="PlayerVideoInfo" c:symbol-prefix="player_video_info" c:type="GstPlayerVideoInfo" parent="PlayerStreamInfo" glib:type-name="GstPlayerVideoInfo" glib:get-type="gst_player_video_info_get_type" glib:type-struct="PlayerVideoInfoClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h">#GstPlayerStreamInfo specific to video streams.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <method name="get_bitrate" c:identifier="gst_player_video_info_get_bitrate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the current bitrate of video in #GstPlayerVideoInfo or -1 if +unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerVideoInfo</doc> + <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_framerate" c:identifier="gst_player_video_info_get_framerate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerVideoInfo</doc> + <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/> + </instance-parameter> + <parameter name="fps_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">Numerator of frame rate</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="fps_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">Denominator of frame rate</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_height" c:identifier="gst_player_video_info_get_height"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the height of video in #GstPlayerVideoInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerVideoInfo</doc> + <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_bitrate" c:identifier="gst_player_video_info_get_max_bitrate"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the maximum bitrate of video in #GstPlayerVideoInfo or -1 if +unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerVideoInfo</doc> + <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pixel_aspect_ratio" c:identifier="gst_player_video_info_get_pixel_aspect_ratio"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">Returns the pixel aspect ratio in @par_n and @par_d</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerVideoInfo</doc> + <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/> + </instance-parameter> + <parameter name="par_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">numerator</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="par_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">denominator</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_width" c:identifier="gst_player_video_info_get_width"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">the width of video in #GstPlayerVideoInfo or -1 if unknown.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.c">a #GstPlayerVideoInfo</doc> + <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/> + </instance-parameter> + </parameters> + </method> + </class> + <record name="PlayerVideoInfoClass" c:type="GstPlayerVideoInfoClass" disguised="1" glib:is-gtype-struct-for="PlayerVideoInfo"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-media-info.h"/> + </record> + <class name="PlayerVideoOverlayVideoRenderer" c:symbol-prefix="player_video_overlay_video_renderer" c:type="GstPlayerVideoOverlayVideoRenderer" parent="GObject.Object" glib:type-name="GstPlayerVideoOverlayVideoRenderer" glib:get-type="gst_player_video_overlay_video_renderer_get_type" glib:type-struct="PlayerVideoOverlayVideoRendererClass"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <implements name="PlayerVideoRenderer"/> + <function name="new" c:identifier="gst_player_video_overlay_video_renderer_new"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="full"> + <type name="PlayerVideoRenderer" c:type="GstPlayerVideoRenderer*"/> + </return-value> + <parameters> + <parameter name="window_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">Window handle to use or %NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="new_with_sink" c:identifier="gst_player_video_overlay_video_renderer_new_with_sink" version="1.12"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="full"> + <type name="PlayerVideoRenderer" c:type="GstPlayerVideoRenderer*"/> + </return-value> + <parameters> + <parameter name="window_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">Window handle to use or %NULL</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="video_sink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">the custom video_sink element to be set for the video renderer</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </function> + <method name="expose" c:identifier="gst_player_video_overlay_video_renderer_expose"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">Tell an overlay that it has been exposed. This will redraw the current frame +in the drawable even if the pipeline is PAUSED.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">a #GstPlayerVideoOverlayVideoRenderer instance.</doc> + <type name="PlayerVideoOverlayVideoRenderer" c:type="GstPlayerVideoOverlayVideoRenderer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_render_rectangle" c:identifier="gst_player_video_overlay_video_renderer_get_render_rectangle"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">Return the currently configured render rectangle. See gst_player_video_overlay_video_renderer_set_render_rectangle() +for details.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">a #GstPlayerVideoOverlayVideoRenderer instance</doc> + <type name="PlayerVideoOverlayVideoRenderer" c:type="GstPlayerVideoOverlayVideoRenderer*"/> + </instance-parameter> + <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">the horizontal offset of the render area inside the window</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">the vertical offset of the render area inside the window</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">the width of the render area inside the window</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">the height of the render area inside the window</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_window_handle" c:identifier="gst_player_video_overlay_video_renderer_get_window_handle"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">The currently set, platform specific window +handle</doc> + <type name="gpointer" c:type="gpointer"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">#GstPlayerVideoRenderer instance</doc> + <type name="PlayerVideoOverlayVideoRenderer" c:type="GstPlayerVideoOverlayVideoRenderer*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_render_rectangle" c:identifier="gst_player_video_overlay_video_renderer_set_render_rectangle"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">Configure a subregion as a video target within the window set by +gst_player_video_overlay_video_renderer_set_window_handle(). If this is not +used or not supported the video will fill the area of the window set as the +overlay to 100%. By specifying the rectangle, the video can be overlaid to +a specific region of that window only. After setting the new rectangle one +should call gst_player_video_overlay_video_renderer_expose() to force a +redraw. To unset the region pass -1 for the @width and @height parameters. + +This method is needed for non fullscreen video overlay in UI toolkits that +do not support subwindows.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">a #GstPlayerVideoOverlayVideoRenderer instance</doc> + <type name="PlayerVideoOverlayVideoRenderer" c:type="GstPlayerVideoOverlayVideoRenderer*"/> + </instance-parameter> + <parameter name="x" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">the horizontal offset of the render area inside the window</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">the vertical offset of the render area inside the window</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">the width of the render area inside the window</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">the height of the render area inside the window</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_window_handle" c:identifier="gst_player_video_overlay_video_renderer_set_window_handle"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">Sets the platform specific window handle into which the video +should be rendered</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">#GstPlayerVideoRenderer instance</doc> + <type name="PlayerVideoOverlayVideoRenderer" c:type="GstPlayerVideoOverlayVideoRenderer*"/> + </instance-parameter> + <parameter name="window_handle" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.c">handle referencing to the platform specific window</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <property name="video-sink" writable="1" transfer-ownership="none"> + <type name="Gst.Element"/> + </property> + <property name="window-handle" writable="1" construct="1" transfer-ownership="none"> + <type name="gpointer" c:type="gpointer"/> + </property> + </class> + <record name="PlayerVideoOverlayVideoRendererClass" c:type="GstPlayerVideoOverlayVideoRendererClass" disguised="1" glib:is-gtype-struct-for="PlayerVideoOverlayVideoRenderer"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h"/> + </record> + <interface name="PlayerVideoRenderer" c:symbol-prefix="player_video_renderer" c:type="GstPlayerVideoRenderer" glib:type-name="GstPlayerVideoRenderer" glib:get-type="gst_player_video_renderer_get_type" glib:type-struct="PlayerVideoRendererInterface"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-renderer.h"/> + <virtual-method name="create_video_sink" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-renderer.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="PlayerVideoRenderer" c:type="GstPlayerVideoRenderer*"/> + </instance-parameter> + <parameter name="player" transfer-ownership="none"> + <type name="Player" c:type="GstPlayer*"/> + </parameter> + </parameters> + </virtual-method> + </interface> + <record name="PlayerVideoRendererInterface" c:type="GstPlayerVideoRendererInterface" glib:is-gtype-struct-for="PlayerVideoRenderer"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-renderer.h"/> + <field name="parent_iface"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="create_video_sink" introspectable="0"> + <callback name="create_video_sink" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-video-renderer.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="PlayerVideoRenderer" c:type="GstPlayerVideoRenderer*"/> + </parameter> + <parameter name="player" transfer-ownership="none"> + <type name="Player" c:type="GstPlayer*"/> + </parameter> + </parameters> + </callback> + </field> + </record> + <record name="PlayerVisualization" c:type="GstPlayerVisualization" glib:type-name="GstPlayerVisualization" glib:get-type="gst_player_visualization_get_type" c:symbol-prefix="player_visualization"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.h">A #GstPlayerVisualization descriptor.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.h"/> + <field name="name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.h">name of the visualization.</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="description" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.h">description of the visualization.</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <method name="copy" c:identifier="gst_player_visualization_copy"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.c">Makes a copy of the #GstPlayerVisualization. The result must be +freed using gst_player_visualization_free().</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.c">an allocated copy of @vis.</doc> + <type name="PlayerVisualization" c:type="GstPlayerVisualization*"/> + </return-value> + <parameters> + <instance-parameter name="vis" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.c">#GstPlayerVisualization instance</doc> + <type name="PlayerVisualization" c:type="const GstPlayerVisualization*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_player_visualization_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.c">Frees a #GstPlayerVisualization.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="vis" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer-visualization.c">#GstPlayerVisualization instance</doc> + <type name="PlayerVisualization" c:type="GstPlayerVisualization*"/> + </instance-parameter> + </parameters> + </method> + </record> + <function name="player_color_balance_type_get_name" c:identifier="gst_player_color_balance_type_get_name" moved-to="PlayerColorBalanceType.get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Gets a string representing the given color balance type.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a string with the name of the color + balance type.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayerColorBalanceType</doc> + <type name="PlayerColorBalanceType" c:type="GstPlayerColorBalanceType"/> + </parameter> + </parameters> + </function> + <function name="player_error_get_name" c:identifier="gst_player_error_get_name" moved-to="PlayerError.get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Gets a string representing the given error.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a string with the given error.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayerError</doc> + <type name="PlayerError" c:type="GstPlayerError"/> + </parameter> + </parameters> + </function> + <function name="player_error_quark" c:identifier="gst_player_error_quark" moved-to="PlayerError.quark"> + <return-value transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </return-value> + </function> + <function name="player_state_get_name" c:identifier="gst_player_state_get_name" moved-to="PlayerState.get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">Gets a string representing the given state.</doc> + <source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a string with the name of the state.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c">a #GstPlayerState</doc> + <type name="PlayerState" c:type="GstPlayerState"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstRtp-1.0.gir b/girs/GstRtp-1.0.gir new file mode 100644 index 0000000000..4dad967d07 --- /dev/null +++ b/girs/GstRtp-1.0.gir @@ -0,0 +1,6561 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <include name="GstBase" version="1.0"/> + <package name="gstreamer-rtp-1.0"/> + <c:include name="gst/rtp/rtp.h"/> + <namespace name="GstRtp" version="1.0" shared-library="libgstrtp-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="IS_RTP_BASE_AUDIO_PAYLOAD" c:identifier="GST_IS_RTP_BASE_AUDIO_PAYLOAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTP_BASE_AUDIO_PAYLOAD_CLASS" c:identifier="GST_IS_RTP_BASE_AUDIO_PAYLOAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTP_BASE_DEPAYLOAD" c:identifier="GST_IS_RTP_BASE_DEPAYLOAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTP_BASE_DEPAYLOAD_CLASS" c:identifier="GST_IS_RTP_BASE_DEPAYLOAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTP_BASE_PAYLOAD" c:identifier="GST_IS_RTP_BASE_PAYLOAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTP_BASE_PAYLOAD_CLASS" c:identifier="GST_IS_RTP_BASE_PAYLOAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTP_HEADER_EXTENSION" c:identifier="GST_IS_RTP_HEADER_EXTENSION" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTP_HEADER_EXTENSION_CLASS" c:identifier="GST_IS_RTP_HEADER_EXTENSION_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <record name="RTCPBuffer" c:type="GstRTCPBuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Note: The API in this module is not yet declared stable. + +The GstRTPCBuffer helper functions makes it easy to parse and create regular +#GstBuffer objects that contain compound RTCP packets. These buffers are typically +of 'application/x-rtcp' #GstCaps. + +An RTCP buffer consists of 1 or more #GstRTCPPacket structures that you can +retrieve with gst_rtcp_buffer_get_first_packet(). #GstRTCPPacket acts as a pointer +into the RTCP buffer; you can move to the next packet with +gst_rtcp_packet_move_to_next().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <field name="buffer" writable="1"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="map" writable="1"> + <type name="Gst.MapInfo" c:type="GstMapInfo"/> + </field> + <method name="add_packet" c:identifier="gst_rtcp_buffer_add_packet"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Add a new packet of @type to @rtcp. @packet will point to the newly created +packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if the packet could be created. This function returns %FALSE +if the max mtu is exceeded for the buffer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtcp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTCP buffer</doc> + <type name="RTCPBuffer" c:type="GstRTCPBuffer*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the #GstRTCPType of the new packet</doc> + <type name="RTCPType" c:type="GstRTCPType"/> + </parameter> + <parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">pointer to new packet</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </parameter> + </parameters> + </method> + <method name="get_first_packet" c:identifier="gst_rtcp_buffer_get_first_packet"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Initialize a new #GstRTCPPacket pointer that points to the first packet in +@rtcp.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if the packet existed in @rtcp.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtcp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTCP buffer</doc> + <type name="RTCPBuffer" c:type="GstRTCPBuffer*"/> + </instance-parameter> + <parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </parameter> + </parameters> + </method> + <method name="get_packet_count" c:identifier="gst_rtcp_buffer_get_packet_count"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the number of RTCP packets in @rtcp.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the number of RTCP packets in @rtcp.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="rtcp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTCP buffer</doc> + <type name="RTCPBuffer" c:type="GstRTCPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="unmap" c:identifier="gst_rtcp_buffer_unmap"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Finish @rtcp after being constructed. This function is usually called +after gst_rtcp_buffer_map() and after adding the RTCP items to the new buffer. + +The function adjusts the size of @rtcp with the total length of all the +added packets.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtcp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a buffer with an RTCP packet</doc> + <type name="RTCPBuffer" c:type="GstRTCPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <function name="map" c:identifier="gst_rtcp_buffer_map"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Open @buffer for reading or writing, depending on @flags. The resulting RTCP +buffer state is stored in @rtcp.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a buffer with an RTCP packet</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">flags for the mapping</doc> + <type name="Gst.MapFlags" c:type="GstMapFlags"/> + </parameter> + <parameter name="rtcp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">resulting #GstRTCPBuffer</doc> + <type name="RTCPBuffer" c:type="GstRTCPBuffer*"/> + </parameter> + </parameters> + </function> + <function name="new" c:identifier="gst_rtcp_buffer_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Create a new buffer for constructing RTCP packets. The packet will have a +maximum size of @mtu.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">A newly allocated buffer.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="mtu" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the maximum mtu size.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="new_copy_data" c:identifier="gst_rtcp_buffer_new_copy_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Create a new buffer and set the data to a copy of @len +bytes of @data and the size to @len. The data will be freed when the buffer +is freed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">A newly allocated buffer with a copy of @data and of size @len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">data for the new buffer</doc> + <array length="1" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the length of data</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="new_take_data" c:identifier="gst_rtcp_buffer_new_take_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Create a new buffer and set the data and size of the buffer to @data and @len +respectively. @data will be freed when the buffer is unreffed, so this +function transfers ownership of @data to the new buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">A newly allocated buffer with @data and of size @len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">data for the new buffer</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the length of data</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="validate" c:identifier="gst_rtcp_buffer_validate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Check if the data pointed to by @buffer is a valid RTCP packet using +gst_rtcp_buffer_validate_data().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if @buffer is a valid RTCP packet.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the buffer to validate</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="validate_data" c:identifier="gst_rtcp_buffer_validate_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Check if the @data and @size point to the data of a valid compound, +non-reduced size RTCP packet. +Use this function to validate a packet before using the other functions in +this module.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if the data points to a valid RTCP packet.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the data to validate</doc> + <array length="1" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the length of @data to validate</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="validate_data_reduced" c:identifier="gst_rtcp_buffer_validate_data_reduced" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Check if the @data and @size point to the data of a valid RTCP packet. +Use this function to validate a packet before using the other functions in +this module. + +This function is updated to support reduced size rtcp packets according to +RFC 5506 and will validate full compound RTCP packets as well as reduced +size RTCP packets.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if the data points to a valid RTCP packet.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the data to validate</doc> + <array length="1" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the length of @data to validate</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="validate_reduced" c:identifier="gst_rtcp_buffer_validate_reduced" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Check if the data pointed to by @buffer is a valid RTCP packet using +gst_rtcp_buffer_validate_reduced().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if @buffer is a valid RTCP packet.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the buffer to validate</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="RTCPFBType" glib:type-name="GstRTCPFBType" glib:get-type="gst_rtcpfb_type_get_type" c:type="GstRTCPFBType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Different types of feedback messages.</doc> + <member name="fb_type_invalid" value="0" c:identifier="GST_RTCP_FB_TYPE_INVALID" glib:nick="fb-type-invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Invalid type</doc> + </member> + <member name="rtpfb_type_nack" value="1" c:identifier="GST_RTCP_RTPFB_TYPE_NACK" glib:nick="rtpfb-type-nack"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Generic NACK</doc> + </member> + <member name="rtpfb_type_tmmbr" value="3" c:identifier="GST_RTCP_RTPFB_TYPE_TMMBR" glib:nick="rtpfb-type-tmmbr"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Temporary Maximum Media Stream Bit Rate Request</doc> + </member> + <member name="rtpfb_type_tmmbn" value="4" c:identifier="GST_RTCP_RTPFB_TYPE_TMMBN" glib:nick="rtpfb-type-tmmbn"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Temporary Maximum Media Stream Bit Rate + Notification</doc> + </member> + <member name="rtpfb_type_rtcp_sr_req" value="5" c:identifier="GST_RTCP_RTPFB_TYPE_RTCP_SR_REQ" glib:nick="rtpfb-type-rtcp-sr-req"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Request an SR packet for early + synchronization</doc> + </member> + <member name="rtpfb_type_twcc" value="15" c:identifier="GST_RTCP_RTPFB_TYPE_TWCC" glib:nick="rtpfb-type-twcc"> + </member> + <member name="psfb_type_pli" value="1" c:identifier="GST_RTCP_PSFB_TYPE_PLI" glib:nick="psfb-type-pli"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Picture Loss Indication</doc> + </member> + <member name="psfb_type_sli" value="2" c:identifier="GST_RTCP_PSFB_TYPE_SLI" glib:nick="psfb-type-sli"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Slice Loss Indication</doc> + </member> + <member name="psfb_type_rpsi" value="3" c:identifier="GST_RTCP_PSFB_TYPE_RPSI" glib:nick="psfb-type-rpsi"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Reference Picture Selection Indication</doc> + </member> + <member name="psfb_type_afb" value="15" c:identifier="GST_RTCP_PSFB_TYPE_AFB" glib:nick="psfb-type-afb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Application layer Feedback</doc> + </member> + <member name="psfb_type_fir" value="4" c:identifier="GST_RTCP_PSFB_TYPE_FIR" glib:nick="psfb-type-fir"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Full Intra Request Command</doc> + </member> + <member name="psfb_type_tstr" value="5" c:identifier="GST_RTCP_PSFB_TYPE_TSTR" glib:nick="psfb-type-tstr"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Temporal-Spatial Trade-off Request</doc> + </member> + <member name="psfb_type_tstn" value="6" c:identifier="GST_RTCP_PSFB_TYPE_TSTN" glib:nick="psfb-type-tstn"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Temporal-Spatial Trade-off Notification</doc> + </member> + <member name="psfb_type_vbcn" value="7" c:identifier="GST_RTCP_PSFB_TYPE_VBCN" glib:nick="psfb-type-vbcn"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Video Back Channel Message</doc> + </member> + </enumeration> + <record name="RTCPPacket" c:type="GstRTCPPacket"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Data structure that points to a packet at @offset in @buffer. +The size of the structure is made public to allow stack allocations.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <field name="rtcp" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">pointer to RTCP buffer</doc> + <type name="RTCPBuffer" c:type="GstRTCPBuffer*"/> + </field> + <field name="offset" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">offset of packet in buffer data</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="padding" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="count" readable="0" private="1"> + <type name="guint8" c:type="guint8"/> + </field> + <field name="type" readable="0" private="1"> + <type name="RTCPType" c:type="GstRTCPType"/> + </field> + <field name="length" readable="0" private="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="item_offset" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="item_count" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="entry_offset" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <method name="add_profile_specific_ext" c:identifier="gst_rtcp_packet_add_profile_specific_ext" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Add profile-specific extension @data to @packet. If @packet already +contains profile-specific extension @data will be appended to the existing +extension.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if the profile specific extension data was added.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR or RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">profile-specific data</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">length of the profile-specific data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_rb" c:identifier="gst_rtcp_packet_add_rb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Add a new report block to @packet with the given values.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if the packet was created. This function can return %FALSE if +the max MTU is exceeded or the number of report blocks is greater than +#GST_RTCP_MAX_RB_COUNT.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR or RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">data source being reported</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="fractionlost" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">fraction lost since last SR/RR</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="packetslost" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the cumululative number of packets lost</doc> + <type name="gint32" c:type="gint32"/> + </parameter> + <parameter name="exthighestseq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the extended last sequence number received</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="jitter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the interarrival jitter</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="lsr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the last SR packet from this source</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="dlsr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the delay since last SR packet</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="app_get_data" c:identifier="gst_rtcp_packet_app_get_data" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the application-dependent data attached to a RTPFB or PSFB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">A pointer to the data</doc> + <type name="guint8" c:type="guint8*"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid APP #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="app_get_data_length" c:identifier="gst_rtcp_packet_app_get_data_length" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the length of the application-dependent data attached to an APP +@packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The length of data in 32-bit words.</doc> + <type name="guint16" c:type="guint16"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid APP #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="app_get_name" c:identifier="gst_rtcp_packet_app_get_name" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the name field of the APP @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The 4-byte name field, not zero-terminated.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid APP #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="app_get_ssrc" c:identifier="gst_rtcp_packet_app_get_ssrc" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the SSRC/CSRC field of the APP @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The SSRC/CSRC.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid APP #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="app_get_subtype" c:identifier="gst_rtcp_packet_app_get_subtype" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the subtype field of the APP @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The subtype.</doc> + <type name="guint8" c:type="guint8"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid APP #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="app_set_data_length" c:identifier="gst_rtcp_packet_app_set_data_length" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the length of the application-dependent data attached to an APP +@packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if there was enough space in the packet to add this much +data.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid APP #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="wordlen" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Length of the data in 32-bit words</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="app_set_name" c:identifier="gst_rtcp_packet_app_set_name" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the name field of the APP @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid APP #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">4-byte ASCII name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="app_set_ssrc" c:identifier="gst_rtcp_packet_app_set_ssrc" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the SSRC/CSRC field of the APP @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid APP #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">SSRC/CSRC of the packet</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="app_set_subtype" c:identifier="gst_rtcp_packet_app_set_subtype" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the subtype field of the APP @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid APP #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="subtype" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">subtype of the packet</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="bye_add_ssrc" c:identifier="gst_rtcp_packet_bye_add_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Add @ssrc to the BYE @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if the ssrc was added. This function can return %FALSE if +the max MTU is exceeded or the number of sources blocks is greater than +#GST_RTCP_MAX_BYE_SSRC_COUNT.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid BYE #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">an SSRC to add</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="bye_add_ssrcs" c:identifier="gst_rtcp_packet_bye_add_ssrcs"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Adds @len SSRCs in @ssrc to BYE @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if the all the SSRCs were added. This function can return %FALSE if +the max MTU is exceeded or the number of sources blocks is greater than +#GST_RTCP_MAX_BYE_SSRC_COUNT.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid BYE #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">an array of SSRCs to add</doc> + <array length="1" zero-terminated="0" c:type="guint32*"> + <type name="guint32" c:type="guint32"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">number of elements in @ssrc</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="bye_get_nth_ssrc" c:identifier="gst_rtcp_packet_bye_get_nth_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the @nth SSRC of the BYE @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The @nth SSRC of @packet.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid BYE #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="nth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the nth SSRC to get</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="bye_get_reason" c:identifier="gst_rtcp_packet_bye_get_reason"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the reason in @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The reason for the BYE @packet or NULL if the packet did not contain +a reason string. The string must be freed with g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid BYE #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="bye_get_reason_len" c:identifier="gst_rtcp_packet_bye_get_reason_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the length of the reason string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The length of the reason string or 0 when there is no reason string +present.</doc> + <type name="guint8" c:type="guint8"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid BYE #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="bye_get_ssrc_count" c:identifier="gst_rtcp_packet_bye_get_ssrc_count"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the number of SSRC fields in @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The number of SSRC fields in @packet.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid BYE #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="bye_set_reason" c:identifier="gst_rtcp_packet_bye_set_reason"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the reason string to @reason in @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if the string could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid BYE #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="reason" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a reason string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="copy_profile_specific_ext" c:identifier="gst_rtcp_packet_copy_profile_specific_ext" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The profile-specific extension data is copied into a new allocated +memory area @data. This must be freed with g_free() after usage.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if there was valid data.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR or RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result profile-specific data</doc> + <array length="1" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + <parameter name="len" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">length of the profile-specific extension data</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="fb_get_fci" c:identifier="gst_rtcp_packet_fb_get_fci"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the Feedback Control Information attached to a RTPFB or PSFB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a pointer to the FCI</doc> + <type name="guint8" c:type="guint8*"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTPFB or PSFB #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="fb_get_fci_length" c:identifier="gst_rtcp_packet_fb_get_fci_length"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the length of the Feedback Control Information attached to a +RTPFB or PSFB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The length of the FCI in 32-bit words.</doc> + <type name="guint16" c:type="guint16"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTPFB or PSFB #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="fb_get_media_ssrc" c:identifier="gst_rtcp_packet_fb_get_media_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the media SSRC field of the RTPFB or PSFB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the media SSRC.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTPFB or PSFB #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="fb_get_sender_ssrc" c:identifier="gst_rtcp_packet_fb_get_sender_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the sender SSRC field of the RTPFB or PSFB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the sender SSRC.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTPFB or PSFB #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="fb_get_type" c:identifier="gst_rtcp_packet_fb_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the feedback message type of the FB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The feedback message type.</doc> + <type name="RTCPFBType" c:type="GstRTCPFBType"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTPFB or PSFB #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="fb_set_fci_length" c:identifier="gst_rtcp_packet_fb_set_fci_length"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the length of the Feedback Control Information attached to a +RTPFB or PSFB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if there was enough space in the packet to add this much FCI</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTPFB or PSFB #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="wordlen" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Length of the FCI in 32-bit words</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="fb_set_media_ssrc" c:identifier="gst_rtcp_packet_fb_set_media_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the media SSRC field of the RTPFB or PSFB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTPFB or PSFB #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a media SSRC</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="fb_set_sender_ssrc" c:identifier="gst_rtcp_packet_fb_set_sender_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the sender SSRC field of the RTPFB or PSFB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTPFB or PSFB #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a sender SSRC</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="fb_set_type" c:identifier="gst_rtcp_packet_fb_set_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the feedback message type of the FB @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RTPFB or PSFB #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the #GstRTCPFBType to set</doc> + <type name="RTCPFBType" c:type="GstRTCPFBType"/> + </parameter> + </parameters> + </method> + <method name="get_count" c:identifier="gst_rtcp_packet_get_count"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the count field in @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The count field in @packet or -1 if @packet does not point to a +valid packet.</doc> + <type name="guint8" c:type="guint8"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_length" c:identifier="gst_rtcp_packet_get_length"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the length field of @packet. This is the length of the packet in +32-bit words minus one.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The length field of @packet.</doc> + <type name="guint16" c:type="guint16"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_padding" c:identifier="gst_rtcp_packet_get_padding"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the packet padding of the packet pointed to by @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">If the packet has the padding bit set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_profile_specific_ext" c:identifier="gst_rtcp_packet_get_profile_specific_ext" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if there was valid data.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR or RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result profile-specific data</doc> + <array length="1" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + <parameter name="len" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result length of the profile-specific data</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_profile_specific_ext_length" c:identifier="gst_rtcp_packet_get_profile_specific_ext_length" version="1.10"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The number of 32-bit words containing profile-specific extension + data from @packet.</doc> + <type name="guint16" c:type="guint16"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR or RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_rb" c:identifier="gst_rtcp_packet_get_rb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Parse the values of the @nth report block in @packet and store the result in +the values.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR or RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="nth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the nth report block in @packet</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="ssrc" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result for data source being reported</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="fractionlost" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result for fraction lost since last SR/RR</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="packetslost" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result for the cumululative number of packets lost</doc> + <type name="gint32" c:type="gint32*"/> + </parameter> + <parameter name="exthighestseq" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result for the extended last sequence number received</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="jitter" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result for the interarrival jitter</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="lsr" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result for the last SR packet from this source</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="dlsr" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result for the delay since last SR packet</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="get_rb_count" c:identifier="gst_rtcp_packet_get_rb_count"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the number of report blocks in @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The number of report blocks in @packet.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR or RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_type" c:identifier="gst_rtcp_packet_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the packet type of the packet pointed to by @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The packet type or GST_RTCP_TYPE_INVALID when @packet is not +pointing to a valid packet.</doc> + <type name="RTCPType" c:type="GstRTCPType"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="move_to_next" c:identifier="gst_rtcp_packet_move_to_next"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Move the packet pointer @packet to the next packet in the payload. +Use gst_rtcp_buffer_get_first_packet() to initialize @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if @packet is pointing to a valid packet after calling this +function.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove" c:identifier="gst_rtcp_packet_remove"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Removes the packet pointed to by @packet and moves pointer to the next one</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if @packet is pointing to a valid packet after calling this +function.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="rr_get_ssrc" c:identifier="gst_rtcp_packet_rr_get_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the ssrc field of the RR @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the ssrc.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="rr_set_ssrc" c:identifier="gst_rtcp_packet_rr_set_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the ssrc field of the RR @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the SSRC to set</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="sdes_add_entry" c:identifier="gst_rtcp_packet_sdes_add_entry"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Add a new SDES entry to the current item in @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if the item could be added, %FALSE if the MTU has been +reached.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the #GstRTCPSDESType of the SDES entry</doc> + <type name="RTCPSDESType" c:type="GstRTCPSDESType"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the data length</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the data</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + </parameters> + </method> + <method name="sdes_add_item" c:identifier="gst_rtcp_packet_sdes_add_item"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Add a new SDES item for @ssrc to @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if the item could be added, %FALSE if the maximum amount of +items has been exceeded for the SDES packet or the MTU has been reached.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the SSRC of the new item to add</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="sdes_copy_entry" c:identifier="gst_rtcp_packet_sdes_copy_entry"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">This function is like gst_rtcp_packet_sdes_get_entry() but it returns a +null-terminated copy of the data instead. use g_free() after usage.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if there was valid data.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result of the entry type</doc> + <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/> + </parameter> + <parameter name="len" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result length of the entry data</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result entry data</doc> + <array length="1" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + </parameters> + </method> + <method name="sdes_first_entry" c:identifier="gst_rtcp_packet_sdes_first_entry"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Move to the first SDES entry in the current item.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if there was a first entry.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="sdes_first_item" c:identifier="gst_rtcp_packet_sdes_first_item"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Move to the first SDES item in @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if there was a first item.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="sdes_get_entry" c:identifier="gst_rtcp_packet_sdes_get_entry"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the data of the current SDES item entry. @type (when not NULL) will +contain the type of the entry. @data (when not NULL) will point to @len +bytes. + +When @type refers to a text item, @data will point to a UTF8 string. Note +that this UTF8 string is NOT null-terminated. Use +gst_rtcp_packet_sdes_copy_entry() to get a null-terminated copy of the entry.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if there was valid data.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result of the entry type</doc> + <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/> + </parameter> + <parameter name="len" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result length of the entry data</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result entry data</doc> + <array length="1" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + </parameters> + </method> + <method name="sdes_get_item_count" c:identifier="gst_rtcp_packet_sdes_get_item_count"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the number of items in the SDES packet @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">The number of items in @packet.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="sdes_get_ssrc" c:identifier="gst_rtcp_packet_sdes_get_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the SSRC of the current SDES item.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the SSRC of the current item.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="sdes_next_entry" c:identifier="gst_rtcp_packet_sdes_next_entry"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Move to the next SDES entry in the current item.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%TRUE if there was a next entry.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="sdes_next_item" c:identifier="gst_rtcp_packet_sdes_next_item"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Move to the next SDES item in @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if there was a next item.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SDES #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_rb" c:identifier="gst_rtcp_packet_set_rb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the @nth new report block in @packet with the given values. + +Note: Not implemented.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR or RR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="nth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the nth report block to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">data source being reported</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="fractionlost" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">fraction lost since last SR/RR</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="packetslost" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the cumululative number of packets lost</doc> + <type name="gint32" c:type="gint32"/> + </parameter> + <parameter name="exthighestseq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the extended last sequence number received</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="jitter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the interarrival jitter</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="lsr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the last SR packet from this source</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="dlsr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the delay since last SR packet</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="sr_get_sender_info" c:identifier="gst_rtcp_packet_sr_get_sender_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Parse the SR sender info and store the values.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result SSRC</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="ntptime" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result NTP time</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="rtptime" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result RTP time</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="packet_count" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result packet count</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="octet_count" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">result octet count</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="sr_set_sender_info" c:identifier="gst_rtcp_packet_sr_set_sender_info"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Set the given values in the SR packet @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid SR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the SSRC</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="ntptime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the NTP time</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="rtptime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the RTP time</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="packet_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the packet count</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + <parameter name="octet_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the octet count</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="xr_first_rb" c:identifier="gst_rtcp_packet_xr_first_rb" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Move to the first extended report block in XR @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the extended report block type of the XR @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Parse the extended report block for DLRR report block type.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the SSRC of the receiver.</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="last_rr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Retrieve the packet receipt time of @seq which ranges in [begin_seq, end_seq).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Parse the Packet Recept Times Report Block from a XR @packet</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Parse the extended report block for Loss RLE and Duplicated LRE block type.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Retrieve actual chunk data.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the index of chunk to retrieve.</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="chunk" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Get the ssrc field of the XR @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the ssrc.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="packet" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Extract a basic information from static summary report block of XR @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the SSRC of the source.</doc> + <type name="guint32" c:type="guint32*"/> + </parameter> + <parameter name="begin_seq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Extract the value of ttl for ipv4, or hop limit for ipv6.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the gap threshold.</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="rx_config" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the residual echo return loss value.</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="gmin" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Move to the next extended report block in XR @packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a valid XR #GstRTCPPacket</doc> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </instance-parameter> + </parameters> + </method> + </record> + <enumeration name="RTCPSDESType" glib:type-name="GstRTCPSDESType" glib:get-type="gst_rtcpsdes_type_get_type" c:type="GstRTCPSDESType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Different types of SDES content.</doc> + <member name="invalid" value="-1" c:identifier="GST_RTCP_SDES_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Invalid SDES entry</doc> + </member> + <member name="end" value="0" c:identifier="GST_RTCP_SDES_END" glib:nick="end"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">End of SDES list</doc> + </member> + <member name="cname" value="1" c:identifier="GST_RTCP_SDES_CNAME" glib:nick="cname"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Canonical name</doc> + </member> + <member name="name" value="2" c:identifier="GST_RTCP_SDES_NAME" glib:nick="name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">User name</doc> + </member> + <member name="email" value="3" c:identifier="GST_RTCP_SDES_EMAIL" glib:nick="email"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">User's electronic mail address</doc> + </member> + <member name="phone" value="4" c:identifier="GST_RTCP_SDES_PHONE" glib:nick="phone"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">User's phone number</doc> + </member> + <member name="loc" value="5" c:identifier="GST_RTCP_SDES_LOC" glib:nick="loc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Geographic user location</doc> + </member> + <member name="tool" value="6" c:identifier="GST_RTCP_SDES_TOOL" glib:nick="tool"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Name of application or tool</doc> + </member> + <member name="note" value="7" c:identifier="GST_RTCP_SDES_NOTE" glib:nick="note"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Notice about the source</doc> + </member> + <member name="priv" value="8" c:identifier="GST_RTCP_SDES_PRIV" glib:nick="priv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Private extensions</doc> + </member> + <member name="h323_caddr" value="9" c:identifier="GST_RTCP_SDES_H323_CADDR" glib:nick="h323-caddr"> + </member> + <member name="apsi" value="10" c:identifier="GST_RTCP_SDES_APSI" glib:nick="apsi"> + </member> + <member name="rgrp" value="11" c:identifier="GST_RTCP_SDES_RGRP" glib:nick="rgrp"> + </member> + <member name="rtp_stream_id" value="12" c:identifier="GST_RTCP_SDES_RTP_STREAM_ID" glib:nick="rtp-stream-id"> + </member> + <member name="repaired_rtp_stream_id" value="13" c:identifier="GST_RTCP_SDES_REPAIRED_RTP_STREAM_ID" glib:nick="repaired-rtp-stream-id"> + </member> + <member name="ccid" value="14" c:identifier="GST_RTCP_SDES_CCID" glib:nick="ccid"> + </member> + <member name="mid" value="15" c:identifier="GST_RTCP_SDES_MID" glib:nick="mid"> + </member> + </enumeration> + <enumeration name="RTCPType" glib:type-name="GstRTCPType" glib:get-type="gst_rtcp_type_get_type" c:type="GstRTCPType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Different RTCP packet types.</doc> + <member name="invalid" value="0" c:identifier="GST_RTCP_TYPE_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Invalid type</doc> + </member> + <member name="sr" value="200" c:identifier="GST_RTCP_TYPE_SR" glib:nick="sr"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Sender report</doc> + </member> + <member name="rr" value="201" c:identifier="GST_RTCP_TYPE_RR" glib:nick="rr"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Receiver report</doc> + </member> + <member name="sdes" value="202" c:identifier="GST_RTCP_TYPE_SDES" glib:nick="sdes"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Source description</doc> + </member> + <member name="bye" value="203" c:identifier="GST_RTCP_TYPE_BYE" glib:nick="bye"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Goodbye</doc> + </member> + <member name="app" value="204" c:identifier="GST_RTCP_TYPE_APP" glib:nick="app"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Application defined</doc> + </member> + <member name="rtpfb" value="205" c:identifier="GST_RTCP_TYPE_RTPFB" glib:nick="rtpfb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Transport layer feedback.</doc> + </member> + <member name="psfb" value="206" c:identifier="GST_RTCP_TYPE_PSFB" glib:nick="psfb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Payload-specific feedback.</doc> + </member> + <member name="xr" value="207" c:identifier="GST_RTCP_TYPE_XR" glib:nick="xr"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">VoIP Metrics Report Block</doc> + </member> + </enumeration> + <constant name="RTCP_MAX_BYE_SSRC_COUNT" value="31" c:type="GST_RTCP_MAX_BYE_SSRC_COUNT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">The maximum amount of SSRCs in a BYE packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTCP_MAX_RB_COUNT" value="31" c:type="GST_RTCP_MAX_RB_COUNT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">The maximum amount of Receiver report blocks in RR and SR messages.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTCP_MAX_SDES" value="255" c:type="GST_RTCP_MAX_SDES"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">The maximum text length for an SDES item.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTCP_MAX_SDES_ITEM_COUNT" value="31" c:type="GST_RTCP_MAX_SDES_ITEM_COUNT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">The maximum amount of SDES items.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTCP_REDUCED_SIZE_VALID_MASK" value="49400" c:type="GST_RTCP_REDUCED_SIZE_VALID_MASK"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Mask for version and packet type pair allowing reduced size +packets, basically it accepts other types than RR and SR</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTCP_VALID_MASK" value="57598" c:type="GST_RTCP_VALID_MASK"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Mask for version, padding bit and packet type pair</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTCP_VALID_VALUE" value="200" c:type="GST_RTCP_VALID_VALUE"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">Valid value for the first two bytes of an RTCP packet after applying +#GST_RTCP_VALID_MASK to them.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTCP_VERSION" value="2" c:type="GST_RTCP_VERSION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h">The supported RTCP version 2.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <type name="gint" c:type="gint"/> + </constant> + <class name="RTPBaseAudioPayload" c:symbol-prefix="rtp_base_audio_payload" c:type="GstRTPBaseAudioPayload" parent="RTPBasePayload" glib:type-name="GstRTPBaseAudioPayload" glib:get-type="gst_rtp_base_audio_payload_get_type" glib:type-struct="RTPBaseAudioPayloadClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Provides a base class for audio RTP payloaders for frame or sample based +audio codecs (constant bitrate) + +This class derives from GstRTPBasePayload. It can be used for payloading +audio codecs. It will only work with constant bitrate codecs. It supports +both frame based and sample based codecs. It takes care of packing up the +audio data into RTP packets and filling up the headers accordingly. The +payloading is done based on the maximum MTU (mtu) and the maximum time per +packet (max-ptime). The general idea is to divide large data buffers into +smaller RTP packets. The RTP packet size is the minimum of either the MTU, +max-ptime (if set) or available data. The RTP packet size is always larger or +equal to min-ptime (if set). If min-ptime is not set, any residual data is +sent in a last RTP packet. In the case of frame based codecs, the resulting +RTP packets always contain full frames. + +## Usage + +To use this base class, your child element needs to call either +gst_rtp_base_audio_payload_set_frame_based() or +gst_rtp_base_audio_payload_set_sample_based(). This is usually done in the +element's `_init()` function. Then, the child element must call either +gst_rtp_base_audio_payload_set_frame_options(), +gst_rtp_base_audio_payload_set_sample_options() or +gst_rtp_base_audio_payload_set_samplebits_options. Since +GstRTPBaseAudioPayload derives from GstRTPBasePayload, the child element +must set any variables or call/override any functions required by that base +class. The child element does not need to override any other functions +specific to GstRTPBaseAudioPayload.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <method name="flush" c:identifier="gst_rtp_base_audio_payload_flush"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Create an RTP buffer and store @payload_len bytes of the adapter as the +payload. Set the timestamp on the new buffer to @timestamp before pushing +the buffer downstream. + +If @payload_len is -1, all pending bytes will be flushed. If @timestamp is +-1, the timestamp will be calculated automatically.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a #GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="baseaudiopayload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBaseAudioPayload" c:type="GstRTPBaseAudioPayload*"/> + </instance-parameter> + <parameter name="payload_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">length of payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_adapter" c:identifier="gst_rtp_base_audio_payload_get_adapter"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Gets the internal adapter used by the depayloader.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a #GstAdapter.</doc> + <type name="GstBase.Adapter" c:type="GstAdapter*"/> + </return-value> + <parameters> + <instance-parameter name="rtpbaseaudiopayload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a #GstRTPBaseAudioPayload</doc> + <type name="RTPBaseAudioPayload" c:type="GstRTPBaseAudioPayload*"/> + </instance-parameter> + </parameters> + </method> + <method name="push" c:identifier="gst_rtp_base_audio_payload_push"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Create an RTP buffer and store @payload_len bytes of @data as the +payload. Set the timestamp on the new buffer to @timestamp before pushing +the buffer downstream.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a #GstFlowReturn</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="baseaudiopayload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBaseAudioPayload" c:type="GstRTPBaseAudioPayload*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">data to set as payload</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="payload_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">length of payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_frame_based" c:identifier="gst_rtp_base_audio_payload_set_frame_based"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Tells #GstRTPBaseAudioPayload that the child element is for a frame based +audio codec</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtpbaseaudiopayload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a pointer to the element.</doc> + <type name="RTPBaseAudioPayload" c:type="GstRTPBaseAudioPayload*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_frame_options" c:identifier="gst_rtp_base_audio_payload_set_frame_options"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Sets the options for frame based audio codecs.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtpbaseaudiopayload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a pointer to the element.</doc> + <type name="RTPBaseAudioPayload" c:type="GstRTPBaseAudioPayload*"/> + </instance-parameter> + <parameter name="frame_duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">The duraction of an audio frame in milliseconds.</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="frame_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">The size of an audio frame in bytes.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_sample_based" c:identifier="gst_rtp_base_audio_payload_set_sample_based"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Tells #GstRTPBaseAudioPayload that the child element is for a sample based +audio codec</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtpbaseaudiopayload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a pointer to the element.</doc> + <type name="RTPBaseAudioPayload" c:type="GstRTPBaseAudioPayload*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_sample_options" c:identifier="gst_rtp_base_audio_payload_set_sample_options"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Sets the options for sample based audio codecs.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtpbaseaudiopayload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a pointer to the element.</doc> + <type name="RTPBaseAudioPayload" c:type="GstRTPBaseAudioPayload*"/> + </instance-parameter> + <parameter name="sample_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Size per sample in bytes.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_samplebits_options" c:identifier="gst_rtp_base_audio_payload_set_samplebits_options"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Sets the options for sample based audio codecs.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtpbaseaudiopayload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">a pointer to the element.</doc> + <type name="RTPBaseAudioPayload" c:type="GstRTPBaseAudioPayload*"/> + </instance-parameter> + <parameter name="sample_size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c">Size per sample in bits.</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <property name="buffer-list" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="payload"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload"/> + </field> + <field name="priv"> + <type name="RTPBaseAudioPayloadPrivate" c:type="GstRTPBaseAudioPayloadPrivate*"/> + </field> + <field name="base_ts"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="frame_size"> + <type name="gint" c:type="gint"/> + </field> + <field name="frame_duration"> + <type name="gint" c:type="gint"/> + </field> + <field name="sample_size"> + <type name="gint" c:type="gint"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="RTPBaseAudioPayloadClass" c:type="GstRTPBaseAudioPayloadClass" glib:is-gtype-struct-for="RTPBaseAudioPayload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h">Base class for audio RTP payloader.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h">the parent class</doc> + <type name="RTPBasePayloadClass" c:type="GstRTPBasePayloadClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTPBaseAudioPayloadPrivate" c:type="GstRTPBaseAudioPayloadPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + </record> + <class name="RTPBaseDepayload" c:symbol-prefix="rtp_base_depayload" c:type="GstRTPBaseDepayload" parent="Gst.Element" abstract="1" glib:type-name="GstRTPBaseDepayload" glib:get-type="gst_rtp_base_depayload_get_type" glib:type-struct="RTPBaseDepayloadClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">Provides a base class for RTP depayloaders</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <virtual-method name="handle_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="packet_lost"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="process"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="base" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </instance-parameter> + <parameter name="in" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="process_rtp_packet"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="base" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </instance-parameter> + <parameter name="rtp_buffer" transfer-ownership="none"> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">Queries whether #GstRTPSourceMeta will be added to depayloaded buffers.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">Push @out_buf to the peer of @filter. This function takes ownership of +@out_buf. + +This function will by default apply the last incoming timestamp on +the outgoing buffer when it didn't have a timestamp already.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">a #GstFlowReturn.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">a #GstRTPBaseDepayload</doc> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </instance-parameter> + <parameter name="out_buf" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="push_list" c:identifier="gst_rtp_base_depayload_push_list"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">Push @out_list to the peer of @filter. This function takes ownership of +@out_list.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">a #GstFlowReturn.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">a #GstRTPBaseDepayload</doc> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </instance-parameter> + <parameter name="out_list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">a #GstBufferList</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">Enable or disable adding #GstRTPSourceMeta to depayloaded buffers.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">a #GstRTPBaseDepayload</doc> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </instance-parameter> + <parameter name="enable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">whether to add meta about RTP sources to buffer</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="auto-header-extension" version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">If enabled, the depayloader will automatically try to enable all the +RTP header extensions provided in the sink caps, saving the application +the need to handle these extensions manually using the +GstRTPBaseDepayload::request-extension: signal.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="max-reorder" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">Max seqnum reorder before the sender is assumed to have restarted. + +When max-reorder is set to 0 all reordered/duplicate packets are +considered coming from a restarted sender.</doc> + <type name="gint" c:type="gint"/> + </property> + <property name="source-info" version="1.16" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">Various depayloader statistics retrieved atomically (and are therefore +synchroized with each other). This property return a GstStructure named +application/x-rtp-depayload-stats containing the following fields relating to +the last processed buffer and current state of the stream being depayloaded: + + * `clock-rate`: #G_TYPE_UINT, clock-rate of the stream + * `npt-start`: #G_TYPE_UINT64, time of playback start + * `npt-stop`: #G_TYPE_UINT64, time of playback stop + * `play-speed`: #G_TYPE_DOUBLE, the playback speed + * `play-scale`: #G_TYPE_DOUBLE, the playback scale + * `running-time-dts`: #G_TYPE_UINT64, the last running-time of the + last DTS + * `running-time-pts`: #G_TYPE_UINT64, the last running-time of the + last PTS + * `seqnum`: #G_TYPE_UINT, the last seen seqnum + * `timestamp`: #G_TYPE_UINT, the last seen RTP timestamp</doc> + <type name="Gst.Structure"/> + </property> + <field name="parent"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="clock_rate"> + <type name="guint" c:type="guint"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="need_newsegment"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RTPBaseDepayloadPrivate" c:type="GstRTPBaseDepayloadPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="add-extension" when="last" action="1" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">Add @ext as an extension for reading part of an RTP header extension from +incoming RTP packets.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">the #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="clear-extensions" when="last" action="1" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">Clear all RTP header extensions used by this depayloader.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="request-extension" when="last" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">The returned @ext must be configured with the correct @ext_id and with the +necessary attributes as required by the extension implementation.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">the #GstRTPHeaderExtension for @ext_id, or %NULL</doc> + <type name="RTPHeaderExtension"/> + </return-value> + <parameters> + <parameter name="ext_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">the extension id being requested</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="ext_uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.c">the extension URI being requested</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="RTPBaseDepayloadClass" c:type="GstRTPBaseDepayloadClass" glib:is-gtype-struct-for="RTPBaseDepayload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h">Base class for RTP depayloaders.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h">the parent class</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="set_caps"> + <callback name="set_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="process"> + <callback name="process"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="base" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </parameter> + <parameter name="in" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="packet_lost"> + <callback name="packet_lost"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_event"> + <callback name="handle_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="process_rtp_packet"> + <callback name="process_rtp_packet"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="base" transfer-ownership="none"> + <type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/> + </parameter> + <parameter name="rtp_buffer" transfer-ownership="none"> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTPBaseDepayloadPrivate" c:type="GstRTPBaseDepayloadPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + </record> + <class name="RTPBasePayload" c:symbol-prefix="rtp_base_payload" c:type="GstRTPBasePayload" parent="Gst.Element" abstract="1" glib:type-name="GstRTPBasePayload" glib:get-type="gst_rtp_base_payload_get_type" glib:type-struct="RTPBasePayloadClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Provides a base class for RTP payloaders</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <virtual-method name="get_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_buffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="sink_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="payload_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the length of the payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Check if the packet with @size and @duration would exceed the configured +maximum size.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">%TRUE if the packet of @size and @duration would exceed the +configured MTU or max_ptime.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the size of the packet</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the duration of the packet</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Queries whether the payloader will add contributing sources (CSRCs) to the +RTP header from #GstRTPSourceMeta.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Push @buffer to the peer element of the payloader. The SSRC, payload type, +seqnum and timestamp of the RTP buffer will be updated first. + +This function takes ownership of @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstFlowReturn.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="push_list" c:identifier="gst_rtp_base_payload_push_list"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Push @list to the peer element of the payloader. The SSRC, payload type, +seqnum and timestamp of the RTP buffer will be updated first. + +This function takes ownership of @list.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstFlowReturn.</doc> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="list" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstBufferList</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </method> + <method name="set_options" c:identifier="gst_rtp_base_payload_set_options"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Set the rtp options of the payloader. These options will be set in the caps +of the payloader. Subclasses must call this method before calling +gst_rtp_base_payload_push() or gst_rtp_base_payload_set_outcaps().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the media type (typically "audio" or "video")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dynamic" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">if the payload type is dynamic</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="encoding_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the encoding name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="clock_rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the clock rate of the media</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_outcaps" c:identifier="gst_rtp_base_payload_set_outcaps" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Configure the output caps with the optional parameters. + +Variable arguments should be in the form field name, field type +(as a GType), value(s). The last variable argument should be NULL.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">%TRUE if the caps could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the first field name or %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">field values</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_outcaps_structure" c:identifier="gst_rtp_base_payload_set_outcaps_structure" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Configure the output caps with the optional fields.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">%TRUE if the caps could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="payload" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="s" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstStructure with the caps fields</doc> + <type name="Gst.Structure" c:type="GstStructure*"/> + </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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Enable or disable adding contributing sources to RTP packets from +#GstRTPSourceMeta.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">a #GstRTPBasePayload</doc> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </instance-parameter> + <parameter name="enable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">whether to add contributing sources to RTP packets</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="auto-header-extension" version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">If enabled, the payloader will automatically try to enable all the +RTP header extensions provided in the src caps, saving the application +the need to handle these extensions manually using the +GstRTPBasePayload::request-extension: signal.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="max-ptime" writable="1" transfer-ownership="none"> + <type name="gint64" c:type="gint64"/> + </property> + <property name="min-ptime" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Minimum duration of the packet data in ns (can't go above MTU)</doc> + <type name="gint64" c:type="gint64"/> + </property> + <property name="mtu" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="onvif-no-rate-control" version="1.16" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Make the payloader timestamp packets according to the Rate-Control=no +behaviour specified in the ONVIF replay spec.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="perfect-rtptime" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Try to use the offset fields to generate perfect RTP timestamps. When this +option is disabled, RTP timestamps are generated from GST_BUFFER_PTS of +each payloaded buffer. The PTSes of buffers may not necessarily increment +with the amount of data in each input buffer, consider e.g. the case where +the buffer arrives from a network which means that the PTS is unrelated to +the amount of data. Because the RTP timestamps are generated from +GST_BUFFER_PTS this can result in RTP timestamps that also don't increment +with the amount of data in the payloaded packet. To circumvent this it is +possible to set the perfect rtptime option enabled. When this option is +enabled the payloader will increment the RTP timestamps based on +GST_BUFFER_OFFSET which relates to the amount of data in each packet +rather than the GST_BUFFER_PTS of each buffer and therefore the RTP +timestamps will more closely correlate with the amount of data in each +buffer. Currently GstRTPBasePayload is limited to handling perfect RTP +timestamps for audio streams.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="pt" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="ptime-multiple" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Force buffers to be multiples of this duration in ns (0 disables)</doc> + <type name="gint64" c:type="gint64"/> + </property> + <property name="scale-rtptime" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Make the RTP packets' timestamps be scaled with the segment's rate +(corresponding to RTSP speed parameter). Disabling this property means +the timestamps will not be affected by the set delivery speed (RTSP speed). + +Example: A server wants to allow streaming a recorded video in double +speed but still have the timestamps correspond to the position in the +video. This is achieved by the client setting RTSP Speed to 2 while the +server has this property disabled.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="seqnum" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">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> + <property name="stats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Various payloader statistics retrieved atomically (and are therefore +synchroized with each other), these can be used e.g. to generate an +RTP-Info header. This property return a GstStructure named +application/x-rtp-payload-stats containing the following fields relating to +the last processed buffer and current state of the stream being payloaded: + + * `clock-rate` :#G_TYPE_UINT, clock-rate of the stream + * `running-time` :#G_TYPE_UINT64, running time + * `seqnum` :#G_TYPE_UINT, sequence number, same as #GstRTPBasePayload:seqnum + * `timestamp` :#G_TYPE_UINT, RTP timestamp, same as #GstRTPBasePayload:timestamp + * `ssrc` :#G_TYPE_UINT, The SSRC in use + * `pt` :#G_TYPE_UINT, The Payload type in use, same as #GstRTPBasePayload:pt + * `seqnum-offset` :#G_TYPE_UINT, The current offset added to the seqnum + * `timestamp-offset` :#G_TYPE_UINT, The current offset added to the timestamp</doc> + <type name="Gst.Structure"/> + </property> + <property name="timestamp" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="timestamp-offset" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad" readable="0" private="1"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad" readable="0" private="1"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="ts_base" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="seqnum_base" readable="0" private="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="media" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="encoding_name" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="dynamic" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="clock_rate" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="ts_offset" readable="0" private="1"> + <type name="gint32" c:type="gint32"/> + </field> + <field name="timestamp" readable="0" private="1"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="seqnum_offset" readable="0" private="1"> + <type name="gint16" c:type="gint16"/> + </field> + <field name="seqnum" readable="0" private="1"> + <type name="guint16" c:type="guint16"/> + </field> + <field name="max_ptime" readable="0" private="1"> + <type name="gint64" c:type="gint64"/> + </field> + <field name="pt" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="ssrc" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="current_ssrc" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="mtu" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="segment" readable="0" private="1"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="min_ptime" readable="0" private="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="ptime" readable="0" private="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="ptime_multiple" readable="0" private="1"> + <type name="guint64" c:type="guint64"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RTPBasePayloadPrivate" c:type="GstRTPBasePayloadPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="add-extension" when="last" action="1" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Add @ext as an extension for writing part of an RTP header extension onto +outgoing RTP packets.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="clear-extensions" when="last" action="1" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">Clear all RTP header extensions used by this payloader.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="request-extension" when="last" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">The returned @ext must be configured with the correct @ext_id and with the +necessary attributes as required by the extension implementation.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the #GstRTPHeaderExtension for @ext_id, or %NULL</doc> + <type name="RTPHeaderExtension"/> + </return-value> + <parameters> + <parameter name="ext_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the extension id being requested</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="ext_uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c">the extension URI being requested</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="RTPBasePayloadClass" c:type="GstRTPBasePayloadClass" glib:is-gtype-struct-for="RTPBasePayload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">Base class for audio RTP payloader.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">the parent class</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="get_caps"> + <callback name="get_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="filter" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_caps"> + <callback name="set_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_buffer"> + <callback name="handle_buffer"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="sink_event"> + <callback name="sink_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_event"> + <callback name="src_event"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="query"> + <callback name="query"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="payload" transfer-ownership="none"> + <type name="RTPBasePayload" c:type="GstRTPBasePayload*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTPBasePayloadPrivate" c:type="GstRTPBasePayloadPrivate" disguised="1"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + </record> + <record name="RTPBuffer" c:type="GstRTPBuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The GstRTPBuffer helper functions makes it easy to parse and create regular +#GstBuffer objects that contain RTP payloads. These buffers are typically of +'application/x-rtp' #GstCaps.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <field name="buffer" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">pointer to RTP buffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="state" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">internal state</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="data" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">array of data</doc> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="size" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">array of size</doc> + <array zero-terminated="0" fixed-size="4"> + <type name="gsize" c:type="gsize"/> + </array> + </field> + <field name="map" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">array of #GstMapInfo</doc> + <array zero-terminated="0" fixed-size="4"> + <type name="Gst.MapInfo" c:type="GstMapInfo"/> + </array> + </field> + <method name="add_extension_onebyte_header" c:identifier="gst_rtp_buffer_add_extension_onebyte_header"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Adds a RFC 5285 header extension with a one byte header to the end of the +RTP header. If there is already a RFC 5285 header extension with a one byte +header, the new extension will be appended. +It will not work if there is already a header extension that does not follow +the mechanism described in RFC 5285 or if there is a header extension with +a two bytes header as described in RFC 5285. In that case, use +gst_rtp_buffer_add_extension_twobytes_header()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">%TRUE if header extension could be added</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The ID of the header extension (between 1 and 14).</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">location for data</doc> + <array length="2" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the size of the data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_extension_twobytes_header" c:identifier="gst_rtp_buffer_add_extension_twobytes_header"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Adds a RFC 5285 header extension with a two bytes header to the end of the +RTP header. If there is already a RFC 5285 header extension with a two bytes +header, the new extension will be appended. +It will not work if there is already a header extension that does not follow +the mechanism described in RFC 5285 or if there is a header extension with +a one byte header as described in RFC 5285. In that case, use +gst_rtp_buffer_add_extension_onebyte_header()</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">%TRUE if header extension could be added</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="appbits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Application specific bits</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The ID of the header extension</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">location for data</doc> + <array length="3" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the size of the data in bytes</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_csrc" c:identifier="gst_rtp_buffer_get_csrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the CSRC at index @idx in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the CSRC at index @idx in host order.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the index of the CSRC to get</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="get_csrc_count" c:identifier="gst_rtp_buffer_get_csrc_count"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the CSRC count of the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the CSRC count of @buffer.</doc> + <type name="guint8" c:type="guint8"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_extension" c:identifier="gst_rtp_buffer_get_extension"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Check if the extension bit is set on the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">TRUE if @buffer has the extension bit set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_extension_bytes" c:identifier="gst_rtp_buffer_get_extension_bytes" shadows="get_extension_data" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Similar to gst_rtp_buffer_get_extension_data, but more suitable for language +bindings usage. @bits will contain the extension 16 bits of custom data and +the extension data (not including the extension header) is placed in a new +#GBytes structure. + +If @rtp did not contain an extension, this function will return %NULL, with +@bits unchanged. If there is an extension header but no extension data then +an empty #GBytes will be returned.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A new #GBytes if an extension header was present +and %NULL otherwise.</doc> + <type name="GLib.Bytes" c:type="GBytes*"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="bits" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">location for header bits</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="get_extension_data" c:identifier="gst_rtp_buffer_get_extension_data" shadowed-by="get_extension_bytes" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the extension data. @bits will contain the extension 16 bits of custom +data. @data will point to the data in the extension and @wordlen will contain +the length of @data in 32 bits words. + +If @buffer did not contain an extension, this function will return %FALSE +with @bits, @data and @wordlen unchanged.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">TRUE if @buffer had the extension bit set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="bits" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">location for result bits</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">location for data</doc> + <array zero-terminated="0" c:type="gpointer*"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="wordlen" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">location for length of @data in 32 bits words</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_extension_onebyte_header" c:identifier="gst_rtp_buffer_get_extension_onebyte_header"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Parses RFC 5285 style header extensions with a one byte header. It will +return the nth extension with the requested id.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">TRUE if @buffer had the requested header extension</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The ID of the header extension to be read (between 1 and 14).</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="nth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Read the nth extension packet with the requested ID</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c"> + location for data</doc> + <array length="3" zero-terminated="0" c:type="gpointer*"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the size of the data in bytes</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_extension_twobytes_header" c:identifier="gst_rtp_buffer_get_extension_twobytes_header"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Parses RFC 5285 style header extensions with a two bytes header. It will +return the nth extension with the requested id.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">TRUE if @buffer had the requested header extension</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="appbits" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Application specific bits</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The ID of the header extension to be read (between 1 and 14).</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="nth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Read the nth extension packet with the requested ID</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c"> + location for data</doc> + <array length="4" zero-terminated="0" c:type="gpointer*"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the size of the data in bytes</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_header_len" c:identifier="gst_rtp_buffer_get_header_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Return the total length of the header in @buffer. This include the length of +the fixed header, the CSRC list and the extension header.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The total length of the header in @buffer.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_marker" c:identifier="gst_rtp_buffer_get_marker"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Check if the marker bit is set on the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">TRUE if @buffer has the marker bit set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_packet_len" c:identifier="gst_rtp_buffer_get_packet_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Return the total length of the packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The total length of the packet in @buffer.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_padding" c:identifier="gst_rtp_buffer_get_padding"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Check if the padding bit is set on the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">TRUE if @buffer has the padding bit set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_payload" c:identifier="gst_rtp_buffer_get_payload" shadowed-by="get_payload_bytes" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get a pointer to the payload data in @buffer. This pointer is valid as long +as a reference to @buffer is held.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A pointer +to the payload data in @buffer.</doc> + <array zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_payload_buffer" c:identifier="gst_rtp_buffer_get_payload_buffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Create a buffer of the payload of the RTP packet in @buffer. This function +will internally create a subbuffer of @buffer so that a memcpy can be +avoided.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A new buffer with the data of the payload.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_payload_bytes" c:identifier="gst_rtp_buffer_get_payload_bytes" shadows="get_payload" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Similar to gst_rtp_buffer_get_payload, but more suitable for language +bindings usage. The return value is a pointer to a #GBytes structure +containing the payload data in @rtp.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A new #GBytes containing the payload data in @rtp.</doc> + <type name="GLib.Bytes" c:type="GBytes*"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_payload_len" c:identifier="gst_rtp_buffer_get_payload_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the length of the payload of the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The length of the payload in @buffer.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_payload_subbuffer" c:identifier="gst_rtp_buffer_get_payload_subbuffer"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Create a subbuffer of the payload of the RTP packet in @buffer. @offset bytes +are skipped in the payload and the subbuffer will be of size @len. +If @len is -1 the total payload starting from @offset is subbuffered.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A new buffer with the specified data of the payload.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="offset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the offset in the payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length in the payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_payload_type" c:identifier="gst_rtp_buffer_get_payload_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the payload type of the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The payload type.</doc> + <type name="guint8" c:type="guint8"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_seq" c:identifier="gst_rtp_buffer_get_seq"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the sequence number of the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The sequence number in host order.</doc> + <type name="guint16" c:type="guint16"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ssrc" c:identifier="gst_rtp_buffer_get_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the SSRC of the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the SSRC of @buffer in host order.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timestamp" c:identifier="gst_rtp_buffer_get_timestamp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the timestamp of the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The timestamp in host order.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_version" c:identifier="gst_rtp_buffer_get_version"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the version number of the RTP packet in @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The version of @buffer.</doc> + <type name="guint8" c:type="guint8"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="pad_to" c:identifier="gst_rtp_buffer_pad_to"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the amount of padding in the RTP packet in @buffer to +@len. If @len is 0, the padding is removed. + +NOTE: This function does not work correctly.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new amount of padding</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="remove_extension_data" c:identifier="gst_rtp_buffer_remove_extension_data" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Unsets the extension bit of the RTP buffer and removes the extension header +and data. + +If the RTP buffer has no header extension data, the action has no effect. +The RTP buffer must be mapped READWRITE only once and the underlying +GstBuffer must be writable.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_csrc" c:identifier="gst_rtp_buffer_set_csrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Modify the CSRC at index @idx in @buffer to @csrc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the CSRC index to set</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the CSRC in host order to set at @idx</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_extension" c:identifier="gst_rtp_buffer_set_extension"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the extension bit on the RTP packet in @buffer to @extension.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="extension" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new extension</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_extension_data" c:identifier="gst_rtp_buffer_set_extension_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the extension bit of the rtp buffer and fill in the @bits and @length of the +extension header. If the existing extension data is not large enough, it will +be made larger. + +Will also shorten the extension data from 1.20.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">True if done.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="bits" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the bits specific for the extension</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length that counts the number of 32-bit words in +the extension, excluding the extension header ( therefore zero is a valid length)</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="set_marker" c:identifier="gst_rtp_buffer_set_marker"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the marker bit on the RTP packet in @buffer to @marker.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="marker" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new marker</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_packet_len" c:identifier="gst_rtp_buffer_set_packet_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the total @rtp size to @len. The data in the buffer will be made +larger if needed. Any padding will be removed from the packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new packet length</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_padding" c:identifier="gst_rtp_buffer_set_padding"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the padding bit on the RTP packet in @buffer to @padding.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the buffer</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="padding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new padding</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_payload_type" c:identifier="gst_rtp_buffer_set_payload_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the payload type of the RTP packet in @buffer to @payload_type.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="payload_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new type</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="set_seq" c:identifier="gst_rtp_buffer_set_seq"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the sequence number of the RTP packet in @buffer to @seq.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="seq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new sequence number</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="set_ssrc" c:identifier="gst_rtp_buffer_set_ssrc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the SSRC on the RTP packet in @buffer to @ssrc.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="ssrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new SSRC</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_timestamp" c:identifier="gst_rtp_buffer_set_timestamp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the timestamp of the RTP packet in @buffer to @timestamp.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new timestamp</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_version" c:identifier="gst_rtp_buffer_set_version"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Set the version of the RTP packet in @buffer to @version.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the RTP packet</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the new version</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="unmap" c:identifier="gst_rtp_buffer_unmap"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Unmap @rtp previously mapped with gst_rtp_buffer_map().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="rtp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a #GstRTPBuffer</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </instance-parameter> + </parameters> + </method> + <function name="allocate_data" c:identifier="gst_rtp_buffer_allocate_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Allocate enough data in @buffer to hold an RTP packet with @csrc_count CSRCs, +a payload length of @payload_len and padding of @pad_len. +@buffer must be writable and all previous memory in @buffer will be freed. +If @pad_len is >0, the padding bit will be set. All other RTP header fields +will be set to 0/FALSE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="payload_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of the payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="calc_header_len" c:identifier="gst_rtp_buffer_calc_header_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Calculate the header length of an RTP packet with @csrc_count CSRC entries. +An RTP packet can have at most 15 CSRC entries.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The length of an RTP header with @csrc_count CSRC entries.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="calc_packet_len" c:identifier="gst_rtp_buffer_calc_packet_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Calculate the total length of an RTP packet with a payload size of @payload_len, +a padding of @pad_len and a @csrc_count CSRC entries.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The total length of an RTP header with given parameters.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="payload_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of the payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="calc_payload_len" c:identifier="gst_rtp_buffer_calc_payload_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Calculate the length of the payload of an RTP packet with size @packet_len, +a padding of @pad_len and a @csrc_count CSRC entries.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The length of the payload of an RTP packet with given parameters.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="packet_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of the total RTP packet</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="compare_seqnum" c:identifier="gst_rtp_buffer_compare_seqnum"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Compare two sequence numbers, taking care of wraparounds. This function +returns the difference between @seqnum1 and @seqnum2.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a negative value if @seqnum1 is bigger than @seqnum2, 0 if they +are equal or a positive value if @seqnum1 is smaller than @segnum2.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="seqnum1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a sequence number</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="seqnum2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a sequence number</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="default_clock_rate" c:identifier="gst_rtp_buffer_default_clock_rate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the default clock-rate for the static payload type @payload_type.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the default clock rate or -1 if the payload type is not static or +the clock-rate is undefined.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="payload_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the static payload type</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="ext_timestamp" c:identifier="gst_rtp_buffer_ext_timestamp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Update the @exttimestamp field with the extended timestamp of @timestamp +For the first call of the method, @exttimestamp should point to a location +with a value of -1. + +This function is able to handle both forward and backward timestamps taking +into account: + - timestamp wraparound making sure that the returned value is properly increased. + - timestamp unwraparound making sure that the returned value is properly decreased.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The extended timestamp of @timestamp or 0 if the result can't go anywhere backwards.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="exttimestamp" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a previous extended timestamp</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a new timestamp</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="get_extension_onebyte_header_from_bytes" c:identifier="gst_rtp_buffer_get_extension_onebyte_header_from_bytes" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Similar to gst_rtp_buffer_get_extension_onebyte_header, but working +on the #GBytes you get from gst_rtp_buffer_get_extension_bytes. +Parses RFC 5285 style header extensions with a one byte header. It will +return the nth extension with the requested id.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">TRUE if @bytes had the requested header extension</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="bytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">#GBytes</doc> + <type name="GLib.Bytes" c:type="GBytes*"/> + </parameter> + <parameter name="bit_pattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The bit-pattern. Anything but 0xBEDE is rejected.</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The ID of the header extension to be read (between 1 and 14).</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="nth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Read the nth extension packet with the requested ID</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c"> + location for data</doc> + <array length="5" zero-terminated="0" c:type="gpointer*"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the size of the data in bytes</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="map" c:identifier="gst_rtp_buffer_map"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Map the contents of @buffer into @rtp.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">%TRUE if @buffer could be mapped.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">#GstMapFlags</doc> + <type name="Gst.MapFlags" c:type="GstMapFlags"/> + </parameter> + <parameter name="rtp" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a #GstRTPBuffer</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </parameter> + </parameters> + </function> + <function name="new_allocate" c:identifier="gst_rtp_buffer_new_allocate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Allocate a new #GstBuffer with enough data to hold an RTP packet with +@csrc_count CSRCs, a payload length of @payload_len and padding of @pad_len. +All other RTP header fields will be set to 0/FALSE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A newly allocated buffer that can hold an RTP packet with given +parameters.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="payload_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of the payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="new_allocate_len" c:identifier="gst_rtp_buffer_new_allocate_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Create a new #GstBuffer that can hold an RTP packet that is exactly +@packet_len long. The length of the payload depends on @pad_len and +@csrc_count and can be calculated with gst_rtp_buffer_calc_payload_len(). +All RTP header fields will be set to 0/FALSE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A newly allocated buffer that can hold an RTP packet of @packet_len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="packet_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the total length of the packet</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="new_copy_data" c:identifier="gst_rtp_buffer_new_copy_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Create a new buffer and set the data to a copy of @len +bytes of @data and the size to @len. The data will be freed when the buffer +is freed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A newly allocated buffer with a copy of @data and of size @len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">data for the new + buffer</doc> + <array length="1" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="new_take_data" c:identifier="gst_rtp_buffer_new_take_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Create a new buffer and set the data and size of the buffer to @data and @len +respectively. @data will be freed when the buffer is unreffed, so this +function transfers ownership of @data to the new buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A newly allocated buffer with @data and of size @len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c"> + data for the new buffer</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + </record> + <bitfield name="RTPBufferFlags" version="1.10" glib:type-name="GstRTPBufferFlags" glib:get-type="gst_rtp_buffer_flags_get_type" c:type="GstRTPBufferFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">Additional RTP buffer flags. These flags can potentially be used on any +buffers carrying RTP packets. + +Note that these are only valid for #GstCaps of type: application/x-rtp (x-rtcp). +They can conflict with other extended buffer flags.</doc> + <member name="retransmission" value="1048576" c:identifier="GST_RTP_BUFFER_FLAG_RETRANSMISSION" glib:nick="retransmission"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">The #GstBuffer was once wrapped + in a retransmitted packet as specified by RFC 4588.</doc> + </member> + <member name="redundant" value="2097152" c:identifier="GST_RTP_BUFFER_FLAG_REDUNDANT" glib:nick="redundant"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">The packet represents redundant RTP packet. + The flag is used in gstrtpstorage to be able to hold the packetback + and use it only for recovery from packet loss. + Since: 1.14</doc> + </member> + <member name="last" value="268435456" c:identifier="GST_RTP_BUFFER_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">Offset to define more flags.</doc> + </member> + </bitfield> + <bitfield name="RTPBufferMapFlags" version="1.6.1" glib:type-name="GstRTPBufferMapFlags" glib:get-type="gst_rtp_buffer_map_flags_get_type" c:type="GstRTPBufferMapFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">Additional mapping flags for gst_rtp_buffer_map().</doc> + <member name="skip_padding" value="65536" c:identifier="GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING" glib:nick="skip-padding"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">Skip mapping and validation of RTP + padding and RTP pad count when present. Useful for buffers where + the padding may be encrypted.</doc> + </member> + <member name="last" value="16777216" c:identifier="GST_RTP_BUFFER_MAP_FLAG_LAST" glib:nick="last"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">Offset to define more flags</doc> + </member> + </bitfield> + <class name="RTPHeaderExtension" c:symbol-prefix="rtp_header_extension" c:type="GstRTPHeaderExtension" version="1.20" parent="Gst.Element" abstract="1" glib:type-name="GstRTPHeaderExtension" glib:get-type="gst_rtp_header_extension_get_type" glib:type-struct="RTPHeaderExtensionClass"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">Instance struct for a RTP Audio/Video header extension.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <function name="create_from_uri" c:identifier="gst_rtp_header_extension_create_from_uri" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the #GstRTPHeaderExtension for @uri or %NULL</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the rtp header extension URI to search for</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <virtual-method name="get_max_size" invoker="get_max_size" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">This is used to know how much data a certain header extension will need for +both allocating the resulting data, and deciding how much payload data can +be generated. + +Implementations should return as accurate a value as is possible using the +information given in the input @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the maximum size of the data written by this extension</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="input_meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="const GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_supported_flags" invoker="get_supported_flags" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the flags supported by this instance of @ext</doc> + <type name="RTPHeaderExtensionFlags" c:type="GstRTPHeaderExtensionFlags"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="read" invoker="read" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Read the RTP header extension from @data.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether the extension could be read from @data</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="read_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">#GstRTPHeaderExtensionFlags for how the extension should + be written</doc> + <type name="RTPHeaderExtensionFlags" c:type="GstRTPHeaderExtensionFlags"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">location to read the rtp header extension from</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstBuffer to modify if necessary</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_attributes"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="RTPHeaderExtensionDirection" c:type="GstRTPHeaderExtensionDirection"/> + </parameter> + <parameter name="attributes" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_caps_from_attributes" invoker="set_caps_from_attributes" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">gst_rtp_header_extension_set_id() must have been called with a valid +extension id that is contained in these caps. + +The only current known caps format is based on the SDP standard as produced +by gst_sdp_media_attributes_to_caps().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether the configured attributes on @ext can successfully be set on + @caps</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">writable #GstCaps to modify</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_non_rtp_sink_caps" invoker="set_non_rtp_sink_caps" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Passes RTP payloader's sink (i.e. not payloaded) @caps to the header +extension.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Whether @caps could be read successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">sink #GstCaps</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="update_non_rtp_src_caps" invoker="update_non_rtp_src_caps" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Updates depayloader src caps based on the information received in RTP header. +@caps must be writable as this function may modify them.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether @caps were modified successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">src #GstCaps to modify</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="write" invoker="write" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Writes the RTP header extension to @data using information available from +the @input_meta. @data will be sized to be at least the value returned +from gst_rtp_header_extension_get_max_size().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the size of the data written, < 0 on failure</doc> + <type name="gssize" c:type="gssize"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="input_meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the input #GstBuffer to read information from if necessary</doc> + <type name="Gst.Buffer" c:type="const GstBuffer*"/> + </parameter> + <parameter name="write_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">#GstRTPHeaderExtensionFlags for how the extension should + be written</doc> + <type name="RTPHeaderExtensionFlags" c:type="GstRTPHeaderExtensionFlags"/> + </parameter> + <parameter name="output" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">output RTP #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">location to write the rtp header extension into</doc> + <array length="4" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_direction" c:identifier="gst_rtp_header_extension_get_direction" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Retrieve the direction</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">The direction</doc> + <type name="RTPHeaderExtensionDirection" c:type="GstRTPHeaderExtensionDirection"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_id" c:identifier="gst_rtp_header_extension_get_id" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the RTP extension id configured on @ext</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_size" c:identifier="gst_rtp_header_extension_get_max_size" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">This is used to know how much data a certain header extension will need for +both allocating the resulting data, and deciding how much payload data can +be generated. + +Implementations should return as accurate a value as is possible using the +information given in the input @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the maximum size of the data written by this extension</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="input_meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="const GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="get_sdp_caps_field_name" c:identifier="gst_rtp_header_extension_get_sdp_caps_field_name" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the #GstStructure field name used in SDP-like #GstCaps for this @ext configuration</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_supported_flags" c:identifier="gst_rtp_header_extension_get_supported_flags" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the flags supported by this instance of @ext</doc> + <type name="RTPHeaderExtensionFlags" c:type="GstRTPHeaderExtensionFlags"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri" c:identifier="gst_rtp_header_extension_get_uri" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the RTP extension URI for this object</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + </parameters> + </method> + <method name="read" c:identifier="gst_rtp_header_extension_read" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Read the RTP header extension from @data.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether the extension could be read from @data</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="read_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">#GstRTPHeaderExtensionFlags for how the extension should + be written</doc> + <type name="RTPHeaderExtensionFlags" c:type="GstRTPHeaderExtensionFlags"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">location to read the rtp header extension from</doc> + <array length="2" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstBuffer to modify if necessary</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="set_attributes_from_caps" c:identifier="gst_rtp_header_extension_set_attributes_from_caps" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">gst_rtp_header_extension_set_id() must have been called with a valid +extension id that is contained in these caps. + +The only current known caps format is based on the SDP standard as produced +by gst_sdp_media_attributes_to_caps().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether the @caps could be successfully set on @ext.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the #GstCaps to configure this extension with</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_caps_from_attributes" c:identifier="gst_rtp_header_extension_set_caps_from_attributes" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">gst_rtp_header_extension_set_id() must have been called with a valid +extension id that is contained in these caps. + +The only current known caps format is based on the SDP standard as produced +by gst_sdp_media_attributes_to_caps().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether the configured attributes on @ext can successfully be set on + @caps</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">writable #GstCaps to modify</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_caps_from_attributes_helper" c:identifier="gst_rtp_header_extension_set_caps_from_attributes_helper" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Helper implementation for GstRTPExtensionClass::set_caps_from_attributes +that sets the @ext uri on caps with the specified extension id as required +for sdp #GstCaps. + +Requires that the extension does not have any attributes or direction +advertised in @caps.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether the @ext attributes could be set on @caps.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">#GstCaps to write fields into</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="attributes" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_direction" c:identifier="gst_rtp_header_extension_set_direction" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Set the direction that this header extension should be used in. +If #GST_RTP_HEADER_EXTENSION_DIRECTION_INHERITED is included, the +direction will not be included in the caps (as it shouldn't be in the +extmap line in the SDP).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="direction" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">The direction</doc> + <type name="RTPHeaderExtensionDirection" c:type="GstRTPHeaderExtensionDirection"/> + </parameter> + </parameters> + </method> + <method name="set_id" c:identifier="gst_rtp_header_extension_set_id" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">sets the RTP extension id on @ext</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="ext_id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">The id of this extension</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_non_rtp_sink_caps" c:identifier="gst_rtp_header_extension_set_non_rtp_sink_caps" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Passes RTP payloader's sink (i.e. not payloaded) @caps to the header +extension.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Whether @caps could be read successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">sink #GstCaps</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_wants_update_non_rtp_src_caps" c:identifier="gst_rtp_header_extension_set_wants_update_non_rtp_src_caps" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Call this function in a subclass from #GstRTPHeaderExtensionClass::read to +tell the depayloader whether the data just parsed from RTP packet require +updating its src (non-RTP) caps. If @state is TRUE, #GstRTPBaseDepayload will +eventually invoke gst_rtp_header_extension_update_non_rtp_src_caps() to +have the caps update applied. Applying the update also flips the internal +"wants update" flag back to FALSE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">TRUE if caps update is needed</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="update_non_rtp_src_caps" c:identifier="gst_rtp_header_extension_update_non_rtp_src_caps" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Updates depayloader src caps based on the information received in RTP header. +@caps must be writable as this function may modify them.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether @caps were modified successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">src #GstCaps to modify</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="wants_update_non_rtp_src_caps" c:identifier="gst_rtp_header_extension_wants_update_non_rtp_src_caps" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Call this function after gst_rtp_header_extension_read() to check if +the depayloader's src caps need updating with data received in the last RTP +packet.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Whether @ext wants to update depayloader's src caps.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + </parameters> + </method> + <method name="write" c:identifier="gst_rtp_header_extension_write" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Writes the RTP header extension to @data using information available from +the @input_meta. @data will be sized to be at least the value returned +from gst_rtp_header_extension_get_max_size().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the size of the data written, < 0 on failure</doc> + <type name="gssize" c:type="gssize"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </instance-parameter> + <parameter name="input_meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the input #GstBuffer to read information from if necessary</doc> + <type name="Gst.Buffer" c:type="const GstBuffer*"/> + </parameter> + <parameter name="write_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">#GstRTPHeaderExtensionFlags for how the extension should + be written</doc> + <type name="RTPHeaderExtensionFlags" c:type="GstRTPHeaderExtensionFlags"/> + </parameter> + <parameter name="output" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">output RTP #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">location to write the rtp header extension into</doc> + <array length="4" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">the parent #GObject</doc> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="RTPHeaderExtensionClass" c:type="GstRTPHeaderExtensionClass" glib:is-gtype-struct-for="RTPHeaderExtension" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">Base class for RTP Header extensions.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">the parent class</doc> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="get_supported_flags"> + <callback name="get_supported_flags"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the flags supported by this instance of @ext</doc> + <type name="RTPHeaderExtensionFlags" c:type="GstRTPHeaderExtensionFlags"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_max_size"> + <callback name="get_max_size"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the maximum size of the data written by this extension</doc> + <type name="gsize" c:type="gsize"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </parameter> + <parameter name="input_meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="const GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="write"> + <callback name="write"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the size of the data written, < 0 on failure</doc> + <type name="gssize" c:type="gssize"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </parameter> + <parameter name="input_meta" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the input #GstBuffer to read information from if necessary</doc> + <type name="Gst.Buffer" c:type="const GstBuffer*"/> + </parameter> + <parameter name="write_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">#GstRTPHeaderExtensionFlags for how the extension should + be written</doc> + <type name="RTPHeaderExtensionFlags" c:type="GstRTPHeaderExtensionFlags"/> + </parameter> + <parameter name="output" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">output RTP #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">location to write the rtp header extension into</doc> + <array length="5" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </callback> + </field> + <field name="read"> + <callback name="read"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether the extension could be read from @data</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </parameter> + <parameter name="read_flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">#GstRTPHeaderExtensionFlags for how the extension should + be written</doc> + <type name="RTPHeaderExtensionFlags" c:type="GstRTPHeaderExtensionFlags"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">location to read the rtp header extension from</doc> + <array length="3" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">size of @data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstBuffer to modify if necessary</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_non_rtp_sink_caps"> + <callback name="set_non_rtp_sink_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Whether @caps could be read successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">sink #GstCaps</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="update_non_rtp_src_caps"> + <callback name="update_non_rtp_src_caps"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether @caps were modified successfully</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">src #GstCaps to modify</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_attributes"> + <callback name="set_attributes"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="RTPHeaderExtensionDirection" c:type="GstRTPHeaderExtensionDirection"/> + </parameter> + <parameter name="attributes" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_caps_from_attributes"> + <callback name="set_caps_from_attributes"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">whether the configured attributes on @ext can successfully be set on + @caps</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GstRTPHeaderExtension</doc> + <type name="RTPHeaderExtension" c:type="GstRTPHeaderExtension*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">writable #GstCaps to modify</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="set_uri" c:identifier="gst_rtp_header_extension_class_set_uri" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Set the URI for this RTP header extension implementation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the #GstRTPHeaderExtensionClass</doc> + <type name="RTPHeaderExtensionClass" c:type="GstRTPHeaderExtensionClass*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the RTP Header extension uri for @klass</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </record> + <bitfield name="RTPHeaderExtensionDirection" version="1.20" glib:type-name="GstRTPHeaderExtensionDirection" glib:get-type="gst_rtp_header_extension_direction_get_type" c:type="GstRTPHeaderExtensionDirection"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">Direction to which to apply the RTP Header Extension</doc> + <member name="inactive" value="0" c:identifier="GST_RTP_HEADER_EXTENSION_DIRECTION_INACTIVE" glib:nick="inactive"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">Neither send nor +receive RTP Header Extensions</doc> + </member> + <member name="sendonly" value="1" c:identifier="GST_RTP_HEADER_EXTENSION_DIRECTION_SENDONLY" glib:nick="sendonly"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">Only send RTP Header +Extensions @GST_RTP_HEADER_EXTENSION_DIRECTION_RECVONLY: Only +receive RTP Header Extensions</doc> + </member> + <member name="recvonly" value="2" c:identifier="GST_RTP_HEADER_EXTENSION_DIRECTION_RECVONLY" glib:nick="recvonly"> + </member> + <member name="sendrecv" value="3" c:identifier="GST_RTP_HEADER_EXTENSION_DIRECTION_SENDRECV" glib:nick="sendrecv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">Send and receive RTP +Header Extensions ext</doc> + </member> + <member name="inherited" value="4" c:identifier="GST_RTP_HEADER_EXTENSION_DIRECTION_INHERITED" glib:nick="inherited"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">RTP header extension +direction is inherited from the stream</doc> + </member> + </bitfield> + <bitfield name="RTPHeaderExtensionFlags" version="1.20" glib:type-name="GstRTPHeaderExtensionFlags" glib:get-type="gst_rtp_header_extension_flags_get_type" c:type="GstRTPHeaderExtensionFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">Flags that apply to a RTP Audio/Video header extension.</doc> + <member name="one_byte" value="1" c:identifier="GST_RTP_HEADER_EXTENSION_ONE_BYTE" glib:nick="one-byte"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">The one byte rtp extension header. + 1-16 data bytes per extension with a maximum of + 14 extension ids in total.</doc> + </member> + <member name="two_byte" value="2" c:identifier="GST_RTP_HEADER_EXTENSION_TWO_BYTE" glib:nick="two-byte"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">The two byte rtp extension header. + 256 data bytes per extension with a maximum of 255 (or 256 + including appbits) extensions in total.</doc> + </member> + </bitfield> + <enumeration name="RTPPayload" glib:type-name="GstRTPPayload" glib:get-type="gst_rtp_payload_get_type" c:type="GstRTPPayload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">Standard predefined fixed payload types. + +The official list is at: +http://www.iana.org/assignments/rtp-parameters + +Audio: +reserved: 19 +unassigned: 20-23, + +Video: +unassigned: 24, 27, 29, 30, 35-71, 77-95 +Reserved for RTCP conflict avoidance: 72-76</doc> + <member name="pcmu" value="0" c:identifier="GST_RTP_PAYLOAD_PCMU" glib:nick="pcmu"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">ITU-T G.711. mu-law audio (RFC 3551)</doc> + </member> + <member name="1016" value="1" c:identifier="GST_RTP_PAYLOAD_1016" glib:nick="1016"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">RFC 3551 says reserved</doc> + </member> + <member name="g721" value="2" c:identifier="GST_RTP_PAYLOAD_G721" glib:nick="g721"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">RFC 3551 says reserved</doc> + </member> + <member name="gsm" value="3" c:identifier="GST_RTP_PAYLOAD_GSM" glib:nick="gsm"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">GSM audio</doc> + </member> + <member name="g723" value="4" c:identifier="GST_RTP_PAYLOAD_G723" glib:nick="g723"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">ITU G.723.1 audio</doc> + </member> + <member name="dvi4_8000" value="5" c:identifier="GST_RTP_PAYLOAD_DVI4_8000" glib:nick="dvi4-8000"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">IMA ADPCM wave type (RFC 3551)</doc> + </member> + <member name="dvi4_16000" value="6" c:identifier="GST_RTP_PAYLOAD_DVI4_16000" glib:nick="dvi4-16000"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">IMA ADPCM wave type (RFC 3551)</doc> + </member> + <member name="lpc" value="7" c:identifier="GST_RTP_PAYLOAD_LPC" glib:nick="lpc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">experimental linear predictive encoding</doc> + </member> + <member name="pcma" value="8" c:identifier="GST_RTP_PAYLOAD_PCMA" glib:nick="pcma"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">ITU-T G.711 A-law audio (RFC 3551)</doc> + </member> + <member name="g722" value="9" c:identifier="GST_RTP_PAYLOAD_G722" glib:nick="g722"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">ITU-T G.722 (RFC 3551)</doc> + </member> + <member name="l16_stereo" value="10" c:identifier="GST_RTP_PAYLOAD_L16_STEREO" glib:nick="l16-stereo"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">stereo PCM</doc> + </member> + <member name="l16_mono" value="11" c:identifier="GST_RTP_PAYLOAD_L16_MONO" glib:nick="l16-mono"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">mono PCM</doc> + </member> + <member name="qcelp" value="12" c:identifier="GST_RTP_PAYLOAD_QCELP" glib:nick="qcelp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">EIA & TIA standard IS-733</doc> + </member> + <member name="cn" value="13" c:identifier="GST_RTP_PAYLOAD_CN" glib:nick="cn"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">Comfort Noise (RFC 3389)</doc> + </member> + <member name="mpa" value="14" c:identifier="GST_RTP_PAYLOAD_MPA" glib:nick="mpa"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">Audio MPEG 1-3.</doc> + </member> + <member name="g728" value="15" c:identifier="GST_RTP_PAYLOAD_G728" glib:nick="g728"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">ITU-T G.728 Speech coder (RFC 3551)</doc> + </member> + <member name="dvi4_11025" value="16" c:identifier="GST_RTP_PAYLOAD_DVI4_11025" glib:nick="dvi4-11025"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">IMA ADPCM wave type (RFC 3551)</doc> + </member> + <member name="dvi4_22050" value="17" c:identifier="GST_RTP_PAYLOAD_DVI4_22050" glib:nick="dvi4-22050"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">IMA ADPCM wave type (RFC 3551)</doc> + </member> + <member name="g729" value="18" c:identifier="GST_RTP_PAYLOAD_G729" glib:nick="g729"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">ITU-T G.729 Speech coder (RFC 3551)</doc> + </member> + <member name="cellb" value="25" c:identifier="GST_RTP_PAYLOAD_CELLB" glib:nick="cellb"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">See RFC 2029</doc> + </member> + <member name="jpeg" value="26" c:identifier="GST_RTP_PAYLOAD_JPEG" glib:nick="jpeg"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">ISO Standards 10918-1 and 10918-2 (RFC 2435)</doc> + </member> + <member name="nv" value="28" c:identifier="GST_RTP_PAYLOAD_NV" glib:nick="nv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">nv encoding by Ron Frederick</doc> + </member> + <member name="h261" value="31" c:identifier="GST_RTP_PAYLOAD_H261" glib:nick="h261"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">ITU-T Recommendation H.261 (RFC 2032)</doc> + </member> + <member name="mpv" value="32" c:identifier="GST_RTP_PAYLOAD_MPV" glib:nick="mpv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">Video MPEG 1 & 2 (RFC 2250)</doc> + </member> + <member name="mp2t" value="33" c:identifier="GST_RTP_PAYLOAD_MP2T" glib:nick="mp2t"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">MPEG-2 transport stream (RFC 2250)</doc> + </member> + <member name="h263" value="34" c:identifier="GST_RTP_PAYLOAD_H263" glib:nick="h263"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">Video H263 (RFC 2190)</doc> + </member> + </enumeration> + <record name="RTPPayloadInfo" c:type="GstRTPPayloadInfo"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">Structure holding default payload type information.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <field name="payload_type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">payload type, -1 means dynamic</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="media" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">the media type(s), usually "audio", "video", "application", "text", +"message".</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="encoding_name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">the encoding name of @pt</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="clock_rate" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">default clock rate, 0 = unknown/variable</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="encoding_parameters" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">encoding parameters. For audio this is the number of +channels. NULL = not applicable.</doc> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="bitrate" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">the bitrate of the media. 0 = unknown/variable.</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <function name="for_name" c:identifier="gst_rtp_payload_info_for_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">Get the #GstRTPPayloadInfo for @media and @encoding_name. This function is +mostly used to get the default clock-rate and bandwidth for dynamic payload +types specified with @media and @encoding name. + +The search for @encoding_name will be performed in a case insensitive way.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">a #GstRTPPayloadInfo or NULL when no info could be found.</doc> + <type name="RTPPayloadInfo" c:type="const GstRTPPayloadInfo*"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">the media to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="encoding_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">the encoding name to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="for_pt" c:identifier="gst_rtp_payload_info_for_pt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">Get the #GstRTPPayloadInfo for @payload_type. This function is +mostly used to get the default clock-rate and bandwidth for static payload +types specified with @payload_type.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">a #GstRTPPayloadInfo or NULL when no info could be found.</doc> + <type name="RTPPayloadInfo" c:type="const GstRTPPayloadInfo*"/> + </return-value> + <parameters> + <parameter name="payload_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">the payload_type to find</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="RTPProfile" version="1.6" glib:type-name="GstRTPProfile" glib:get-type="gst_rtp_profile_get_type" c:type="GstRTPProfile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpdefs.h">The transfer profile to use.</doc> + <member name="unknown" value="0" c:identifier="GST_RTP_PROFILE_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpdefs.h">invalid profile</doc> + </member> + <member name="avp" value="1" c:identifier="GST_RTP_PROFILE_AVP" glib:nick="avp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpdefs.h">the Audio/Visual profile (RFC 3551)</doc> + </member> + <member name="savp" value="2" c:identifier="GST_RTP_PROFILE_SAVP" glib:nick="savp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpdefs.h">the secure Audio/Visual profile (RFC 3711)</doc> + </member> + <member name="avpf" value="3" c:identifier="GST_RTP_PROFILE_AVPF" glib:nick="avpf"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpdefs.h">the Audio/Visual profile with feedback (RFC 4585)</doc> + </member> + <member name="savpf" value="4" c:identifier="GST_RTP_PROFILE_SAVPF" glib:nick="savpf"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpdefs.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h">Meta describing the source(s) of the buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <field name="meta" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h">parent #GstMeta</doc> + <type name="Gst.Meta" c:type="GstMeta"/> + </field> + <field name="ssrc" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h">the SSRC</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="ssrc_valid" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h">whether @ssrc is set and valid</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="csrc" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h">pointer to the CSRCs</doc> + <array zero-terminated="0" fixed-size="15"> + <type name="guint32" c:type="guint32"/> + </array> + </field> + <field name="csrc_count" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">Appends @csrc to the list of contributing sources in @meta.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">a #GstRTPSourceMeta</doc> + <type name="RTPSourceMeta" c:type="GstRTPSourceMeta*"/> + </instance-parameter> + <parameter name="csrc" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">the csrcs to append</doc> + <array length="1" zero-terminated="0" c:type="const guint32*"> + <type name="guint32" c:type="guint32"/> + </array> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">Count the total number of RTP sources found in @meta, both SSRC and CSRC.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">Sets @ssrc in @meta. If @ssrc is %NULL the ssrc of @meta will be unset.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <return-value transfer-ownership="none"> + <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/> + </return-value> + </function> + </record> + <function-macro name="RTP_BASE_AUDIO_PAYLOAD" c:identifier="GST_RTP_BASE_AUDIO_PAYLOAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_AUDIO_PAYLOAD_CAST" c:identifier="GST_RTP_BASE_AUDIO_PAYLOAD_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_AUDIO_PAYLOAD_CLASS" c:identifier="GST_RTP_BASE_AUDIO_PAYLOAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_DEPAYLOAD" c:identifier="GST_RTP_BASE_DEPAYLOAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_DEPAYLOAD_CAST" c:identifier="GST_RTP_BASE_DEPAYLOAD_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_DEPAYLOAD_CLASS" c:identifier="GST_RTP_BASE_DEPAYLOAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_DEPAYLOAD_GET_CLASS" c:identifier="GST_RTP_BASE_DEPAYLOAD_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_DEPAYLOAD_SINKPAD" c:identifier="GST_RTP_BASE_DEPAYLOAD_SINKPAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <parameters> + <parameter name="depayload"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_DEPAYLOAD_SRCPAD" c:identifier="GST_RTP_BASE_DEPAYLOAD_SRCPAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasedepayload.h"/> + <parameters> + <parameter name="depayload"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_PAYLOAD" c:identifier="GST_RTP_BASE_PAYLOAD" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_PAYLOAD_CAST" c:identifier="GST_RTP_BASE_PAYLOAD_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_PAYLOAD_CLASS" c:identifier="GST_RTP_BASE_PAYLOAD_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_PAYLOAD_GET_CLASS" c:identifier="GST_RTP_BASE_PAYLOAD_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_PAYLOAD_MTU" c:identifier="GST_RTP_BASE_PAYLOAD_MTU" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">Get access to the configured MTU of @payload.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="payload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">a #GstRTPBasePayload</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_PAYLOAD_PT" c:identifier="GST_RTP_BASE_PAYLOAD_PT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">Get access to the configured payload type of @payload.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="payload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">a #GstRTPBasePayload</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_PAYLOAD_SINKPAD" c:identifier="GST_RTP_BASE_PAYLOAD_SINKPAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">Get access to the sinkpad of @payload.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="payload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">a #GstRTPBasePayload</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_BASE_PAYLOAD_SRCPAD" c:identifier="GST_RTP_BASE_PAYLOAD_SRCPAD" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">Get access to the srcpad of @payload.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h"/> + <parameters> + <parameter name="payload"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.h">a #GstRTPBasePayload</doc> + </parameter> + </parameters> + </function-macro> + <constant name="RTP_HDREXT_BASE" value="urn:ietf:params:rtp-hdrext:" c:type="GST_RTP_HDREXT_BASE"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_HDREXT_ELEMENT_CLASS" value="Network/Extension/RTPHeader" c:type="GST_RTP_HDREXT_ELEMENT_CLASS" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h">Constant string used in element classification to signal that this element +is a RTP header extension.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_HDREXT_NTP_56" value="ntp-56" c:type="GST_RTP_HDREXT_NTP_56"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_HDREXT_NTP_56_SIZE" value="7" c:type="GST_RTP_HDREXT_NTP_56_SIZE"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTP_HDREXT_NTP_64" value="ntp-64" c:type="GST_RTP_HDREXT_NTP_64"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_HDREXT_NTP_64_SIZE" value="8" c:type="GST_RTP_HDREXT_NTP_64_SIZE"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="RTP_HEADER_EXTENSION" c:identifier="GST_RTP_HEADER_EXTENSION" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_HEADER_EXTENSION_CAST" c:identifier="GST_RTP_HEADER_EXTENSION_CAST" version="1.20" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_HEADER_EXTENSION_CLASS" c:identifier="GST_RTP_HEADER_EXTENSION_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTP_HEADER_EXTENSION_GET_CLASS" c:identifier="GST_RTP_HEADER_EXTENSION_GET_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <constant name="RTP_HEADER_EXTENSION_URI_METADATA_KEY" value="RTP-Header-Extension-URI" c:type="GST_RTP_HEADER_EXTENSION_URI_METADATA_KEY" version="1.20"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_1016_STRING" value="1" c:type="GST_RTP_PAYLOAD_1016_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_CELLB_STRING" value="25" c:type="GST_RTP_PAYLOAD_CELLB_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_CN_STRING" value="13" c:type="GST_RTP_PAYLOAD_CN_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_DVI4_11025_STRING" value="16" c:type="GST_RTP_PAYLOAD_DVI4_11025_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_DVI4_16000_STRING" value="6" c:type="GST_RTP_PAYLOAD_DVI4_16000_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_DVI4_22050_STRING" value="17" c:type="GST_RTP_PAYLOAD_DVI4_22050_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_DVI4_8000_STRING" value="5" c:type="GST_RTP_PAYLOAD_DVI4_8000_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_DYNAMIC_STRING" value="[96, 127]" c:type="GST_RTP_PAYLOAD_DYNAMIC_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_G721_STRING" value="2" c:type="GST_RTP_PAYLOAD_G721_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_G722_STRING" value="9" c:type="GST_RTP_PAYLOAD_G722_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_G723_53" value="17" c:type="GST_RTP_PAYLOAD_G723_53"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTP_PAYLOAD_G723_53_STRING" value="17" c:type="GST_RTP_PAYLOAD_G723_53_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_G723_63" value="16" c:type="GST_RTP_PAYLOAD_G723_63"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTP_PAYLOAD_G723_63_STRING" value="16" c:type="GST_RTP_PAYLOAD_G723_63_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_G723_STRING" value="4" c:type="GST_RTP_PAYLOAD_G723_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_G728_STRING" value="15" c:type="GST_RTP_PAYLOAD_G728_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_G729_STRING" value="18" c:type="GST_RTP_PAYLOAD_G729_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_GSM_STRING" value="3" c:type="GST_RTP_PAYLOAD_GSM_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_H261_STRING" value="31" c:type="GST_RTP_PAYLOAD_H261_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_H263_STRING" value="34" c:type="GST_RTP_PAYLOAD_H263_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <function-macro name="RTP_PAYLOAD_IS_DYNAMIC" c:identifier="GST_RTP_PAYLOAD_IS_DYNAMIC" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">Check if @pt is a dynamic payload type.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <parameters> + <parameter name="pt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h">a payload type</doc> + </parameter> + </parameters> + </function-macro> + <constant name="RTP_PAYLOAD_JPEG_STRING" value="26" c:type="GST_RTP_PAYLOAD_JPEG_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_L16_MONO_STRING" value="11" c:type="GST_RTP_PAYLOAD_L16_MONO_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_L16_STEREO_STRING" value="10" c:type="GST_RTP_PAYLOAD_L16_STEREO_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_LPC_STRING" value="7" c:type="GST_RTP_PAYLOAD_LPC_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_MP2T_STRING" value="33" c:type="GST_RTP_PAYLOAD_MP2T_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_MPA_STRING" value="14" c:type="GST_RTP_PAYLOAD_MPA_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_MPV_STRING" value="32" c:type="GST_RTP_PAYLOAD_MPV_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_NV_STRING" value="28" c:type="GST_RTP_PAYLOAD_NV_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_PCMA_STRING" value="8" c:type="GST_RTP_PAYLOAD_PCMA_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_PCMU_STRING" value="0" c:type="GST_RTP_PAYLOAD_PCMU_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_QCELP_STRING" value="12" c:type="GST_RTP_PAYLOAD_QCELP_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_TS41" value="19" c:type="GST_RTP_PAYLOAD_TS41"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTP_PAYLOAD_TS41_STRING" value="19" c:type="GST_RTP_PAYLOAD_TS41_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="RTP_PAYLOAD_TS48" value="18" c:type="GST_RTP_PAYLOAD_TS48"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTP_PAYLOAD_TS48_STRING" value="18" c:type="GST_RTP_PAYLOAD_TS48_STRING"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="RTP_VERSION" value="2" c:type="GST_RTP_VERSION"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h">The supported RTP version 2.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">Attaches RTP source information to @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">the #GstRTPSourceMeta on @buffer.</doc> + <type name="RTPSourceMeta" c:type="GstRTPSourceMeta*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">pointer to the CSRCs</doc> + <array length="3" zero-terminated="0" c:type="const guint32*"> + <type name="guint32" c:type="guint32"/> + </array> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">Find the #GstRTPSourceMeta on @buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.c">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"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Open @buffer for reading or writing, depending on @flags. The resulting RTCP +buffer state is stored in @rtcp.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a buffer with an RTCP packet</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">flags for the mapping</doc> + <type name="Gst.MapFlags" c:type="GstMapFlags"/> + </parameter> + <parameter name="rtcp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">resulting #GstRTCPBuffer</doc> + <type name="RTCPBuffer" c:type="GstRTCPBuffer*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_new" c:identifier="gst_rtcp_buffer_new" moved-to="RTCPBuffer.new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Create a new buffer for constructing RTCP packets. The packet will have a +maximum size of @mtu.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">A newly allocated buffer.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="mtu" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the maximum mtu size.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_new_copy_data" c:identifier="gst_rtcp_buffer_new_copy_data" moved-to="RTCPBuffer.new_copy_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Create a new buffer and set the data to a copy of @len +bytes of @data and the size to @len. The data will be freed when the buffer +is freed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">A newly allocated buffer with a copy of @data and of size @len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">data for the new buffer</doc> + <array length="1" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the length of data</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_new_take_data" c:identifier="gst_rtcp_buffer_new_take_data" moved-to="RTCPBuffer.new_take_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Create a new buffer and set the data and size of the buffer to @data and @len +respectively. @data will be freed when the buffer is unreffed, so this +function transfers ownership of @data to the new buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">A newly allocated buffer with @data and of size @len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">data for the new buffer</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the length of data</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_validate" c:identifier="gst_rtcp_buffer_validate" moved-to="RTCPBuffer.validate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Check if the data pointed to by @buffer is a valid RTCP packet using +gst_rtcp_buffer_validate_data().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if @buffer is a valid RTCP packet.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the buffer to validate</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_validate_data" c:identifier="gst_rtcp_buffer_validate_data" moved-to="RTCPBuffer.validate_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Check if the @data and @size point to the data of a valid compound, +non-reduced size RTCP packet. +Use this function to validate a packet before using the other functions in +this module.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if the data points to a valid RTCP packet.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the data to validate</doc> + <array length="1" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the length of @data to validate</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_validate_data_reduced" c:identifier="gst_rtcp_buffer_validate_data_reduced" moved-to="RTCPBuffer.validate_data_reduced" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Check if the @data and @size point to the data of a valid RTCP packet. +Use this function to validate a packet before using the other functions in +this module. + +This function is updated to support reduced size rtcp packets according to +RFC 5506 and will validate full compound RTCP packets as well as reduced +size RTCP packets.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if the data points to a valid RTCP packet.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the data to validate</doc> + <array length="1" zero-terminated="0" c:type="guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the length of @data to validate</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_validate_reduced" c:identifier="gst_rtcp_buffer_validate_reduced" moved-to="RTCPBuffer.validate_reduced" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Check if the data pointed to by @buffer is a valid RTCP packet using +gst_rtcp_buffer_validate_reduced().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">TRUE if @buffer is a valid RTCP packet.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the buffer to validate</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_ntp_to_unix" c:identifier="gst_rtcp_ntp_to_unix"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Converts an NTP time to UNIX nanoseconds. @ntptime can typically be +the NTP time of an SR RTCP message and contains, in the upper 32 bits, the +number of seconds since 1900 and, in the lower 32 bits, the fractional +seconds. The resulting value will be the number of nanoseconds since 1970.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the UNIX time for @ntptime in nanoseconds.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="ntptime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">an NTP timestamp</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="rtcp_sdes_name_to_type" c:identifier="gst_rtcp_sdes_name_to_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Convert @name into a @GstRTCPSDESType. @name is typically a key in a +#GstStructure containing SDES items.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the #GstRTCPSDESType for @name or #GST_RTCP_SDES_PRIV when @name +is a private sdes item.</doc> + <type name="RTCPSDESType" c:type="GstRTCPSDESType"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a SDES name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_sdes_type_to_name" c:identifier="gst_rtcp_sdes_type_to_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Converts @type to the string equivalent. The string is typically used as a +key in a #GstStructure containing SDES items.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the string equivalent of @type</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">a #GstRTCPSDESType</doc> + <type name="RTCPSDESType" c:type="GstRTCPSDESType"/> + </parameter> + </parameters> + </function> + <function name="rtcp_unix_to_ntp" c:identifier="gst_rtcp_unix_to_ntp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should +pass a value with nanoseconds since 1970. The NTP time will, in the upper +32 bits, contain the number of seconds since 1900 and, in the lower 32 +bits, the fractional seconds. The resulting value can be used as an ntptime +for constructing SR RTCP packets.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">the NTP time for @unixtime.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="unixtime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtcpbuffer.c">an UNIX timestamp in nanoseconds</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_allocate_data" c:identifier="gst_rtp_buffer_allocate_data" moved-to="RTPBuffer.allocate_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Allocate enough data in @buffer to hold an RTP packet with @csrc_count CSRCs, +a payload length of @payload_len and padding of @pad_len. +@buffer must be writable and all previous memory in @buffer will be freed. +If @pad_len is >0, the padding bit will be set. All other RTP header fields +will be set to 0/FALSE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="payload_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of the payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_calc_header_len" c:identifier="gst_rtp_buffer_calc_header_len" moved-to="RTPBuffer.calc_header_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Calculate the header length of an RTP packet with @csrc_count CSRC entries. +An RTP packet can have at most 15 CSRC entries.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The length of an RTP header with @csrc_count CSRC entries.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_calc_packet_len" c:identifier="gst_rtp_buffer_calc_packet_len" moved-to="RTPBuffer.calc_packet_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Calculate the total length of an RTP packet with a payload size of @payload_len, +a padding of @pad_len and a @csrc_count CSRC entries.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The total length of an RTP header with given parameters.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="payload_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of the payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_calc_payload_len" c:identifier="gst_rtp_buffer_calc_payload_len" moved-to="RTPBuffer.calc_payload_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Calculate the length of the payload of an RTP packet with size @packet_len, +a padding of @pad_len and a @csrc_count CSRC entries.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The length of the payload of an RTP packet with given parameters.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="packet_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of the total RTP packet</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_compare_seqnum" c:identifier="gst_rtp_buffer_compare_seqnum" moved-to="RTPBuffer.compare_seqnum"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Compare two sequence numbers, taking care of wraparounds. This function +returns the difference between @seqnum1 and @seqnum2.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a negative value if @seqnum1 is bigger than @seqnum2, 0 if they +are equal or a positive value if @seqnum1 is smaller than @segnum2.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <parameter name="seqnum1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a sequence number</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="seqnum2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a sequence number</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_default_clock_rate" c:identifier="gst_rtp_buffer_default_clock_rate" moved-to="RTPBuffer.default_clock_rate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Get the default clock-rate for the static payload type @payload_type.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the default clock rate or -1 if the payload type is not static or +the clock-rate is undefined.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="payload_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the static payload type</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_ext_timestamp" c:identifier="gst_rtp_buffer_ext_timestamp" moved-to="RTPBuffer.ext_timestamp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Update the @exttimestamp field with the extended timestamp of @timestamp +For the first call of the method, @exttimestamp should point to a location +with a value of -1. + +This function is able to handle both forward and backward timestamps taking +into account: + - timestamp wraparound making sure that the returned value is properly increased. + - timestamp unwraparound making sure that the returned value is properly decreased.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The extended timestamp of @timestamp or 0 if the result can't go anywhere backwards.</doc> + <type name="guint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="exttimestamp" direction="inout" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a previous extended timestamp</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a new timestamp</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_get_extension_onebyte_header_from_bytes" c:identifier="gst_rtp_buffer_get_extension_onebyte_header_from_bytes" moved-to="RTPBuffer.get_extension_onebyte_header_from_bytes" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Similar to gst_rtp_buffer_get_extension_onebyte_header, but working +on the #GBytes you get from gst_rtp_buffer_get_extension_bytes. +Parses RFC 5285 style header extensions with a one byte header. It will +return the nth extension with the requested id.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">TRUE if @bytes had the requested header extension</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="bytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">#GBytes</doc> + <type name="GLib.Bytes" c:type="GBytes*"/> + </parameter> + <parameter name="bit_pattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The bit-pattern. Anything but 0xBEDE is rejected.</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">The ID of the header extension to be read (between 1 and 14).</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="nth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Read the nth extension packet with the requested ID</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c"> + location for data</doc> + <array length="5" zero-terminated="0" c:type="gpointer*"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the size of the data in bytes</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_map" c:identifier="gst_rtp_buffer_map" moved-to="RTPBuffer.map"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Map the contents of @buffer into @rtp.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">%TRUE if @buffer could be mapped.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">#GstMapFlags</doc> + <type name="Gst.MapFlags" c:type="GstMapFlags"/> + </parameter> + <parameter name="rtp" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">a #GstRTPBuffer</doc> + <type name="RTPBuffer" c:type="GstRTPBuffer*"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_new_allocate" c:identifier="gst_rtp_buffer_new_allocate" moved-to="RTPBuffer.new_allocate"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Allocate a new #GstBuffer with enough data to hold an RTP packet with +@csrc_count CSRCs, a payload length of @payload_len and padding of @pad_len. +All other RTP header fields will be set to 0/FALSE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A newly allocated buffer that can hold an RTP packet with given +parameters.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="payload_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of the payload</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_new_allocate_len" c:identifier="gst_rtp_buffer_new_allocate_len" moved-to="RTPBuffer.new_allocate_len"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Create a new #GstBuffer that can hold an RTP packet that is exactly +@packet_len long. The length of the payload depends on @pad_len and +@csrc_count and can be calculated with gst_rtp_buffer_calc_payload_len(). +All RTP header fields will be set to 0/FALSE.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A newly allocated buffer that can hold an RTP packet of @packet_len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="packet_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the total length of the packet</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the amount of padding</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the number of CSRC entries</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_new_copy_data" c:identifier="gst_rtp_buffer_new_copy_data" moved-to="RTPBuffer.new_copy_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Create a new buffer and set the data to a copy of @len +bytes of @data and the size to @len. The data will be freed when the buffer +is freed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A newly allocated buffer with a copy of @data and of size @len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">data for the new + buffer</doc> + <array length="1" zero-terminated="0" c:type="gconstpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="rtp_buffer_new_take_data" c:identifier="gst_rtp_buffer_new_take_data" moved-to="RTPBuffer.new_take_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">Create a new buffer and set the data and size of the buffer to @data and @len +respectively. @data will be freed when the buffer is unreffed, so this +function transfers ownership of @data to the new buffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">A newly allocated buffer with @data and of size @len.</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c"> + data for the new buffer</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbuffer.c">the length of data</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="rtp_get_header_extension_list" c:identifier="gst_rtp_get_header_extension_list" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Retrieve all the factories of the currently registered RTP header +extensions. Call gst_element_factory_create() with each factory to create +the associated #GstRTPHeaderExtension.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">a #GList of + #GstElementFactory's. Use gst_plugin_feature_list_free() after use</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Gst.ElementFactory"/> + </type> + </return-value> + </function> + <function name="rtp_hdrext_get_ntp_56" c:identifier="gst_rtp_hdrext_get_ntp_56"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Reads the NTP time from the @size NTP-56 extension bytes in @data and store the +result in @ntptime.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the data to read from</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="ntptime" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the result NTP time</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </function> + <function name="rtp_hdrext_get_ntp_64" c:identifier="gst_rtp_hdrext_get_ntp_64"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Reads the NTP time from the @size NTP-64 extension bytes in @data and store the +result in @ntptime.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the data to read from</doc> + <array length="1" zero-terminated="0" c:type="gpointer"> + <type name="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="ntptime" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the result NTP time</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </function> + <function name="rtp_hdrext_set_ntp_56" c:identifier="gst_rtp_hdrext_set_ntp_56"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Writes the NTP time in @ntptime to the format required for the NTP-56 header +extension. @data must hold at least #GST_RTP_HDREXT_NTP_56_SIZE bytes.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the data to write to</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="ntptime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the NTP time</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="rtp_hdrext_set_ntp_64" c:identifier="gst_rtp_hdrext_set_ntp_64"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">Writes the NTP time in @ntptime to the format required for the NTP-64 header +extension. @data must hold at least #GST_RTP_HDREXT_NTP_64_SIZE bytes.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the data to write to</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="ntptime" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtphdrext.c">the NTP time</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="rtp_payload_info_for_name" c:identifier="gst_rtp_payload_info_for_name" moved-to="RTPPayloadInfo.for_name"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">Get the #GstRTPPayloadInfo for @media and @encoding_name. This function is +mostly used to get the default clock-rate and bandwidth for dynamic payload +types specified with @media and @encoding name. + +The search for @encoding_name will be performed in a case insensitive way.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">a #GstRTPPayloadInfo or NULL when no info could be found.</doc> + <type name="RTPPayloadInfo" c:type="const GstRTPPayloadInfo*"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">the media to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="encoding_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">the encoding name to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="rtp_payload_info_for_pt" c:identifier="gst_rtp_payload_info_for_pt" moved-to="RTPPayloadInfo.for_pt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">Get the #GstRTPPayloadInfo for @payload_type. This function is +mostly used to get the default clock-rate and bandwidth for static payload +types specified with @payload_type.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">a #GstRTPPayloadInfo or NULL when no info could be found.</doc> + <type name="RTPPayloadInfo" c:type="const GstRTPPayloadInfo*"/> + </return-value> + <parameters> + <parameter name="payload_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtppayloads.c">the payload_type to find</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtp_source_meta_api_get_type" c:identifier="gst_rtp_source_meta_api_get_type"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <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"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpmeta.h"/> + <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 new file mode 100644 index 0000000000..2046099a58 --- /dev/null +++ b/girs/GstRtsp-1.0.gir @@ -0,0 +1,4842 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <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"/> + <namespace name="GstRtsp" version="1.0" shared-library="libgstrtsp-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="IS_RTSP_EXTENSION" c:identifier="GST_IS_RTSP_EXTENSION" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <record name="RTSPAuthCredential" c:type="GstRTSPAuthCredential" version="1.12" glib:type-name="GstRTSPAuthCredential" glib:get-type="gst_rtsp_auth_credential_get_type" c:symbol-prefix="rtsp_auth_credential"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">RTSP Authentication credentials</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <field name="scheme" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">a #GstRTSPAuthMethod</doc> + <type name="RTSPAuthMethod" c:type="GstRTSPAuthMethod"/> + </field> + <field name="params" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">A NULL-terminated array of #GstRTSPAuthParam</doc> + <type name="RTSPAuthParam" c:type="GstRTSPAuthParam**"/> + </field> + <field name="authorization" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">The authorization for the basic schem</doc> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <enumeration name="RTSPAuthMethod" glib:type-name="GstRTSPAuthMethod" glib:get-type="gst_rtsp_auth_method_get_type" c:type="GstRTSPAuthMethod"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">Authentication methods, ordered by strength</doc> + <member name="none" value="0" c:identifier="GST_RTSP_AUTH_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">no authentication</doc> + </member> + <member name="basic" value="1" c:identifier="GST_RTSP_AUTH_BASIC" glib:nick="basic"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">basic authentication</doc> + </member> + <member name="digest" value="2" c:identifier="GST_RTSP_AUTH_DIGEST" glib:nick="digest"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">digest authentication</doc> + </member> + </enumeration> + <record name="RTSPAuthParam" c:type="GstRTSPAuthParam" version="1.12" glib:type-name="GstRTSPAuthParam" glib:get-type="gst_rtsp_auth_param_get_type" c:symbol-prefix="rtsp_auth_param"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">RTSP Authentication parameter</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <field name="name" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">The name of the parameter</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="value" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">The value of the parameter</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <method name="copy" c:identifier="gst_rtsp_auth_param_copy"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="full"> + <type name="RTSPAuthParam" c:type="GstRTSPAuthParam*"/> + </return-value> + <parameters> + <instance-parameter name="param" transfer-ownership="none"> + <type name="RTSPAuthParam" c:type="GstRTSPAuthParam*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_rtsp_auth_param_free"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="param" transfer-ownership="none"> + <type name="RTSPAuthParam" c:type="GstRTSPAuthParam*"/> + </instance-parameter> + </parameters> + </method> + </record> + <record name="RTSPConnection" c:type="GstRTSPConnection" disguised="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">This object manages the RTSP connection to the server. It provides function +to receive and send bytes and messages.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <method name="clear_auth_params" c:identifier="gst_rtsp_connection_clear_auth_params"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Clear the list of authentication directives stored in @conn.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="close" c:identifier="gst_rtsp_connection_close"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Close the connected @conn. After this call, the connection is in the same +state as when it was first created.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="connect" c:identifier="gst_rtsp_connection_connect" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to connect to the url of @conn made with +gst_rtsp_connection_create(). If @timeout is %NULL this function can block +forever. If @timeout contains a valid timeout, this function will return +#GST_RTSP_ETIMEOUT after the timeout expired. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when a connection could be made.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a GTimeVal timeout</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="connect_usec" c:identifier="gst_rtsp_connection_connect_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to connect to the url of @conn made with +gst_rtsp_connection_create(). If @timeout is 0 this function can block +forever. If @timeout contains a valid timeout, this function will return +#GST_RTSP_ETIMEOUT after the timeout expired. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when a connection could be made.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout in microseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="connect_with_response" c:identifier="gst_rtsp_connection_connect_with_response" version="1.8" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to connect to the url of @conn made with +gst_rtsp_connection_create(). If @timeout is %NULL this function can block +forever. If @timeout contains a valid timeout, this function will return +#GST_RTSP_ETIMEOUT after the timeout expired. If @conn is set to tunneled, +@response will contain a response to the tunneling request messages. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when a connection could be made.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a GTimeVal timeout</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + <parameter name="response" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="connect_with_response_usec" c:identifier="gst_rtsp_connection_connect_with_response_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to connect to the url of @conn made with +gst_rtsp_connection_create(). If @timeout is 0 this function can block +forever. If @timeout contains a valid timeout, this function will return +#GST_RTSP_ETIMEOUT after the timeout expired. If @conn is set to tunneled, +@response will contain a response to the tunneling request messages. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when a connection could be made.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout in microseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="response" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="do_tunnel" c:identifier="gst_rtsp_connection_do_tunnel"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">If @conn received the first tunnel connection and @conn2 received +the second tunnel connection, link the two connections together so that +@conn manages the tunneled connection. + +After this call, @conn2 cannot be used anymore and must be freed with +gst_rtsp_connection_free(). + +If @conn2 is %NULL then only the base64 decoding context will be setup for +@conn.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">return 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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="conn2" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection or %NULL</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </parameter> + </parameters> + </method> + <method name="flush" c:identifier="gst_rtsp_connection_flush"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Start or stop the flushing action on @conn. When flushing, all current +and future actions on @conn will return #GST_RTSP_EINTR until the connection +is set to non-flushing mode again.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="flush" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">start or stop the flush</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_rtsp_connection_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Close and free @conn.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ignore_x_server_reply" c:identifier="gst_rtsp_connection_get_ignore_x_server_reply" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Get the ignore_x_server_reply value.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">returns %TRUE if the x-server-ip-address header reply will be + ignored, else returns %FALSE</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="const GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ip" c:identifier="gst_rtsp_connection_get_ip"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Retrieve the IP address of the other end of @conn.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">The IP address as a string. this value remains valid until the +connection is closed.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="const GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_read_socket" c:identifier="gst_rtsp_connection_get_read_socket"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Get the file descriptor for reading.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the file descriptor used for reading or %NULL on +error. The file descriptor remains valid until the connection is closed.</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="const GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_remember_session_id" c:identifier="gst_rtsp_connection_get_remember_session_id"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">%TRUE if the #GstRTSPConnection remembers the session id in the +last response to set it on any further request.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tls" c:identifier="gst_rtsp_connection_get_tls" version="1.2" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Get the TLS connection of @conn. + +For client side this will return the #GTlsClientConnection when connected +over TLS. + +For server side connections, this function will create a GTlsServerConnection +when called the first time and will return that same connection on subsequent +calls. The server is then responsible for configuring the TLS connection.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the TLS connection for @conn.</doc> + <type name="Gio.TlsConnection" c:type="GTlsConnection*"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tls_database" c:identifier="gst_rtsp_connection_get_tls_database" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Gets the anchor certificate authorities database that will be used +after a server certificate can't be verified with the default +certificate database.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the anchor certificate authorities database, or NULL if no +database has been previously set. Use g_object_unref() to release the +certificate database.</doc> + <type name="Gio.TlsDatabase" c:type="GTlsDatabase*"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tls_interaction" c:identifier="gst_rtsp_connection_get_tls_interaction" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Gets a #GTlsInteraction object to be used when the connection or certificate +database need to interact with the user. This will be used to prompt the +user for passwords where necessary.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a reference on the #GTlsInteraction. Use +g_object_unref() to release.</doc> + <type name="Gio.TlsInteraction" c:type="GTlsInteraction*"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tls_validation_flags" c:identifier="gst_rtsp_connection_get_tls_validation_flags" version="1.2.1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Gets the TLS validation flags used to verify the peer certificate +when a TLS connection is established. + +GLib guarantees that if certificate verification fails, at least one error +will be set, but it does not guarantee that all possible errors will be +set. Accordingly, you may not safely decide to ignore any particular type +of error. + +For example, it would be incorrect to ignore %G_TLS_CERTIFICATE_EXPIRED if +you want to allow expired certificates, because this could potentially be +the only error flag set even if other problems exist with the certificate.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the validation flags.</doc> + <type name="Gio.TlsCertificateFlags" c:type="GTlsCertificateFlags"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tunnelid" c:identifier="gst_rtsp_connection_get_tunnelid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Get the tunnel session id the connection.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">returns a non-empty string if @conn is being tunneled over HTTP.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="const GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_url" c:identifier="gst_rtsp_connection_get_url"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Retrieve the URL of the other end of @conn.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">The URL. This value remains valid until the +connection is freed.</doc> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="const GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_write_socket" c:identifier="gst_rtsp_connection_get_write_socket"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Get the file descriptor for writing.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the file descriptor used for writing or NULL on +error. The file descriptor remains valid until the connection is closed.</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="const GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_tunneled" c:identifier="gst_rtsp_connection_is_tunneled"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Get the tunneling state of the connection.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">if @conn is using HTTP tunneling.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="const GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="next_timeout" c:identifier="gst_rtsp_connection_next_timeout" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Calculate the next timeout for @conn, storing the result in @timeout.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="next_timeout_usec" c:identifier="gst_rtsp_connection_next_timeout_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Calculate the next timeout for @conn</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#the next timeout in microseconds</doc> + <type name="gint64" c:type="gint64"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="poll" c:identifier="gst_rtsp_connection_poll" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Wait up to the specified @timeout for the connection to become available for +at least one of the operations specified in @events. When the function returns +with #GST_RTSP_OK, @revents will contain a bitmask of available operations on +@conn. + +@timeout can be %NULL, in which case this function might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="events" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a bitmask of #GstRTSPEvent flags to check</doc> + <type name="RTSPEvent" c:type="GstRTSPEvent"/> + </parameter> + <parameter name="revents" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">location for result flags</doc> + <type name="RTSPEvent" c:type="GstRTSPEvent*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="poll_usec" c:identifier="gst_rtsp_connection_poll_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Wait up to the specified @timeout for the connection to become available for +at least one of the operations specified in @events. When the function returns +with #GST_RTSP_OK, @revents will contain a bitmask of available operations on +@conn. + +@timeout can be 0, in which case this function might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="events" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a bitmask of #GstRTSPEvent flags to check</doc> + <type name="RTSPEvent" c:type="GstRTSPEvent"/> + </parameter> + <parameter name="revents" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">location for result flags</doc> + <type name="RTSPEvent" c:type="GstRTSPEvent*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout in microseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="read" c:identifier="gst_rtsp_connection_read" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to read @size bytes into @data from the connected @conn, blocking up to +the specified @timeout. @timeout can be %NULL, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the data to read</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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value or %NULL</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="read_usec" c:identifier="gst_rtsp_connection_read_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to read @size bytes into @data from the connected @conn, blocking up to +the specified @timeout. @timeout can be 0, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the data to read</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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value in microseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="receive" c:identifier="gst_rtsp_connection_receive" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to read into @message from the connected @conn, blocking up to +the specified @timeout. @timeout can be %NULL, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the message to read</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value or %NULL</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="receive_usec" c:identifier="gst_rtsp_connection_receive_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to read into @message from the connected @conn, blocking up to +the specified @timeout. @timeout can be 0, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the message to read</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value or 0</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="reset_timeout" c:identifier="gst_rtsp_connection_reset_timeout"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Reset the timeout of @conn.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + </parameters> + </method> + <method name="send" c:identifier="gst_rtsp_connection_send" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to send @message to the connected @conn, blocking up to +the specified @timeout. @timeout can be %NULL, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the message to send</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value or %NULL</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="send_messages" c:identifier="gst_rtsp_connection_send_messages" version="1.16" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="messages" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the number of messages to send</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value or %NULL</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="send_messages_usec" c:identifier="gst_rtsp_connection_send_messages_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to send @messages to the connected @conn, blocking up to +the specified @timeout. @timeout can be 0, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK on Since.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="messages" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the number of messages to send</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value in microseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="send_usec" c:identifier="gst_rtsp_connection_send_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to send @message to the connected @conn, blocking up to +the specified @timeout. @timeout can be 0, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the message to send</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value in microseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_accept_certificate_func" c:identifier="gst_rtsp_connection_set_accept_certificate_func" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Sets a custom accept-certificate function for checking certificates for +validity. This will directly map to #GTlsConnection 's "accept-certificate" +signal and be performed after the default checks of #GstRTSPConnection +(checking against the #GTlsDatabase with the given #GTlsCertificateFlags) +have failed. If no #GTlsDatabase is set on this connection, only @func will +be called.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnectionAcceptCertificateFunc to check certificates</doc> + <type name="RTSPConnectionAcceptCertificateFunc" c:type="GstRTSPConnectionAcceptCertificateFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">User data passed to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy_notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GDestroyNotify for @user_data</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_auth" c:identifier="gst_rtsp_connection_set_auth"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Configure @conn for authentication mode @method with @user and @pass as the +user and password respectively.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">authentication method</doc> + <type name="RTSPAuthMethod" c:type="GstRTSPAuthMethod"/> + </parameter> + <parameter name="user" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the user</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="pass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the password</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_auth_param" c:identifier="gst_rtsp_connection_set_auth_param"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Setup @conn with authentication directives. This is not necessary for +methods #GST_RTSP_AUTH_NONE and #GST_RTSP_AUTH_BASIC. For +#GST_RTSP_AUTH_DIGEST, directives should be taken from the digest challenge +in the WWW-Authenticate response header and can include realm, domain, +nonce, opaque, stale, algorithm, qop as per RFC2617.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="param" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">authentication directive</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">value</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_content_length_limit" c:identifier="gst_rtsp_connection_set_content_length_limit" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Configure @conn to use the specified Content-Length limit. +Both requests and responses are validated. If content-length is +exceeded, ENOMEM error will be returned.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="limit" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Content-Length limit</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_http_mode" c:identifier="gst_rtsp_connection_set_http_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">By setting the HTTP mode to %TRUE the message parsing will support HTTP +messages in addition to the RTSP messages. It will also disable the +automatic handling of setting up an HTTP tunnel.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="enable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">%TRUE to enable manual HTTP mode</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_ignore_x_server_reply" c:identifier="gst_rtsp_connection_set_ignore_x_server_reply" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Set whether to ignore the x-server-ip-address header reply or not. If the +header is ignored, the original address will be used instead.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="ignore" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">%TRUE to ignore the x-server-ip-address header reply or %FALSE to + comply with it (%FALSE is the default).</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_ip" c:identifier="gst_rtsp_connection_set_ip"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Set the IP address of the server.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="ip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">an ip address</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_proxy" c:identifier="gst_rtsp_connection_set_proxy"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Set the proxy host and port.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="host" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the proxy host</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the proxy port</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_qos_dscp" c:identifier="gst_rtsp_connection_set_qos_dscp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Configure @conn to use the specified DSCP value.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="qos_dscp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">DSCP value</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_remember_session_id" c:identifier="gst_rtsp_connection_set_remember_session_id"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Sets if the #GstRTSPConnection should remember the session id from the last +response received and force it onto any further requests. + +The default value is %TRUE</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="remember" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">%TRUE if the connection should remember the session id</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_tls_database" c:identifier="gst_rtsp_connection_set_tls_database" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Sets the anchor certificate authorities database. This certificate +database will be used to verify the server's certificate in case it +can't be verified with the default certificate database first.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="database" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GTlsDatabase</doc> + <type name="Gio.TlsDatabase" c:type="GTlsDatabase*"/> + </parameter> + </parameters> + </method> + <method name="set_tls_interaction" c:identifier="gst_rtsp_connection_set_tls_interaction" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Sets a #GTlsInteraction object to be used when the connection or certificate +database need to interact with the user. This will be used to prompt the +user for passwords where necessary.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="interaction" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GTlsInteraction</doc> + <type name="Gio.TlsInteraction" c:type="GTlsInteraction*"/> + </parameter> + </parameters> + </method> + <method name="set_tls_validation_flags" c:identifier="gst_rtsp_connection_set_tls_validation_flags" version="1.2.1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Sets the TLS validation flags to be used to verify the peer +certificate when a TLS connection is established. + +GLib guarantees that if certificate verification fails, at least one error +will be set, but it does not guarantee that all possible errors will be +set. Accordingly, you may not safely decide to ignore any particular type +of error. + +For example, it would be incorrect to mask %G_TLS_CERTIFICATE_EXPIRED if +you want to allow expired certificates, because this could potentially be +the only error flag set even if other problems exist with the certificate.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">TRUE if the validation flags are set correctly, or FALSE if +@conn is NULL or is not a TLS connection.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the validation flags.</doc> + <type name="Gio.TlsCertificateFlags" c:type="GTlsCertificateFlags"/> + </parameter> + </parameters> + </method> + <method name="set_tunneled" c:identifier="gst_rtsp_connection_set_tunneled"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Set the HTTP tunneling state of the connection. This must be configured before +the @conn is connected.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="tunneled" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the new state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="write" c:identifier="gst_rtsp_connection_write" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to write @size bytes of @data to the connected @conn, blocking up to +the specified @timeout. @timeout can be %NULL, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the data to write</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value or %NULL</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="write_usec" c:identifier="gst_rtsp_connection_write_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Attempt to write @size bytes of @data to the connected @conn, blocking up to +the specified @timeout. @timeout can be 0, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the data to write</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout value or 0</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <function name="accept" c:identifier="gst_rtsp_connection_accept"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Accept a new connection on @socket and create a new #GstRTSPConnection for +handling communication on new socket.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when @conn contains a valid connection.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="socket" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a socket</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </parameter> + <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">storage for a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection**"/> + </parameter> + <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GCancellable to cancel the operation</doc> + <type name="Gio.Cancellable" c:type="GCancellable*"/> + </parameter> + </parameters> + </function> + <function name="create" c:identifier="gst_rtsp_connection_create"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Create a newly allocated #GstRTSPConnection from @url and store it in @conn. +The connection will not yet attempt to connect to @url, use +gst_rtsp_connection_connect(). + +A copy of @url will be made.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when @conn contains a valid connection.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPUrl</doc> + <type name="RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">storage for a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection**"/> + </parameter> + </parameters> + </function> + <function name="create_from_socket" c:identifier="gst_rtsp_connection_create_from_socket"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Create a new #GstRTSPConnection for handling communication on the existing +socket @socket. The @initial_buffer contains zero terminated data already +read from @socket which should be used before starting to read new data.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when @conn contains a valid connection.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="socket" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GSocket</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </parameter> + <parameter name="ip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the IP address of the other end</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the port used by the other end</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="initial_buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">data already read from @fd</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">storage for a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection**"/> + </parameter> + </parameters> + </function> + </record> + <callback name="RTSPConnectionAcceptCertificateFunc" c:type="GstRTSPConnectionAcceptCertificateFunc"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="conn" transfer-ownership="none"> + <type name="Gio.TlsConnection" c:type="GTlsConnection*"/> + </parameter> + <parameter name="peer_cert" transfer-ownership="none"> + <type name="Gio.TlsCertificate" c:type="GTlsCertificate*"/> + </parameter> + <parameter name="errors" transfer-ownership="none"> + <type name="Gio.TlsCertificateFlags" c:type="GTlsCertificateFlags"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <bitfield name="RTSPEvent" glib:type-name="GstRTSPEvent" glib:get-type="gst_rtsp_event_get_type" c:type="GstRTSPEvent"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">The possible events for the connection.</doc> + <member name="read" value="1" c:identifier="GST_RTSP_EV_READ" glib:nick="read"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">connection is readable</doc> + </member> + <member name="write" value="2" c:identifier="GST_RTSP_EV_WRITE" glib:nick="write"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">connection is writable</doc> + </member> + </bitfield> + <interface name="RTSPExtension" c:symbol-prefix="rtsp_extension" c:type="GstRTSPExtension" glib:type-name="GstRTSPExtension" glib:get-type="gst_rtsp_extension_get_type" glib:type-struct="RTSPExtensionInterface"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.c">This interface is implemented e.g. by the Windows Media Streaming RTSP + exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <virtual-method name="after_send" invoker="after_send"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="before_send" invoker="before_send"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="configure_stream" invoker="configure_stream"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="detect_server" invoker="detect_server"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_transports" invoker="get_transports"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="protocols" transfer-ownership="none"> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </parameter> + <parameter name="transport" transfer-ownership="none"> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="parse_sdp" invoker="parse_sdp"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="sdp" transfer-ownership="none"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="receive_request" invoker="receive_request"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="send" invoker="send"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="setup_media" invoker="setup_media"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="media" transfer-ownership="none"> + <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="stream_select" invoker="stream_select"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="url" transfer-ownership="none"> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </parameter> + </parameters> + </virtual-method> + <method name="after_send" c:identifier="gst_rtsp_extension_after_send"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="before_send" c:identifier="gst_rtsp_extension_before_send"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="configure_stream" c:identifier="gst_rtsp_extension_configure_stream"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="detect_server" c:identifier="gst_rtsp_extension_detect_server"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="get_transports" c:identifier="gst_rtsp_extension_get_transports"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="protocols" transfer-ownership="none"> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </parameter> + <parameter name="transport" transfer-ownership="none"> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </method> + <method name="parse_sdp" c:identifier="gst_rtsp_extension_parse_sdp"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="sdp" transfer-ownership="none"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="receive_request" c:identifier="gst_rtsp_extension_receive_request"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="send" c:identifier="gst_rtsp_extension_send"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="setup_media" c:identifier="gst_rtsp_extension_setup_media"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="media" transfer-ownership="none"> + <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/> + </parameter> + </parameters> + </method> + <method name="stream_select" c:identifier="gst_rtsp_extension_stream_select"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </instance-parameter> + <parameter name="url" transfer-ownership="none"> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </parameter> + </parameters> + </method> + <glib:signal name="send" when="last"> + <return-value transfer-ownership="none"> + <type name="RTSPResult"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="p0" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + </interface> + <record name="RTSPExtensionInterface" c:type="GstRTSPExtensionInterface" glib:is-gtype-struct-for="RTSPExtension"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h">An interface representing RTSP extensions.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <field name="parent"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="detect_server"> + <callback name="detect_server"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="before_send"> + <callback name="before_send"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="after_send"> + <callback name="after_send"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="parse_sdp"> + <callback name="parse_sdp"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="sdp" transfer-ownership="none"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="setup_media"> + <callback name="setup_media"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="configure_stream"> + <callback name="configure_stream"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_transports"> + <callback name="get_transports"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="protocols" transfer-ownership="none"> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </parameter> + <parameter name="transport" transfer-ownership="none"> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stream_select"> + <callback name="stream_select"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="url" transfer-ownership="none"> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="send"> + <callback name="send"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="receive_request"> + <callback name="receive_request"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="RTSPFamily" glib:type-name="GstRTSPFamily" glib:get-type="gst_rtsp_family_get_type" c:type="GstRTSPFamily"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">The possible network families.</doc> + <member name="none" value="0" c:identifier="GST_RTSP_FAM_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">unknown network family</doc> + </member> + <member name="inet" value="1" c:identifier="GST_RTSP_FAM_INET" glib:nick="inet"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">internet</doc> + </member> + <member name="inet6" value="2" c:identifier="GST_RTSP_FAM_INET6" glib:nick="inet6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">internet V6</doc> + </member> + </enumeration> + <enumeration name="RTSPHeaderField" glib:type-name="GstRTSPHeaderField" glib:get-type="gst_rtsp_header_field_get_type" c:type="GstRTSPHeaderField"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">Enumeration of rtsp header fields</doc> + <member name="invalid" value="0" c:identifier="GST_RTSP_HDR_INVALID" glib:nick="invalid"> + </member> + <member name="accept" value="1" c:identifier="GST_RTSP_HDR_ACCEPT" glib:nick="accept"> + </member> + <member name="accept_encoding" value="2" c:identifier="GST_RTSP_HDR_ACCEPT_ENCODING" glib:nick="accept-encoding"> + </member> + <member name="accept_language" value="3" c:identifier="GST_RTSP_HDR_ACCEPT_LANGUAGE" glib:nick="accept-language"> + </member> + <member name="allow" value="4" c:identifier="GST_RTSP_HDR_ALLOW" glib:nick="allow"> + </member> + <member name="authorization" value="5" c:identifier="GST_RTSP_HDR_AUTHORIZATION" glib:nick="authorization"> + </member> + <member name="bandwidth" value="6" c:identifier="GST_RTSP_HDR_BANDWIDTH" glib:nick="bandwidth"> + </member> + <member name="blocksize" value="7" c:identifier="GST_RTSP_HDR_BLOCKSIZE" glib:nick="blocksize"> + </member> + <member name="cache_control" value="8" c:identifier="GST_RTSP_HDR_CACHE_CONTROL" glib:nick="cache-control"> + </member> + <member name="conference" value="9" c:identifier="GST_RTSP_HDR_CONFERENCE" glib:nick="conference"> + </member> + <member name="connection" value="10" c:identifier="GST_RTSP_HDR_CONNECTION" glib:nick="connection"> + </member> + <member name="content_base" value="11" c:identifier="GST_RTSP_HDR_CONTENT_BASE" glib:nick="content-base"> + </member> + <member name="content_encoding" value="12" c:identifier="GST_RTSP_HDR_CONTENT_ENCODING" glib:nick="content-encoding"> + </member> + <member name="content_language" value="13" c:identifier="GST_RTSP_HDR_CONTENT_LANGUAGE" glib:nick="content-language"> + </member> + <member name="content_length" value="14" c:identifier="GST_RTSP_HDR_CONTENT_LENGTH" glib:nick="content-length"> + </member> + <member name="content_location" value="15" c:identifier="GST_RTSP_HDR_CONTENT_LOCATION" glib:nick="content-location"> + </member> + <member name="content_type" value="16" c:identifier="GST_RTSP_HDR_CONTENT_TYPE" glib:nick="content-type"> + </member> + <member name="cseq" value="17" c:identifier="GST_RTSP_HDR_CSEQ" glib:nick="cseq"> + </member> + <member name="date" value="18" c:identifier="GST_RTSP_HDR_DATE" glib:nick="date"> + </member> + <member name="expires" value="19" c:identifier="GST_RTSP_HDR_EXPIRES" glib:nick="expires"> + </member> + <member name="from" value="20" c:identifier="GST_RTSP_HDR_FROM" glib:nick="from"> + </member> + <member name="if_modified_since" value="21" c:identifier="GST_RTSP_HDR_IF_MODIFIED_SINCE" glib:nick="if-modified-since"> + </member> + <member name="last_modified" value="22" c:identifier="GST_RTSP_HDR_LAST_MODIFIED" glib:nick="last-modified"> + </member> + <member name="proxy_authenticate" value="23" c:identifier="GST_RTSP_HDR_PROXY_AUTHENTICATE" glib:nick="proxy-authenticate"> + </member> + <member name="proxy_require" value="24" c:identifier="GST_RTSP_HDR_PROXY_REQUIRE" glib:nick="proxy-require"> + </member> + <member name="public" value="25" c:identifier="GST_RTSP_HDR_PUBLIC" glib:nick="public"> + </member> + <member name="range" value="26" c:identifier="GST_RTSP_HDR_RANGE" glib:nick="range"> + </member> + <member name="referer" value="27" c:identifier="GST_RTSP_HDR_REFERER" glib:nick="referer"> + </member> + <member name="require" value="28" c:identifier="GST_RTSP_HDR_REQUIRE" glib:nick="require"> + </member> + <member name="retry_after" value="29" c:identifier="GST_RTSP_HDR_RETRY_AFTER" glib:nick="retry-after"> + </member> + <member name="rtp_info" value="30" c:identifier="GST_RTSP_HDR_RTP_INFO" glib:nick="rtp-info"> + </member> + <member name="scale" value="31" c:identifier="GST_RTSP_HDR_SCALE" glib:nick="scale"> + </member> + <member name="session" value="32" c:identifier="GST_RTSP_HDR_SESSION" glib:nick="session"> + </member> + <member name="server" value="33" c:identifier="GST_RTSP_HDR_SERVER" glib:nick="server"> + </member> + <member name="speed" value="34" c:identifier="GST_RTSP_HDR_SPEED" glib:nick="speed"> + </member> + <member name="transport" value="35" c:identifier="GST_RTSP_HDR_TRANSPORT" glib:nick="transport"> + </member> + <member name="unsupported" value="36" c:identifier="GST_RTSP_HDR_UNSUPPORTED" glib:nick="unsupported"> + </member> + <member name="user_agent" value="37" c:identifier="GST_RTSP_HDR_USER_AGENT" glib:nick="user-agent"> + </member> + <member name="via" value="38" c:identifier="GST_RTSP_HDR_VIA" glib:nick="via"> + </member> + <member name="www_authenticate" value="39" c:identifier="GST_RTSP_HDR_WWW_AUTHENTICATE" glib:nick="www-authenticate"> + </member> + <member name="client_challenge" value="40" c:identifier="GST_RTSP_HDR_CLIENT_CHALLENGE" glib:nick="client-challenge"> + </member> + <member name="real_challenge1" value="41" c:identifier="GST_RTSP_HDR_REAL_CHALLENGE1" glib:nick="real-challenge1"> + </member> + <member name="real_challenge2" value="42" c:identifier="GST_RTSP_HDR_REAL_CHALLENGE2" glib:nick="real-challenge2"> + </member> + <member name="real_challenge3" value="43" c:identifier="GST_RTSP_HDR_REAL_CHALLENGE3" glib:nick="real-challenge3"> + </member> + <member name="subscribe" value="44" c:identifier="GST_RTSP_HDR_SUBSCRIBE" glib:nick="subscribe"> + </member> + <member name="alert" value="45" c:identifier="GST_RTSP_HDR_ALERT" glib:nick="alert"> + </member> + <member name="client_id" value="46" c:identifier="GST_RTSP_HDR_CLIENT_ID" glib:nick="client-id"> + </member> + <member name="company_id" value="47" c:identifier="GST_RTSP_HDR_COMPANY_ID" glib:nick="company-id"> + </member> + <member name="guid" value="48" c:identifier="GST_RTSP_HDR_GUID" glib:nick="guid"> + </member> + <member name="region_data" value="49" c:identifier="GST_RTSP_HDR_REGION_DATA" glib:nick="region-data"> + </member> + <member name="max_asm_width" value="50" c:identifier="GST_RTSP_HDR_MAX_ASM_WIDTH" glib:nick="max-asm-width"> + </member> + <member name="language" value="51" c:identifier="GST_RTSP_HDR_LANGUAGE" glib:nick="language"> + </member> + <member name="player_start_time" value="52" c:identifier="GST_RTSP_HDR_PLAYER_START_TIME" glib:nick="player-start-time"> + </member> + <member name="location" value="53" c:identifier="GST_RTSP_HDR_LOCATION" glib:nick="location"> + </member> + <member name="etag" value="54" c:identifier="GST_RTSP_HDR_ETAG" glib:nick="etag"> + </member> + <member name="if_match" value="55" c:identifier="GST_RTSP_HDR_IF_MATCH" glib:nick="if-match"> + </member> + <member name="accept_charset" value="56" c:identifier="GST_RTSP_HDR_ACCEPT_CHARSET" glib:nick="accept-charset"> + </member> + <member name="supported" value="57" c:identifier="GST_RTSP_HDR_SUPPORTED" glib:nick="supported"> + </member> + <member name="vary" value="58" c:identifier="GST_RTSP_HDR_VARY" glib:nick="vary"> + </member> + <member name="x_accelerate_streaming" value="59" c:identifier="GST_RTSP_HDR_X_ACCELERATE_STREAMING" glib:nick="x-accelerate-streaming"> + </member> + <member name="x_accept_authent" value="60" c:identifier="GST_RTSP_HDR_X_ACCEPT_AUTHENT" glib:nick="x-accept-authent"> + </member> + <member name="x_accept_proxy_authent" value="61" c:identifier="GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT" glib:nick="x-accept-proxy-authent"> + </member> + <member name="x_broadcast_id" value="62" c:identifier="GST_RTSP_HDR_X_BROADCAST_ID" glib:nick="x-broadcast-id"> + </member> + <member name="x_burst_streaming" value="63" c:identifier="GST_RTSP_HDR_X_BURST_STREAMING" glib:nick="x-burst-streaming"> + </member> + <member name="x_notice" value="64" c:identifier="GST_RTSP_HDR_X_NOTICE" glib:nick="x-notice"> + </member> + <member name="x_player_lag_time" value="65" c:identifier="GST_RTSP_HDR_X_PLAYER_LAG_TIME" glib:nick="x-player-lag-time"> + </member> + <member name="x_playlist" value="66" c:identifier="GST_RTSP_HDR_X_PLAYLIST" glib:nick="x-playlist"> + </member> + <member name="x_playlist_change_notice" value="67" c:identifier="GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE" glib:nick="x-playlist-change-notice"> + </member> + <member name="x_playlist_gen_id" value="68" c:identifier="GST_RTSP_HDR_X_PLAYLIST_GEN_ID" glib:nick="x-playlist-gen-id"> + </member> + <member name="x_playlist_seek_id" value="69" c:identifier="GST_RTSP_HDR_X_PLAYLIST_SEEK_ID" glib:nick="x-playlist-seek-id"> + </member> + <member name="x_proxy_client_agent" value="70" c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_AGENT" glib:nick="x-proxy-client-agent"> + </member> + <member name="x_proxy_client_verb" value="71" c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_VERB" glib:nick="x-proxy-client-verb"> + </member> + <member name="x_receding_playlistchange" value="72" c:identifier="GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE" glib:nick="x-receding-playlistchange"> + </member> + <member name="x_rtp_info" value="73" c:identifier="GST_RTSP_HDR_X_RTP_INFO" glib:nick="x-rtp-info"> + </member> + <member name="x_startupprofile" value="74" c:identifier="GST_RTSP_HDR_X_STARTUPPROFILE" glib:nick="x-startupprofile"> + </member> + <member name="timestamp" value="75" c:identifier="GST_RTSP_HDR_TIMESTAMP" glib:nick="timestamp"> + </member> + <member name="authentication_info" value="76" c:identifier="GST_RTSP_HDR_AUTHENTICATION_INFO" glib:nick="authentication-info"> + </member> + <member name="host" value="77" c:identifier="GST_RTSP_HDR_HOST" glib:nick="host"> + </member> + <member name="pragma" value="78" c:identifier="GST_RTSP_HDR_PRAGMA" glib:nick="pragma"> + </member> + <member name="x_server_ip_address" value="79" c:identifier="GST_RTSP_HDR_X_SERVER_IP_ADDRESS" glib:nick="x-server-ip-address"> + </member> + <member name="x_sessioncookie" value="80" c:identifier="GST_RTSP_HDR_X_SESSIONCOOKIE" glib:nick="x-sessioncookie"> + </member> + <member name="rtcp_interval" value="81" c:identifier="GST_RTSP_HDR_RTCP_INTERVAL" glib:nick="rtcp-interval"> + </member> + <member name="keymgmt" value="82" c:identifier="GST_RTSP_HDR_KEYMGMT" glib:nick="keymgmt"> + </member> + <member name="pipelined_requests" value="83" c:identifier="GST_RTSP_HDR_PIPELINED_REQUESTS" glib:nick="pipelined-requests"> + </member> + <member name="media_properties" value="84" c:identifier="GST_RTSP_HDR_MEDIA_PROPERTIES" glib:nick="media-properties"> + </member> + <member name="seek_style" value="85" c:identifier="GST_RTSP_HDR_SEEK_STYLE" glib:nick="seek-style"> + </member> + <member name="accept_ranges" value="86" c:identifier="GST_RTSP_HDR_ACCEPT_RANGES" glib:nick="accept-ranges"> + </member> + <member name="frames" value="87" c:identifier="GST_RTSP_HDR_FRAMES" glib:nick="frames"> + </member> + <member name="rate_control" value="88" c:identifier="GST_RTSP_HDR_RATE_CONTROL" glib:nick="rate-control"> + </member> + <member name="last" value="89" c:identifier="GST_RTSP_HDR_LAST" glib:nick="last"> + </member> + </enumeration> + <bitfield name="RTSPLowerTrans" glib:type-name="GstRTSPLowerTrans" glib:get-type="gst_rtsp_lower_trans_get_type" c:type="GstRTSPLowerTrans"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">The different transport methods.</doc> + <member name="unknown" value="0" c:identifier="GST_RTSP_LOWER_TRANS_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">invalid transport flag</doc> + </member> + <member name="udp" value="1" c:identifier="GST_RTSP_LOWER_TRANS_UDP" glib:nick="udp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">stream data over UDP</doc> + </member> + <member name="udp_mcast" value="2" c:identifier="GST_RTSP_LOWER_TRANS_UDP_MCAST" glib:nick="udp-mcast"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">stream data over UDP multicast</doc> + </member> + <member name="tcp" value="4" c:identifier="GST_RTSP_LOWER_TRANS_TCP" glib:nick="tcp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">stream data over TCP</doc> + </member> + <member name="http" value="16" c:identifier="GST_RTSP_LOWER_TRANS_HTTP" glib:nick="http"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">stream data tunneled over HTTP.</doc> + </member> + <member name="tls" value="32" c:identifier="GST_RTSP_LOWER_TRANS_TLS" glib:nick="tls"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">encrypt TCP and HTTP with TLS</doc> + </member> + </bitfield> + <record name="RTSPMessage" c:type="GstRTSPMessage" glib:type-name="GstRTSPMessage" glib:get-type="gst_rtsp_msg_get_type" c:symbol-prefix="rtsp_msg"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Provides methods for creating and parsing request, response and data messages.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">the message type</doc> + <type name="RTSPMsgType" c:type="GstRTSPMsgType"/> + </field> + <union name="type_data" c:type="type_data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <record name="request" c:type="request"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <field name="method" writable="1"> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </field> + <field name="uri" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="version" writable="1"> + <type name="RTSPVersion" c:type="GstRTSPVersion"/> + </field> + </record> + <record name="response" c:type="response"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <field name="code" writable="1"> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </field> + <field name="reason" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="version" writable="1"> + <type name="RTSPVersion" c:type="GstRTSPVersion"/> + </field> + </record> + <record name="data" c:type="data"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <field name="channel" writable="1"> + <type name="guint8" c:type="guint8"/> + </field> + </record> + </union> + <field name="hdr_fields" readable="0" private="1"> + <array name="GLib.Array" c:type="GArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="body" readable="0" private="1"> + <type name="guint8" c:type="guint8*"/> + </field> + <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" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="add_header" c:identifier="gst_rtsp_message_add_header"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Add a header with key @field and @value to @msg. This function takes a copy +of @value.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPHeaderField</doc> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the value of the header</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_header_by_name" c:identifier="gst_rtsp_message_add_header_by_name" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Add a header with key @header and @value to @msg. This function takes a copy +of @value.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="header" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">header string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the value of the header</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="append_headers" c:identifier="gst_rtsp_message_append_headers"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Append the currently configured headers in @msg to the #GString @str suitable +for transmission.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="const GstRTSPMessage*"/> + </instance-parameter> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a string</doc> + <type name="GLib.String" c:type="GString*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="gst_rtsp_message_copy" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Allocate a new copy of @msg and store the result in @copy. The value in +@copy should be release with gst_rtsp_message_free function.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="const GstRTSPMessage*"/> + </instance-parameter> + <parameter name="copy" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">pointer to new #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage**"/> + </parameter> + </parameters> + </method> + <method name="dump" c:identifier="gst_rtsp_message_dump"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Dump the contents of @msg to stdout.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_rtsp_message_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Free the memory used by @msg.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_body" c:identifier="gst_rtsp_message_get_body"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Get the body of @msg. @data remains valid for as long as @msg is valid and +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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="const GstRTSPMessage*"/> + </instance-parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location for the data</doc> + <array length="1" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location for the size of @data</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_body_buffer" c:identifier="gst_rtsp_message_get_body_buffer" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK when @field was found, #GST_RTSP_ENOTIMPL if the key +was not found.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="const GstRTSPMessage*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPHeaderField</doc> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">pointer to hold the result</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="indx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the index of the header</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_header_by_name" c:identifier="gst_rtsp_message_get_header_by_name" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Get the @index header value with key @header from @msg. The result in @value +stays valid as long as it remains present in @msg.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK when @field was found, #GST_RTSP_ENOTIMPL if the key +was not found.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="header" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPHeaderField</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">pointer to hold the result</doc> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the index of the header</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_type" c:identifier="gst_rtsp_message_get_type"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Get the message type of @msg.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the message type.</doc> + <type name="RTSPMsgType" c:type="GstRTSPMsgType"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_body_buffer" c:identifier="gst_rtsp_message_has_body_buffer" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Checks if @msg has a body and the body is stored as #GstBuffer.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">%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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + </parameters> + </method> + <method name="init_data" c:identifier="gst_rtsp_message_init_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Initialize a new data #GstRTSPMessage for @channel.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="channel" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a channel</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="init_request" c:identifier="gst_rtsp_message_init_request"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Initialize @msg as a request message with @method and @uri. To clear @msg +again, use gst_rtsp_message_unset().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the request method to use</doc> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the uri of the request</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="init_response" c:identifier="gst_rtsp_message_init_response"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Initialize @msg with @code and @reason. + +When @reason is %NULL, the default reason for @code will be used. + +When @request is not %NULL, the relevant headers will be copied to the new +response message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="code" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the status code</doc> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </parameter> + <parameter name="reason" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the status reason or %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="request" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the request that triggered the response or %NULL</doc> + <type name="RTSPMessage" c:type="const GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="parse_auth_credentials" c:identifier="gst_rtsp_message_parse_auth_credentials" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Parses the credentials given in a WWW-Authenticate or Authorization header.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c"> + %NULL-terminated array of GstRTSPAuthCredential or %NULL.</doc> + <array c:type="GstRTSPAuthCredential**"> + <type name="RTSPAuthCredential" c:type="GstRTSPAuthCredential*"/> + </array> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPHeaderField</doc> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + </parameters> + </method> + <method name="parse_data" c:identifier="gst_rtsp_message_parse_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Parse the data message @msg and store the channel in @channel.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="channel" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location to hold the channel</doc> + <type name="guint8" c:type="guint8*"/> + </parameter> + </parameters> + </method> + <method name="parse_request" c:identifier="gst_rtsp_message_parse_request"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Parse the request message @msg and store the values @method, @uri and +@version. The result locations can be %NULL if one is not interested in its +value. + +@uri remains valid for as long as @msg is valid and unchanged.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="method" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location to hold the method</doc> + <type name="RTSPMethod" c:type="GstRTSPMethod*"/> + </parameter> + <parameter name="uri" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location to hold the uri</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + <parameter name="version" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location to hold the version</doc> + <type name="RTSPVersion" c:type="GstRTSPVersion*"/> + </parameter> + </parameters> + </method> + <method name="parse_response" c:identifier="gst_rtsp_message_parse_response"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Parse the response message @msg and store the values @code, @reason and +@version. The result locations can be %NULL if one is not interested in its +value. + +@reason remains valid for as long as @msg is valid and unchanged.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="code" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location to hold the status code</doc> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode*"/> + </parameter> + <parameter name="reason" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location to hold the status reason</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + <parameter name="version" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location to hold the version</doc> + <type name="RTSPVersion" c:type="GstRTSPVersion*"/> + </parameter> + </parameters> + </method> + <method name="remove_header" c:identifier="gst_rtsp_message_remove_header"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Remove the @indx header with key @field from @msg. If @indx equals -1, all +headers will be removed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPHeaderField</doc> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + <parameter name="indx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the index of the header</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="remove_header_by_name" c:identifier="gst_rtsp_message_remove_header_by_name" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Remove the @index header with key @header from @msg. If @index equals -1, +all matching headers will be removed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="header" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the header string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the index of the header</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_body" c:identifier="gst_rtsp_message_set_body"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Set the body of @msg to a copy of @data. Any existing body or body buffer +will be replaced by the new body.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the data</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_body_buffer" c:identifier="gst_rtsp_message_set_body_buffer" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Set the body of @msg to @buffer. Any existing body or body buffer +will be replaced by the new body.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location for the data</doc> + <array length="1" zero-terminated="0" c:type="guint8**"> + <type name="guint8" c:type="guint8*"/> + </array> + </parameter> + <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">location for the size of @data</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="steal_body_buffer" c:identifier="gst_rtsp_message_steal_body_buffer" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Set the body of @msg to @data and @size. This method takes ownership of +@data. Any existing body or body buffer will be replaced by the new body.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the data</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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the size of @data</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="take_body_buffer" c:identifier="gst_rtsp_message_take_body_buffer" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="buffer" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Add a header with key @field and @value to @msg. This function takes +ownership of @value.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPHeaderField</doc> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + <parameter name="value" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the value of the header</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="take_header_by_name" c:identifier="gst_rtsp_message_take_header_by_name" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Add a header with key @header and @value to @msg. This function takes +ownership of @value, but not of @header.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + <parameter name="header" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a header string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the value of the header</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="unset" c:identifier="gst_rtsp_message_unset"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Unset the contents of @msg so that it becomes an uninitialized +#GstRTSPMessage again. This function is mostly used in combination with +gst_rtsp_message_init_request(), gst_rtsp_message_init_response() and +gst_rtsp_message_init_data() on stack allocated #GstRTSPMessage structures.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="msg" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </instance-parameter> + </parameters> + </method> + </record> + <bitfield name="RTSPMethod" glib:type-name="GstRTSPMethod" glib:get-type="gst_rtsp_method_get_type" c:type="GstRTSPMethod"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">The different supported RTSP methods.</doc> + <member name="invalid" value="0" c:identifier="GST_RTSP_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">invalid method</doc> + </member> + <member name="describe" value="1" c:identifier="GST_RTSP_DESCRIBE" glib:nick="describe"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the DESCRIBE method</doc> + </member> + <member name="announce" value="2" c:identifier="GST_RTSP_ANNOUNCE" glib:nick="announce"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the ANNOUNCE method</doc> + </member> + <member name="get_parameter" value="4" c:identifier="GST_RTSP_GET_PARAMETER" glib:nick="get-parameter"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the GET_PARAMETER method</doc> + </member> + <member name="options" value="8" c:identifier="GST_RTSP_OPTIONS" glib:nick="options"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the OPTIONS method</doc> + </member> + <member name="pause" value="16" c:identifier="GST_RTSP_PAUSE" glib:nick="pause"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the PAUSE method</doc> + </member> + <member name="play" value="32" c:identifier="GST_RTSP_PLAY" glib:nick="play"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the PLAY method</doc> + </member> + <member name="record" value="64" c:identifier="GST_RTSP_RECORD" glib:nick="record"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the RECORD method</doc> + </member> + <member name="redirect" value="128" c:identifier="GST_RTSP_REDIRECT" glib:nick="redirect"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the REDIRECT method</doc> + </member> + <member name="setup" value="256" c:identifier="GST_RTSP_SETUP" glib:nick="setup"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the SETUP method</doc> + </member> + <member name="set_parameter" value="512" c:identifier="GST_RTSP_SET_PARAMETER" glib:nick="set-parameter"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the SET_PARAMETER method</doc> + </member> + <member name="teardown" value="1024" c:identifier="GST_RTSP_TEARDOWN" glib:nick="teardown"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the TEARDOWN method</doc> + </member> + <member name="get" value="2048" c:identifier="GST_RTSP_GET" glib:nick="get"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the GET method (HTTP).</doc> + </member> + <member name="post" value="4096" c:identifier="GST_RTSP_POST" glib:nick="post"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the POST method (HTTP).</doc> + </member> + <function name="as_text" c:identifier="gst_rtsp_method_as_text"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @method to a string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a string representation of @method.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPMethod</doc> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </parameter> + </parameters> + </function> + </bitfield> + <enumeration name="RTSPMsgType" glib:type-name="GstRTSPMsgType" glib:get-type="gst_rtsp_msg_type_get_type" c:type="GstRTSPMsgType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">The type of a message.</doc> + <member name="invalid" value="0" c:identifier="GST_RTSP_MESSAGE_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">invalid message type</doc> + </member> + <member name="request" value="1" c:identifier="GST_RTSP_MESSAGE_REQUEST" glib:nick="request"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">RTSP request message</doc> + </member> + <member name="response" value="2" c:identifier="GST_RTSP_MESSAGE_RESPONSE" glib:nick="response"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">RTSP response message</doc> + </member> + <member name="http_request" value="3" c:identifier="GST_RTSP_MESSAGE_HTTP_REQUEST" glib:nick="http-request"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">HTTP request message.</doc> + </member> + <member name="http_response" value="4" c:identifier="GST_RTSP_MESSAGE_HTTP_RESPONSE" glib:nick="http-response"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">HTTP response message.</doc> + </member> + <member name="data" value="5" c:identifier="GST_RTSP_MESSAGE_DATA" glib:nick="data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h">data message</doc> + </member> + </enumeration> + <bitfield name="RTSPProfile" glib:type-name="GstRTSPProfile" glib:get-type="gst_rtsp_profile_get_type" c:type="GstRTSPProfile"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">The transfer profile to use.</doc> + <member name="unknown" value="0" c:identifier="GST_RTSP_PROFILE_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">invalid profile</doc> + </member> + <member name="avp" value="1" c:identifier="GST_RTSP_PROFILE_AVP" glib:nick="avp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the Audio/Visual profile (RFC 3551)</doc> + </member> + <member name="savp" value="2" c:identifier="GST_RTSP_PROFILE_SAVP" glib:nick="savp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the secure Audio/Visual profile (RFC 3711)</doc> + </member> + <member name="avpf" value="4" c:identifier="GST_RTSP_PROFILE_AVPF" glib:nick="avpf"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the Audio/Visual profile with feedback (RFC 4585)</doc> + </member> + <member name="savpf" value="8" c:identifier="GST_RTSP_PROFILE_SAVPF" glib:nick="savpf"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the secure Audio/Visual profile with feedback (RFC 5124)</doc> + </member> + </bitfield> + <record name="RTSPRange" c:type="GstRTSPRange"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Provides helper functions to deal with time ranges.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <field name="min" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">minimum value of the range</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="max" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">maximum value of the range</doc> + <type name="gint" c:type="gint"/> + </field> + <function name="convert_units" c:identifier="gst_rtsp_range_convert_units"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Converts the range in-place between different types of units. +Ranges containing the special value #GST_RTSP_TIME_NOW can not be +converted as these are only valid for #GST_RTSP_RANGE_NPT.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">%TRUE if the range could be converted</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a #GstRTSPTimeRange</doc> + <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + <parameter name="unit" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">the unit to convert the range into</doc> + <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/> + </parameter> + </parameters> + </function> + <function name="free" c:identifier="gst_rtsp_range_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Free the memory allocated by @range.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a #GstRTSPTimeRange</doc> + <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + </parameters> + </function> + <function name="get_times" c:identifier="gst_rtsp_range_get_times" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Retrieve the minimum and maximum values from @range converted to +#GstClockTime in @min and @max. + +A value of %GST_CLOCK_TIME_NONE will be used to signal #GST_RTSP_TIME_NOW +and #GST_RTSP_TIME_END for @min and @max respectively. + +UTC times will be converted to nanoseconds since 1900.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a #GstRTSPTimeRange</doc> + <type name="RTSPTimeRange" c:type="const GstRTSPTimeRange*"/> + </parameter> + <parameter name="min" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">result minimum #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="max" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">result maximum #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </function> + <function name="parse" c:identifier="gst_rtsp_range_parse"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Parse @rangestr to a #GstRTSPTimeRange.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">#GST_RTSP_OK on success.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="rangestr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a range string to parse</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="range" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">location to hold the #GstRTSPTimeRange result</doc> + <type name="RTSPTimeRange" c:type="GstRTSPTimeRange**"/> + </parameter> + </parameters> + </function> + <function name="to_string" c:identifier="gst_rtsp_range_to_string"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Convert @range into a string representation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">The string representation of @range. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a #GstRTSPTimeRange</doc> + <type name="RTSPTimeRange" c:type="const GstRTSPTimeRange*"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="RTSPRangeUnit" glib:type-name="GstRTSPRangeUnit" glib:get-type="gst_rtsp_range_unit_get_type" c:type="GstRTSPRangeUnit"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">Different possible time range units.</doc> + <member name="smpte" value="0" c:identifier="GST_RTSP_RANGE_SMPTE" glib:nick="smpte"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">SMPTE timecode</doc> + </member> + <member name="smpte_30_drop" value="1" c:identifier="GST_RTSP_RANGE_SMPTE_30_DROP" glib:nick="smpte-30-drop"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">29.97 frames per second</doc> + </member> + <member name="smpte_25" value="2" c:identifier="GST_RTSP_RANGE_SMPTE_25" glib:nick="smpte-25"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">25 frames per second</doc> + </member> + <member name="npt" value="3" c:identifier="GST_RTSP_RANGE_NPT" glib:nick="npt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">Normal play time</doc> + </member> + <member name="clock" value="4" c:identifier="GST_RTSP_RANGE_CLOCK" glib:nick="clock"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">Absolute time expressed as ISO 8601 timestamps</doc> + </member> + </enumeration> + <enumeration name="RTSPResult" glib:type-name="GstRTSPResult" glib:get-type="gst_rtsp_result_get_type" c:type="GstRTSPResult"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">Result codes from the RTSP functions.</doc> + <member name="ok" value="0" c:identifier="GST_RTSP_OK" glib:nick="ok"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">no error</doc> + </member> + <member name="error" value="-1" c:identifier="GST_RTSP_ERROR" glib:nick="error"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">some unspecified error occurred</doc> + </member> + <member name="einval" value="-2" c:identifier="GST_RTSP_EINVAL" glib:nick="einval"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">invalid arguments were provided to a function</doc> + </member> + <member name="eintr" value="-3" c:identifier="GST_RTSP_EINTR" glib:nick="eintr"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">an operation was canceled</doc> + </member> + <member name="enomem" value="-4" c:identifier="GST_RTSP_ENOMEM" glib:nick="enomem"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">no memory was available for the operation</doc> + </member> + <member name="eresolv" value="-5" c:identifier="GST_RTSP_ERESOLV" glib:nick="eresolv"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">a host resolve error occurred</doc> + </member> + <member name="enotimpl" value="-6" c:identifier="GST_RTSP_ENOTIMPL" glib:nick="enotimpl"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">function not implemented</doc> + </member> + <member name="esys" value="-7" c:identifier="GST_RTSP_ESYS" glib:nick="esys"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">a system error occurred, errno contains more details</doc> + </member> + <member name="eparse" value="-8" c:identifier="GST_RTSP_EPARSE" glib:nick="eparse"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">a parsing error occurred</doc> + </member> + <member name="ewsastart" value="-9" c:identifier="GST_RTSP_EWSASTART" glib:nick="ewsastart"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">windows networking could not start</doc> + </member> + <member name="ewsaversion" value="-10" c:identifier="GST_RTSP_EWSAVERSION" glib:nick="ewsaversion"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">windows networking stack has wrong version</doc> + </member> + <member name="eeof" value="-11" c:identifier="GST_RTSP_EEOF" glib:nick="eeof"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">end-of-file was reached</doc> + </member> + <member name="enet" value="-12" c:identifier="GST_RTSP_ENET" glib:nick="enet"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">a network problem occurred, h_errno contains more details</doc> + </member> + <member name="enotip" value="-13" c:identifier="GST_RTSP_ENOTIP" glib:nick="enotip"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the host is not an IP host</doc> + </member> + <member name="etimeout" value="-14" c:identifier="GST_RTSP_ETIMEOUT" glib:nick="etimeout"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">a timeout occurred</doc> + </member> + <member name="etget" value="-15" c:identifier="GST_RTSP_ETGET" glib:nick="etget"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the tunnel GET request has been performed</doc> + </member> + <member name="etpost" value="-16" c:identifier="GST_RTSP_ETPOST" glib:nick="etpost"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">the tunnel POST request has been performed</doc> + </member> + <member name="elast" value="-17" c:identifier="GST_RTSP_ELAST" glib:nick="elast"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">last error</doc> + </member> + </enumeration> + <enumeration name="RTSPState" glib:type-name="GstRTSPState" glib:get-type="gst_rtsp_state_get_type" c:type="GstRTSPState"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">The different RTSP states.</doc> + <member name="invalid" value="0" c:identifier="GST_RTSP_STATE_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">invalid state</doc> + </member> + <member name="init" value="1" c:identifier="GST_RTSP_STATE_INIT" glib:nick="init"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">initializing</doc> + </member> + <member name="ready" value="2" c:identifier="GST_RTSP_STATE_READY" glib:nick="ready"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">ready for operation</doc> + </member> + <member name="seeking" value="3" c:identifier="GST_RTSP_STATE_SEEKING" glib:nick="seeking"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">seeking in progress</doc> + </member> + <member name="playing" value="4" c:identifier="GST_RTSP_STATE_PLAYING" glib:nick="playing"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">playing</doc> + </member> + <member name="recording" value="5" c:identifier="GST_RTSP_STATE_RECORDING" glib:nick="recording"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">recording</doc> + </member> + </enumeration> + <enumeration name="RTSPStatusCode" glib:type-name="GstRTSPStatusCode" glib:get-type="gst_rtsp_status_code_get_type" c:type="GstRTSPStatusCode"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">Enumeration of rtsp status codes</doc> + <member name="invalid" value="0" c:identifier="GST_RTSP_STS_INVALID" glib:nick="invalid"> + </member> + <member name="continue" value="100" c:identifier="GST_RTSP_STS_CONTINUE" glib:nick="continue"> + </member> + <member name="ok" value="200" c:identifier="GST_RTSP_STS_OK" glib:nick="ok"> + </member> + <member name="created" value="201" c:identifier="GST_RTSP_STS_CREATED" glib:nick="created"> + </member> + <member name="low_on_storage" value="250" c:identifier="GST_RTSP_STS_LOW_ON_STORAGE" glib:nick="low-on-storage"> + </member> + <member name="multiple_choices" value="300" c:identifier="GST_RTSP_STS_MULTIPLE_CHOICES" glib:nick="multiple-choices"> + </member> + <member name="moved_permanently" value="301" c:identifier="GST_RTSP_STS_MOVED_PERMANENTLY" glib:nick="moved-permanently"> + </member> + <member name="move_temporarily" value="302" c:identifier="GST_RTSP_STS_MOVE_TEMPORARILY" glib:nick="move-temporarily"> + </member> + <member name="see_other" value="303" c:identifier="GST_RTSP_STS_SEE_OTHER" glib:nick="see-other"> + </member> + <member name="not_modified" value="304" c:identifier="GST_RTSP_STS_NOT_MODIFIED" glib:nick="not-modified"> + </member> + <member name="use_proxy" value="305" c:identifier="GST_RTSP_STS_USE_PROXY" glib:nick="use-proxy"> + </member> + <member name="bad_request" value="400" c:identifier="GST_RTSP_STS_BAD_REQUEST" glib:nick="bad-request"> + </member> + <member name="unauthorized" value="401" c:identifier="GST_RTSP_STS_UNAUTHORIZED" glib:nick="unauthorized"> + </member> + <member name="payment_required" value="402" c:identifier="GST_RTSP_STS_PAYMENT_REQUIRED" glib:nick="payment-required"> + </member> + <member name="forbidden" value="403" c:identifier="GST_RTSP_STS_FORBIDDEN" glib:nick="forbidden"> + </member> + <member name="not_found" value="404" c:identifier="GST_RTSP_STS_NOT_FOUND" glib:nick="not-found"> + </member> + <member name="method_not_allowed" value="405" c:identifier="GST_RTSP_STS_METHOD_NOT_ALLOWED" glib:nick="method-not-allowed"> + </member> + <member name="not_acceptable" value="406" c:identifier="GST_RTSP_STS_NOT_ACCEPTABLE" glib:nick="not-acceptable"> + </member> + <member name="proxy_auth_required" value="407" c:identifier="GST_RTSP_STS_PROXY_AUTH_REQUIRED" glib:nick="proxy-auth-required"> + </member> + <member name="request_timeout" value="408" c:identifier="GST_RTSP_STS_REQUEST_TIMEOUT" glib:nick="request-timeout"> + </member> + <member name="gone" value="410" c:identifier="GST_RTSP_STS_GONE" glib:nick="gone"> + </member> + <member name="length_required" value="411" c:identifier="GST_RTSP_STS_LENGTH_REQUIRED" glib:nick="length-required"> + </member> + <member name="precondition_failed" value="412" c:identifier="GST_RTSP_STS_PRECONDITION_FAILED" glib:nick="precondition-failed"> + </member> + <member name="request_entity_too_large" value="413" c:identifier="GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE" glib:nick="request-entity-too-large"> + </member> + <member name="request_uri_too_large" value="414" c:identifier="GST_RTSP_STS_REQUEST_URI_TOO_LARGE" glib:nick="request-uri-too-large"> + </member> + <member name="unsupported_media_type" value="415" c:identifier="GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE" glib:nick="unsupported-media-type"> + </member> + <member name="parameter_not_understood" value="451" c:identifier="GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD" glib:nick="parameter-not-understood"> + </member> + <member name="conference_not_found" value="452" c:identifier="GST_RTSP_STS_CONFERENCE_NOT_FOUND" glib:nick="conference-not-found"> + </member> + <member name="not_enough_bandwidth" value="453" c:identifier="GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH" glib:nick="not-enough-bandwidth"> + </member> + <member name="session_not_found" value="454" c:identifier="GST_RTSP_STS_SESSION_NOT_FOUND" glib:nick="session-not-found"> + </member> + <member name="method_not_valid_in_this_state" value="455" c:identifier="GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE" glib:nick="method-not-valid-in-this-state"> + </member> + <member name="header_field_not_valid_for_resource" value="456" c:identifier="GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE" glib:nick="header-field-not-valid-for-resource"> + </member> + <member name="invalid_range" value="457" c:identifier="GST_RTSP_STS_INVALID_RANGE" glib:nick="invalid-range"> + </member> + <member name="parameter_is_readonly" value="458" c:identifier="GST_RTSP_STS_PARAMETER_IS_READONLY" glib:nick="parameter-is-readonly"> + </member> + <member name="aggregate_operation_not_allowed" value="459" c:identifier="GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED" glib:nick="aggregate-operation-not-allowed"> + </member> + <member name="only_aggregate_operation_allowed" value="460" c:identifier="GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED" glib:nick="only-aggregate-operation-allowed"> + </member> + <member name="unsupported_transport" value="461" c:identifier="GST_RTSP_STS_UNSUPPORTED_TRANSPORT" glib:nick="unsupported-transport"> + </member> + <member name="destination_unreachable" value="462" c:identifier="GST_RTSP_STS_DESTINATION_UNREACHABLE" glib:nick="destination-unreachable"> + </member> + <member name="key_management_failure" value="463" c:identifier="GST_RTSP_STS_KEY_MANAGEMENT_FAILURE" glib:nick="key-management-failure"> + </member> + <member name="internal_server_error" value="500" c:identifier="GST_RTSP_STS_INTERNAL_SERVER_ERROR" glib:nick="internal-server-error"> + </member> + <member name="not_implemented" value="501" c:identifier="GST_RTSP_STS_NOT_IMPLEMENTED" glib:nick="not-implemented"> + </member> + <member name="bad_gateway" value="502" c:identifier="GST_RTSP_STS_BAD_GATEWAY" glib:nick="bad-gateway"> + </member> + <member name="service_unavailable" value="503" c:identifier="GST_RTSP_STS_SERVICE_UNAVAILABLE" glib:nick="service-unavailable"> + </member> + <member name="gateway_timeout" value="504" c:identifier="GST_RTSP_STS_GATEWAY_TIMEOUT" glib:nick="gateway-timeout"> + </member> + <member name="rtsp_version_not_supported" value="505" c:identifier="GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED" glib:nick="rtsp-version-not-supported"> + </member> + <member name="option_not_supported" value="551" c:identifier="GST_RTSP_STS_OPTION_NOT_SUPPORTED" glib:nick="option-not-supported"> + </member> + </enumeration> + <record name="RTSPTime" c:type="GstRTSPTime"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">A time indication.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <field name="type" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">the time of the time</doc> + <type name="RTSPTimeType" c:type="GstRTSPTimeType"/> + </field> + <field name="seconds" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">seconds when @type is GST_RTSP_TIME_SECONDS, + GST_RTSP_TIME_UTC and GST_RTSP_TIME_FRAMES</doc> + <type name="gdouble" c:type="gdouble"/> + </field> + </record> + <record name="RTSPTime2" c:type="GstRTSPTime2" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">Extra fields for a time indication.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <field name="frames" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">frames and subframes when type in GstRTSPTime is + GST_RTSP_TIME_FRAMES</doc> + <type name="gdouble" c:type="gdouble"/> + </field> + <field name="year" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">year when type is GST_RTSP_TIME_UTC</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="month" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">month when type is GST_RTSP_TIME_UTC</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="day" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">day when type is GST_RTSP_TIME_UTC</doc> + <type name="guint" c:type="guint"/> + </field> + </record> + <record name="RTSPTimeRange" c:type="GstRTSPTimeRange"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">A time range.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <field name="unit" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">the time units used</doc> + <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/> + </field> + <field name="min" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">the minimum interval</doc> + <type name="RTSPTime" c:type="GstRTSPTime"/> + </field> + <field name="max" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">the maximum interval</doc> + <type name="RTSPTime" c:type="GstRTSPTime"/> + </field> + <field name="min2" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">extra fields in the minimum interval (Since: 1.2)</doc> + <type name="RTSPTime2" c:type="GstRTSPTime2"/> + </field> + <field name="max2" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">extra fields in the maximum interval (Since: 1.2)</doc> + <type name="RTSPTime2" c:type="GstRTSPTime2"/> + </field> + </record> + <enumeration name="RTSPTimeType" glib:type-name="GstRTSPTimeType" glib:get-type="gst_rtsp_time_type_get_type" c:type="GstRTSPTimeType"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">Possible time types.</doc> + <member name="seconds" value="0" c:identifier="GST_RTSP_TIME_SECONDS" glib:nick="seconds"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">seconds</doc> + </member> + <member name="now" value="1" c:identifier="GST_RTSP_TIME_NOW" glib:nick="now"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">now</doc> + </member> + <member name="end" value="2" c:identifier="GST_RTSP_TIME_END" glib:nick="end"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">end</doc> + </member> + <member name="frames" value="3" c:identifier="GST_RTSP_TIME_FRAMES" glib:nick="frames"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">frames and subframes</doc> + </member> + <member name="utc" value="4" c:identifier="GST_RTSP_TIME_UTC" glib:nick="utc"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h">UTC time</doc> + </member> + </enumeration> + <bitfield name="RTSPTransMode" glib:type-name="GstRTSPTransMode" glib:get-type="gst_rtsp_trans_mode_get_type" c:type="GstRTSPTransMode"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">The transfer mode to use.</doc> + <member name="unknown" value="0" c:identifier="GST_RTSP_TRANS_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">invalid tansport mode</doc> + </member> + <member name="rtp" value="1" c:identifier="GST_RTSP_TRANS_RTP" glib:nick="rtp"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">transfer RTP data</doc> + </member> + <member name="rdt" value="2" c:identifier="GST_RTSP_TRANS_RDT" glib:nick="rdt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">transfer RDT (RealMedia) data</doc> + </member> + </bitfield> + <record name="RTSPTransport" c:type="GstRTSPTransport"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Provides helper functions to deal with RTSP transport strings.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <field name="trans" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the transport mode</doc> + <type name="RTSPTransMode" c:type="GstRTSPTransMode"/> + </field> + <field name="profile" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the tansport profile</doc> + <type name="RTSPProfile" c:type="GstRTSPProfile"/> + </field> + <field name="lower_transport" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the lower transport</doc> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </field> + <field name="destination" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the destination ip/hostname</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="source" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the source ip/hostname</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="layers" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the number of layers</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="mode_play" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">if play mode was selected</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="mode_record" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">if record mode was selected</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="append" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">is append mode was selected</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="interleaved" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the interleave range</doc> + <type name="RTSPRange" c:type="GstRTSPRange"/> + </field> + <field name="ttl" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the time to live for multicast UDP</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="port" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the port pair for multicast sessions</doc> + <type name="RTSPRange" c:type="GstRTSPRange"/> + </field> + <field name="client_port" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the client port pair for receiving data. For TCP + based transports, applications can use this field to store the + sender and receiver ports of the client.</doc> + <type name="RTSPRange" c:type="GstRTSPRange"/> + </field> + <field name="server_port" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the server port pair for receiving data. For TCP + based transports, applications can use this field to store the + sender and receiver ports of the server.</doc> + <type name="RTSPRange" c:type="GstRTSPRange"/> + </field> + <field name="ssrc" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h">the ssrc that the sender/receiver will use</doc> + <type name="guint" c:type="guint"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="as_text" c:identifier="gst_rtsp_transport_as_text"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Convert @transport into a string that can be used to signal the transport in +an RTSP SETUP response.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a string describing the RTSP transport +or %NULL when the transport is invalid.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="transport" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransport</doc> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_rtsp_transport_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Free the memory used by @transport.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="transport" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransport</doc> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_media_type" c:identifier="gst_rtsp_transport_get_media_type" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Get the media type of @transport. This media type is typically +used to generate #GstCaps events.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="transport" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransport</doc> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </instance-parameter> + <parameter name="media_type" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">media type of @transport</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + </parameters> + </method> + <function name="get_manager" c:identifier="gst_rtsp_transport_get_manager"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Get the #GstElement that can handle the buffers transported over @trans. + +It is possible that there are several managers available, use @option to +selected one. + +@manager will contain an element name or %NULL when no manager is +needed/available for @trans.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransMode</doc> + <type name="RTSPTransMode" c:type="GstRTSPTransMode"/> + </parameter> + <parameter name="manager" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">location to hold the result</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + <parameter name="option" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">option index.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="get_mime" c:identifier="gst_rtsp_transport_get_mime" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Get the mime type of the transport mode @trans. This mime type is typically +used to generate #GstCaps events.</doc> + <doc-deprecated xml:space="preserve">This functions only deals with the GstRTSPTransMode and only + returns the mime type for #GST_RTSP_PROFILE_AVP. Use + gst_rtsp_transport_get_media_type() instead.</doc-deprecated> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransMode</doc> + <type name="RTSPTransMode" c:type="GstRTSPTransMode"/> + </parameter> + <parameter name="mime" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">location to hold the result</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + </parameters> + </function> + <function name="init" c:identifier="gst_rtsp_transport_init"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Initialize @transport so that it can be used.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="transport" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransport</doc> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </function> + <function name="new" c:identifier="gst_rtsp_transport_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free() +after usage.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="transport" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">location to hold the new #GstRTSPTransport</doc> + <type name="RTSPTransport" c:type="GstRTSPTransport**"/> + </parameter> + </parameters> + </function> + <function name="parse" c:identifier="gst_rtsp_transport_parse"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Parse the RTSP transport string @str into @transport.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a transport string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="transport" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransport</doc> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </function> + </record> + <record name="RTSPUrl" c:type="GstRTSPUrl" glib:type-name="GstRTSPUrl" glib:get-type="gst_rtsp_url_get_type" c:symbol-prefix="rtsp_url"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Provides helper functions to handle RTSP urls.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <field name="transports" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h">the transports allowed</doc> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </field> + <field name="family" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h">the family</doc> + <type name="RTSPFamily" c:type="GstRTSPFamily"/> + </field> + <field name="user" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h">the user</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="passwd" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h">the password</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="host" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h">the host</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="port" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h">the port</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="abspath" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h">the absolute path</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="query" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h">additional query parameters</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <method name="copy" c:identifier="gst_rtsp_url_copy"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Make a copy of @url.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a copy of @url. Free with gst_rtsp_url_free () after usage.</doc> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </return-value> + <parameters> + <instance-parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a #GstRTSPUrl</doc> + <type name="RTSPUrl" c:type="const GstRTSPUrl*"/> + </instance-parameter> + </parameters> + </method> + <method name="decode_path_components" c:identifier="gst_rtsp_url_decode_path_components"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Splits the path of @url on '/' boundaries, decoding the resulting components, + +The decoding performed by this routine is "URI decoding", as defined in RFC +3986, commonly known as percent-decoding. For example, a string "foo\%2fbar" +will decode to "foo/bar" -- the \%2f being replaced by the corresponding byte +with hex value 0x2f. Note that there is no guarantee that the resulting byte +sequence is valid in any given encoding. As a special case, \%00 is not +unescaped to NUL, as that would prematurely terminate the string. + +Also note that since paths usually start with a slash, the first component +will usually be the empty string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">%NULL-terminated array of URL components. Free with +g_strfreev() when no longer needed.</doc> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + <parameters> + <instance-parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a #GstRTSPUrl</doc> + <type name="RTSPUrl" c:type="const GstRTSPUrl*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_rtsp_url_free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Free the memory used by @url.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a #GstRTSPUrl</doc> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_port" c:identifier="gst_rtsp_url_get_port"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Get the port number of @url.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a #GstRTSPUrl</doc> + <type name="RTSPUrl" c:type="const GstRTSPUrl*"/> + </instance-parameter> + <parameter name="port" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">location to hold the port</doc> + <type name="guint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="get_request_uri" c:identifier="gst_rtsp_url_get_request_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Get a newly allocated string describing the request URI for @url.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a string with the request URI. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a #GstRTSPUrl</doc> + <type name="RTSPUrl" c:type="const GstRTSPUrl*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_request_uri_with_control" c:identifier="gst_rtsp_url_get_request_uri_with_control" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Get a newly allocated string describing the request URI for @url +combined with the control path for @control_path</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a string with the request URI combined with the control path. +g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a #GstRTSPUrl</doc> + <type name="RTSPUrl" c:type="const GstRTSPUrl*"/> + </instance-parameter> + <parameter name="control_path" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">an RTSP aggregate control path</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_port" c:identifier="gst_rtsp_url_set_port"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Set the port number in @url to @port.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a #GstRTSPUrl</doc> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </instance-parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">the port</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <function name="parse" c:identifier="gst_rtsp_url_parse"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage +with gst_rtsp_url_free().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="urlstr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">the url string to parse</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="url" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">location to hold the result.</doc> + <type name="RTSPUrl" c:type="GstRTSPUrl**"/> + </parameter> + </parameters> + </function> + </record> + <enumeration name="RTSPVersion" glib:type-name="GstRTSPVersion" glib:get-type="gst_rtsp_version_get_type" c:type="GstRTSPVersion"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">The supported RTSP versions.</doc> + <member name="invalid" value="0" c:identifier="GST_RTSP_VERSION_INVALID" glib:nick="invalid"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">unknown/invalid version</doc> + </member> + <member name="1_0" value="16" c:identifier="GST_RTSP_VERSION_1_0" glib:nick="1-0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">version 1.0</doc> + </member> + <member name="1_1" value="17" c:identifier="GST_RTSP_VERSION_1_1" glib:nick="1-1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">version 1.1.</doc> + </member> + <member name="2_0" value="32" c:identifier="GST_RTSP_VERSION_2_0" glib:nick="2-0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">version 2.0.</doc> + </member> + <function name="as_text" c:identifier="gst_rtsp_version_as_text"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @version to a string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a string representation of @version.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPVersion</doc> + <type name="RTSPVersion" c:type="GstRTSPVersion"/> + </parameter> + </parameters> + </function> + </enumeration> + <record name="RTSPWatch" c:type="GstRTSPWatch" disguised="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h">Opaque RTSP watch object that can be used for asynchronous RTSP +operations.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <method name="attach" c:identifier="gst_rtsp_watch_attach"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Adds a #GstRTSPWatch to a context so that it will be executed within that context.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the ID (greater than 0) for the watch within the GMainContext.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="watch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a GMainContext (if NULL, the default context will be used)</doc> + <type name="GLib.MainContext" c:type="GMainContext*"/> + </parameter> + </parameters> + </method> + <method name="get_send_backlog" c:identifier="gst_rtsp_watch_get_send_backlog" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Get the maximum amount of bytes and messages that will be queued in @watch. +See gst_rtsp_watch_set_send_backlog().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="watch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + <parameter name="bytes" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">maximum bytes</doc> + <type name="gsize" c:type="gsize*"/> + </parameter> + <parameter name="messages" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">maximum messages</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="reset" c:identifier="gst_rtsp_watch_reset"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Reset @watch, this is usually called after gst_rtsp_connection_do_tunnel() +when the file descriptors of the connection might have changed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="watch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + </parameters> + </method> + <method name="send_message" c:identifier="gst_rtsp_watch_send_message"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Send a @message using the connection of the @watch. If it cannot be sent +immediately, it will be queued for transmission in @watch. The contents of +@message will then be serialized and transmitted when the connection of the +@watch becomes writable. In case the @message is queued, the ID returned in +@id will be non-zero and used as the ID argument in the message_sent +callback.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="id" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">location for a message ID or %NULL</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="send_messages" c:identifier="gst_rtsp_watch_send_messages" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + <parameter name="messages" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">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"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">When @flushing is %TRUE, abort a call to gst_rtsp_watch_wait_backlog() +and make sure gst_rtsp_watch_write_data() returns immediately with +#GST_RTSP_EINTR. And empty the queue.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="watch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + <parameter name="flushing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">new flushing state</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_send_backlog" c:identifier="gst_rtsp_watch_set_send_backlog" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Set the maximum amount of bytes and messages that will be queued in @watch. +When the maximum amounts are exceeded, gst_rtsp_watch_write_data() and +gst_rtsp_watch_send_message() will return #GST_RTSP_ENOMEM. + +A value of 0 for @bytes or @messages means no limits.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="watch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + <parameter name="bytes" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">maximum bytes</doc> + <type name="gsize" c:type="gsize"/> + </parameter> + <parameter name="messages" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">maximum messages</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="unref" c:identifier="gst_rtsp_watch_unref"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Decreases the reference count of @watch by one. If the resulting reference +count is zero the watch and associated memory will be destroyed.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="watch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + </parameters> + </method> + <method name="wait_backlog" c:identifier="gst_rtsp_watch_wait_backlog" version="1.4" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Wait until there is place in the backlog queue, @timeout is reached +or @watch is set to flushing. + +If @timeout is %NULL this function can block forever. If @timeout +contains a valid timeout, this function will return %GST_RTSP_ETIMEOUT +after the timeout expired. + +The typically use of this function is when gst_rtsp_watch_write_data +returns %GST_RTSP_ENOMEM. The caller then calls this function to wait for +free space in the backlog queue and try again.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">%GST_RTSP_OK when if there is room in queue. + %GST_RTSP_ETIMEOUT when @timeout was reached. + %GST_RTSP_EINTR when @watch is flushing + %GST_RTSP_EINVAL when called with invalid parameters.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="watch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a GTimeVal timeout</doc> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="wait_backlog_usec" c:identifier="gst_rtsp_watch_wait_backlog_usec" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Wait until there is place in the backlog queue, @timeout is reached +or @watch is set to flushing. + +If @timeout is 0 this function can block forever. If @timeout +contains a valid timeout, this function will return %GST_RTSP_ETIMEOUT +after the timeout expired. + +The typically use of this function is when gst_rtsp_watch_write_data +returns %GST_RTSP_ENOMEM. The caller then calls this function to wait for +free space in the backlog queue and try again.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">%GST_RTSP_OK when if there is room in queue. + %GST_RTSP_ETIMEOUT when @timeout was reached. + %GST_RTSP_EINTR when @watch is flushing + %GST_RTSP_EINVAL when called with invalid parameters.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="watch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a timeout in microseconds</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="write_data" c:identifier="gst_rtsp_watch_write_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Write @data using the connection of the @watch. If it cannot be sent +immediately, it will be queued for transmission in @watch. The contents of +@message will then be serialized and transmitted when the connection of the +@watch becomes writable. In case the @message is queued, the ID returned in +@id will be non-zero and used as the ID argument in the message_sent +callback. + +This function will take ownership of @data and g_free() it after use. + +If the amount of queued data exceeds the limits set with +gst_rtsp_watch_set_send_backlog(), this function will return +#GST_RTSP_ENOMEM.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK on success. #GST_RTSP_ENOMEM when the backlog limits +are reached. #GST_RTSP_EINTR when @watch was flushing.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="watch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </instance-parameter> + <parameter name="data" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the data to queue</doc> + <array length="1" zero-terminated="0" c:type="const guint8*"> + <type name="guint8" c:type="guint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the size of @data</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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">location for a message ID or %NULL</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <function name="new" c:identifier="gst_rtsp_watch_new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Create a watch object for @conn. The functions provided in @funcs will be +called with @user_data when activity happened on the watch. + +The new watch is usually created so that it can be attached to a +maincontext with gst_rtsp_watch_attach(). + +@conn must exist for the entire lifetime of the watch.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch that can be used for asynchronous RTSP +communication. Free with gst_rtsp_watch_unref () after usage.</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </return-value> + <parameters> + <parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </parameter> + <parameter name="funcs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">watch functions</doc> + <type name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">user data to pass to @funcs</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">notify when @user_data is not referenced anymore</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + </record> + <record name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h">Callback functions from a #GstRTSPWatch.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <field name="message_received"> + <callback name="message_received"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="watch" transfer-ownership="none"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="message_sent"> + <callback name="message_sent"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="watch" transfer-ownership="none"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="closed"> + <callback name="closed"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="watch" transfer-ownership="none"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="error"> + <callback name="error"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="watch" transfer-ownership="none"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </parameter> + <parameter name="result" transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="tunnel_start"> + <callback name="tunnel_start"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="watch" transfer-ownership="none"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="tunnel_complete"> + <callback name="tunnel_complete"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="watch" transfer-ownership="none"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="error_full"> + <callback name="error_full"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="watch" transfer-ownership="none"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </parameter> + <parameter name="result" transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="tunnel_lost"> + <callback name="tunnel_lost"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="watch" transfer-ownership="none"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="tunnel_http_response"> + <callback name="tunnel_http_response"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="watch" transfer-ownership="none"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </parameter> + <parameter name="request" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="response" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <function-macro name="RTSP_CHECK" c:identifier="GST_RTSP_CHECK" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">Macro that checks the return value of @stmt and jumps to @label when it does +not equal #GST_RTSP_OK.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <parameters> + <parameter name="stmt"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">a statement</doc> + </parameter> + <parameter name="label"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h">a label</doc> + </parameter> + </parameters> + </function-macro> + <constant name="RTSP_DEFAULT_PORT" value="554" c:type="GST_RTSP_DEFAULT_PORT"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h">The default RTSP port to connect to.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <type name="gint" c:type="gint"/> + </constant> + <function-macro name="RTSP_DEPRECATED_FOR" c:identifier="GST_RTSP_DEPRECATED_FOR" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/rtsp-prelude.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTSP_EXTENSION" c:identifier="GST_RTSP_EXTENSION" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTSP_EXTENSION_GET_INTERFACE" c:identifier="GST_RTSP_EXTENSION_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTSP_MESSAGE" c:identifier="GST_RTSP_MESSAGE" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <parameters> + <parameter name="object"> + </parameter> + </parameters> + </function-macro> + <function-macro name="RTSP_MESSAGE_CAST" c:identifier="GST_RTSP_MESSAGE_CAST" introspectable="0"> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <parameters> + <parameter name="object"> + </parameter> + </parameters> + </function-macro> + <function name="rtsp_auth_credentials_free" c:identifier="gst_rtsp_auth_credentials_free" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Free a %NULL-terminated array of credentials returned from +gst_rtsp_message_parse_auth_credentials().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="credentials" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a %NULL-terminated array of #GstRTSPAuthCredential</doc> + <type name="RTSPAuthCredential" c:type="GstRTSPAuthCredential**"/> + </parameter> + </parameters> + </function> + <function name="rtsp_connection_accept" c:identifier="gst_rtsp_connection_accept" moved-to="RTSPConnection.accept"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Accept a new connection on @socket and create a new #GstRTSPConnection for +handling communication on new socket.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when @conn contains a valid connection.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="socket" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a socket</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </parameter> + <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">storage for a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection**"/> + </parameter> + <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GCancellable to cancel the operation</doc> + <type name="Gio.Cancellable" c:type="GCancellable*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_connection_create" c:identifier="gst_rtsp_connection_create" moved-to="RTSPConnection.create"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Create a newly allocated #GstRTSPConnection from @url and store it in @conn. +The connection will not yet attempt to connect to @url, use +gst_rtsp_connection_connect(). + +A copy of @url will be made.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when @conn contains a valid connection.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPUrl</doc> + <type name="RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">storage for a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection**"/> + </parameter> + </parameters> + </function> + <function name="rtsp_connection_create_from_socket" c:identifier="gst_rtsp_connection_create_from_socket" moved-to="RTSPConnection.create_from_socket"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Create a new #GstRTSPConnection for handling communication on the existing +socket @socket. The @initial_buffer contains zero terminated data already +read from @socket which should be used before starting to read new data.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">#GST_RTSP_OK when @conn contains a valid connection.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="socket" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GSocket</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </parameter> + <parameter name="ip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the IP address of the other end</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">the port used by the other end</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="initial_buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">data already read from @fd</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">storage for a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection**"/> + </parameter> + </parameters> + </function> + <function name="rtsp_find_header_field" c:identifier="gst_rtsp_find_header_field"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @header to a #GstRTSPHeaderField.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPHeaderField for @header or #GST_RTSP_HDR_INVALID if the +header field is unknown.</doc> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </return-value> + <parameters> + <parameter name="header" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a header string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_find_method" c:identifier="gst_rtsp_find_method"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @method to a #GstRTSPMethod.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPMethod for @method or #GST_RTSP_INVALID if the +method is unknown.</doc> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a method</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_generate_digest_auth_response" c:identifier="gst_rtsp_generate_digest_auth_response" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Calculates the digest auth response from the values given by the server and +the username and password. See RFC2069 for details. + +Currently only supported algorithm "md5".</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Request method, e.g. PLAY</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="realm" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Realm</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="username" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Username</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="password" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Password</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Original request URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="nonce" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Nonce</doc> + <type name="utf8" c:type="const gchar*"/> + </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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">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> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Request method, e.g. PLAY</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="md5" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Original request URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="nonce" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">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" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Check whether @field may appear multiple times in a message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">%TRUE if multiple headers are allowed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPHeaderField</doc> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + </parameters> + </function> + <function name="rtsp_header_as_text" c:identifier="gst_rtsp_header_as_text"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @field to a string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a string representation of @field.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="field" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPHeaderField</doc> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + </parameters> + </function> + <function name="rtsp_message_new" c:identifier="gst_rtsp_message_new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Create a new initialized #GstRTSPMessage. Free with gst_rtsp_message_free().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="msg" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a location for the new #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage**"/> + </parameter> + </parameters> + </function> + <function name="rtsp_message_new_data" c:identifier="gst_rtsp_message_new_data"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Create a new data #GstRTSPMessage with @channel and store the +result message in @msg. Free with gst_rtsp_message_free().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="msg" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a location for the new #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage**"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the channel</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtsp_message_new_request" c:identifier="gst_rtsp_message_new_request"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Create a new #GstRTSPMessage with @method and @uri and store the result +request message in @msg. Free with gst_rtsp_message_free().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="msg" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a location for the new #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage**"/> + </parameter> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the request method to use</doc> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the uri of the request</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_message_new_response" c:identifier="gst_rtsp_message_new_response"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">Create a new response #GstRTSPMessage with @code and @reason and store the +result message in @msg. Free with gst_rtsp_message_free(). + +When @reason is %NULL, the default reason for @code will be used. + +When @request is not %NULL, the relevant headers will be copied to the new +response message.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="msg" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">a location for the new #GstRTSPMessage</doc> + <type name="RTSPMessage" c:type="GstRTSPMessage**"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the status code</doc> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </parameter> + <parameter name="reason" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the status reason or %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="request" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspmessage.c">the request that triggered the response or %NULL</doc> + <type name="RTSPMessage" c:type="const GstRTSPMessage*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_method_as_text" c:identifier="gst_rtsp_method_as_text" moved-to="RTSPMethod.as_text"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @method to a string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a string representation of @method.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPMethod</doc> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </parameter> + </parameters> + </function> + <function name="rtsp_options_as_text" c:identifier="gst_rtsp_options_as_text"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @options to a string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a new string of @options. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="options" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">one or more #GstRTSPMethod</doc> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </parameter> + </parameters> + </function> + <function name="rtsp_options_from_text" c:identifier="gst_rtsp_options_from_text" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert the comma separated list @options to a #GstRTSPMethod bitwise or +of methods. This functions is the reverse of gst_rtsp_options_as_text().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPMethod</doc> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </return-value> + <parameters> + <parameter name="options" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a comma separated list of options</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_range_convert_units" c:identifier="gst_rtsp_range_convert_units" moved-to="RTSPRange.convert_units"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Converts the range in-place between different types of units. +Ranges containing the special value #GST_RTSP_TIME_NOW can not be +converted as these are only valid for #GST_RTSP_RANGE_NPT.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">%TRUE if the range could be converted</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a #GstRTSPTimeRange</doc> + <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + <parameter name="unit" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">the unit to convert the range into</doc> + <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/> + </parameter> + </parameters> + </function> + <function name="rtsp_range_free" c:identifier="gst_rtsp_range_free" moved-to="RTSPRange.free"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Free the memory allocated by @range.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a #GstRTSPTimeRange</doc> + <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_range_get_times" c:identifier="gst_rtsp_range_get_times" moved-to="RTSPRange.get_times" version="1.2"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Retrieve the minimum and maximum values from @range converted to +#GstClockTime in @min and @max. + +A value of %GST_CLOCK_TIME_NONE will be used to signal #GST_RTSP_TIME_NOW +and #GST_RTSP_TIME_END for @min and @max respectively. + +UTC times will be converted to nanoseconds since 1900.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a #GstRTSPTimeRange</doc> + <type name="RTSPTimeRange" c:type="const GstRTSPTimeRange*"/> + </parameter> + <parameter name="min" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">result minimum #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="max" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">result maximum #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_range_parse" c:identifier="gst_rtsp_range_parse" moved-to="RTSPRange.parse"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Parse @rangestr to a #GstRTSPTimeRange.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">#GST_RTSP_OK on success.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="rangestr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a range string to parse</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="range" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">location to hold the #GstRTSPTimeRange result</doc> + <type name="RTSPTimeRange" c:type="GstRTSPTimeRange**"/> + </parameter> + </parameters> + </function> + <function name="rtsp_range_to_string" c:identifier="gst_rtsp_range_to_string" moved-to="RTSPRange.to_string"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">Convert @range into a string representation.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">The string representation of @range. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsprange.c">a #GstRTSPTimeRange</doc> + <type name="RTSPTimeRange" c:type="const GstRTSPTimeRange*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_status_as_text" c:identifier="gst_rtsp_status_as_text"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @code to a string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a string representation of @code.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="code" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPStatusCode</doc> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </parameter> + </parameters> + </function> + <function name="rtsp_strresult" c:identifier="gst_rtsp_strresult"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @result in a human readable string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a newly allocated string. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="result" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPResult</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </parameter> + </parameters> + </function> + <function name="rtsp_transport_get_manager" c:identifier="gst_rtsp_transport_get_manager" moved-to="RTSPTransport.get_manager"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Get the #GstElement that can handle the buffers transported over @trans. + +It is possible that there are several managers available, use @option to +selected one. + +@manager will contain an element name or %NULL when no manager is +needed/available for @trans.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransMode</doc> + <type name="RTSPTransMode" c:type="GstRTSPTransMode"/> + </parameter> + <parameter name="manager" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">location to hold the result</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + <parameter name="option" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">option index.</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtsp_transport_get_mime" c:identifier="gst_rtsp_transport_get_mime" moved-to="RTSPTransport.get_mime" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Get the mime type of the transport mode @trans. This mime type is typically +used to generate #GstCaps events.</doc> + <doc-deprecated xml:space="preserve">This functions only deals with the GstRTSPTransMode and only + returns the mime type for #GST_RTSP_PROFILE_AVP. Use + gst_rtsp_transport_get_media_type() instead.</doc-deprecated> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransMode</doc> + <type name="RTSPTransMode" c:type="GstRTSPTransMode"/> + </parameter> + <parameter name="mime" direction="out" caller-allocates="0" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">location to hold the result</doc> + <type name="utf8" c:type="const gchar**"/> + </parameter> + </parameters> + </function> + <function name="rtsp_transport_init" c:identifier="gst_rtsp_transport_init" moved-to="RTSPTransport.init"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Initialize @transport so that it can be used.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">#GST_RTSP_OK.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="transport" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransport</doc> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_transport_new" c:identifier="gst_rtsp_transport_new" moved-to="RTSPTransport.new"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free() +after usage.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="transport" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">location to hold the new #GstRTSPTransport</doc> + <type name="RTSPTransport" c:type="GstRTSPTransport**"/> + </parameter> + </parameters> + </function> + <function name="rtsp_transport_parse" c:identifier="gst_rtsp_transport_parse" moved-to="RTSPTransport.parse"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">Parse the RTSP transport string @str into @transport.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a transport string</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="transport" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtsptransport.c">a #GstRTSPTransport</doc> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </function> + <function name="rtsp_url_parse" c:identifier="gst_rtsp_url_parse" moved-to="RTSPUrl.parse"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage +with gst_rtsp_url_free().</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">a #GstRTSPResult.</doc> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="urlstr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">the url string to parse</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="url" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspurl.c">location to hold the result.</doc> + <type name="RTSPUrl" c:type="GstRTSPUrl**"/> + </parameter> + </parameters> + </function> + <function name="rtsp_version_as_text" c:identifier="gst_rtsp_version_as_text" moved-to="RTSPVersion.as_text"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">Convert @version to a string.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a string representation of @version.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspdefs.c">a #GstRTSPVersion</doc> + <type name="RTSPVersion" c:type="GstRTSPVersion"/> + </parameter> + </parameters> + </function> + <function name="rtsp_watch_new" c:identifier="gst_rtsp_watch_new" moved-to="RTSPWatch.new" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">Create a watch object for @conn. The functions provided in @funcs will be +called with @user_data when activity happened on the watch. + +The new watch is usually created so that it can be attached to a +maincontext with gst_rtsp_watch_attach(). + +@conn must exist for the entire lifetime of the watch.</doc> + <source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPWatch that can be used for asynchronous RTSP +communication. Free with gst_rtsp_watch_unref () after usage.</doc> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </return-value> + <parameters> + <parameter name="conn" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">a #GstRTSPConnection</doc> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </parameter> + <parameter name="funcs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">watch functions</doc> + <type name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">user data to pass to @funcs</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c">notify when @user_data is not referenced anymore</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/girs/GstRtspServer-1.0.gir b/girs/GstRtspServer-1.0.gir new file mode 100644 index 0000000000..15a7a11b16 --- /dev/null +++ b/girs/GstRtspServer-1.0.gir @@ -0,0 +1,12379 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="Gst" version="1.0"/> + <include name="GstNet" version="1.0"/> + <include name="GstRtsp" version="1.0"/> + <package name="gstreamer-rtsp-server-1.0"/> + <c:include name="gst/rtsp-server/rtsp-server.h"/> + <namespace name="GstRtspServer" version="1.0" shared-library="libgstrtspserver-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst"> + <function-macro name="IS_RTSP_ADDRESS_POOL" c:identifier="GST_IS_RTSP_ADDRESS_POOL" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_ADDRESS_POOL_CLASS" c:identifier="GST_IS_RTSP_ADDRESS_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_AUTH" c:identifier="GST_IS_RTSP_AUTH" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_AUTH_CLASS" c:identifier="GST_IS_RTSP_AUTH_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_CLIENT" c:identifier="GST_IS_RTSP_CLIENT" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_CLIENT_CLASS" c:identifier="GST_IS_RTSP_CLIENT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_MEDIA" c:identifier="GST_IS_RTSP_MEDIA" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_MEDIA_CLASS" c:identifier="GST_IS_RTSP_MEDIA_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_MEDIA_FACTORY" c:identifier="GST_IS_RTSP_MEDIA_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_MEDIA_FACTORY_CLASS" c:identifier="GST_IS_RTSP_MEDIA_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_MEDIA_FACTORY_URI" c:identifier="GST_IS_RTSP_MEDIA_FACTORY_URI" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_MEDIA_FACTORY_URI_CLASS" c:identifier="GST_IS_RTSP_MEDIA_FACTORY_URI_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_MOUNT_POINTS" c:identifier="GST_IS_RTSP_MOUNT_POINTS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_MOUNT_POINTS_CLASS" c:identifier="GST_IS_RTSP_MOUNT_POINTS_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_ONVIF_CLIENT" c:identifier="GST_IS_RTSP_ONVIF_CLIENT" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-client.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_ONVIF_CLIENT_CLASS" c:identifier="GST_IS_RTSP_ONVIF_CLIENT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-client.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_ONVIF_MEDIA" c:identifier="GST_IS_RTSP_ONVIF_MEDIA" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_ONVIF_MEDIA_CLASS" c:identifier="GST_IS_RTSP_ONVIF_MEDIA_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_ONVIF_MEDIA_FACTORY" c:identifier="GST_IS_RTSP_ONVIF_MEDIA_FACTORY" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_ONVIF_MEDIA_FACTORY_CLASS" c:identifier="GST_IS_RTSP_ONVIF_MEDIA_FACTORY_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_ONVIF_SERVER" c:identifier="GST_IS_RTSP_ONVIF_SERVER" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-server.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_ONVIF_SERVER_CLASS" c:identifier="GST_IS_RTSP_ONVIF_SERVER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-server.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_PERMISSIONS" c:identifier="GST_IS_RTSP_PERMISSIONS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_SERVER" c:identifier="GST_IS_RTSP_SERVER" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server-object.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_SERVER_CLASS" c:identifier="GST_IS_RTSP_SERVER_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server-object.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_SESSION" c:identifier="GST_IS_RTSP_SESSION" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_SESSION_CLASS" c:identifier="GST_IS_RTSP_SESSION_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_SESSION_MEDIA" c:identifier="GST_IS_RTSP_SESSION_MEDIA" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session-media.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_SESSION_MEDIA_CLASS" c:identifier="GST_IS_RTSP_SESSION_MEDIA_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session-media.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_SESSION_POOL" c:identifier="GST_IS_RTSP_SESSION_POOL" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session-pool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_SESSION_POOL_CLASS" c:identifier="GST_IS_RTSP_SESSION_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session-pool.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_STREAM" c:identifier="GST_IS_RTSP_STREAM" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_STREAM_CLASS" c:identifier="GST_IS_RTSP_STREAM_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_STREAM_TRANSPORT" c:identifier="GST_IS_RTSP_STREAM_TRANSPORT" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_STREAM_TRANSPORT_CLASS" c:identifier="GST_IS_RTSP_STREAM_TRANSPORT_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_THREAD" c:identifier="GST_IS_RTSP_THREAD" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-thread-pool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_THREAD_POOL" c:identifier="GST_IS_RTSP_THREAD_POOL" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-thread-pool.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_THREAD_POOL_CLASS" c:identifier="GST_IS_RTSP_THREAD_POOL_CLASS" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-thread-pool.h"/> + <parameters> + <parameter name="klass"> + </parameter> + </parameters> + </function-macro> + <function-macro name="IS_RTSP_TOKEN" c:identifier="GST_IS_RTSP_TOKEN" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-token.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <record name="RTSPAddress" c:type="GstRTSPAddress" glib:type-name="GstRTSPAddress" glib:get-type="gst_rtsp_address_get_type" c:symbol-prefix="rtsp_address"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">An address</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <field name="pool" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">the #GstRTSPAddressPool owner of this address</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </field> + <field name="address" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">the address</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="port" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">the port number</doc> + <type name="guint16" c:type="guint16"/> + </field> + <field name="n_ports" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">number of ports</doc> + <type name="gint" c:type="gint"/> + </field> + <field name="ttl" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">TTL or 0 for unicast addresses</doc> + <type name="guint8" c:type="guint8"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="gpointer" c:type="gpointer"/> + </field> + <method name="copy" c:identifier="gst_rtsp_address_copy"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">Make a copy of @addr.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a copy of @addr.</doc> + <type name="RTSPAddress" c:type="GstRTSPAddress*"/> + </return-value> + <parameters> + <instance-parameter name="addr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a #GstRTSPAddress</doc> + <type name="RTSPAddress" c:type="GstRTSPAddress*"/> + </instance-parameter> + </parameters> + </method> + <method name="free" c:identifier="gst_rtsp_address_free"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">Free @addr and releasing it back into the pool when owned by a +pool.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="addr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a #GstRTSPAddress</doc> + <type name="RTSPAddress" c:type="GstRTSPAddress*"/> + </instance-parameter> + </parameters> + </method> + </record> + <bitfield name="RTSPAddressFlags" c:type="GstRTSPAddressFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">Flags used to control allocation of addresses</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <member name="none" value="0" c:identifier="GST_RTSP_ADDRESS_FLAG_NONE"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">no flags</doc> + </member> + <member name="ipv4" value="1" c:identifier="GST_RTSP_ADDRESS_FLAG_IPV4"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">an IPv4 address</doc> + </member> + <member name="ipv6" value="2" c:identifier="GST_RTSP_ADDRESS_FLAG_IPV6"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">and IPv6 address</doc> + </member> + <member name="even_port" value="4" c:identifier="GST_RTSP_ADDRESS_FLAG_EVEN_PORT"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">address with an even port</doc> + </member> + <member name="multicast" value="8" c:identifier="GST_RTSP_ADDRESS_FLAG_MULTICAST"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">a multicast address</doc> + </member> + <member name="unicast" value="16" c:identifier="GST_RTSP_ADDRESS_FLAG_UNICAST"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">a unicast address</doc> + </member> + </bitfield> + <class name="RTSPAddressPool" c:symbol-prefix="rtsp_address_pool" c:type="GstRTSPAddressPool" parent="GObject.Object" glib:type-name="GstRTSPAddressPool" glib:get-type="gst_rtsp_address_pool_get_type" glib:type-struct="RTSPAddressPoolClass"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">An address pool, all member are private</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <constructor name="new" c:identifier="gst_rtsp_address_pool_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">Make a new #GstRTSPAddressPool.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a new #GstRTSPAddressPool</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </return-value> + </constructor> + <method name="acquire_address" c:identifier="gst_rtsp_address_pool_acquire_address"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">Take an address and ports from @pool. @flags can be used to control the +allocation. @n_ports consecutive ports will be allocated of which the first +one can be found in @port.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a #GstRTSPAddress that should be freed with +gst_rtsp_address_free after use or %NULL when no address could be +acquired.</doc> + <type name="RTSPAddress" c:type="GstRTSPAddress*"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a #GstRTSPAddressPool</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">flags</doc> + <type name="RTSPAddressFlags" c:type="GstRTSPAddressFlags"/> + </parameter> + <parameter name="n_ports" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">the amount of ports</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="add_range" c:identifier="gst_rtsp_address_pool_add_range"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">Adds the addresses from @min_addess to @max_address (inclusive) +to @pool. The valid port range for the addresses will be from @min_port to +@max_port inclusive. + +When @ttl is 0, @min_address and @max_address should be unicast addresses. +@min_address and @max_address can be set to +#GST_RTSP_ADDRESS_POOL_ANY_IPV4 or #GST_RTSP_ADDRESS_POOL_ANY_IPV6 to bind +to all available IPv4 or IPv6 addresses. + +When @ttl > 0, @min_address and @max_address should be multicast addresses.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">%TRUE if the addresses could be added.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a #GstRTSPAddressPool</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </instance-parameter> + <parameter name="min_address" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a minimum address to add</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="max_address" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a maximum address to add</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="min_port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">the minimum port</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="max_port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">the maximum port</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + <parameter name="ttl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a TTL or 0 for unicast addresses</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="clear" c:identifier="gst_rtsp_address_pool_clear"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">Clear all addresses in @pool. There should be no outstanding +allocations.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a #GstRTSPAddressPool</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </instance-parameter> + </parameters> + </method> + <method name="dump" c:identifier="gst_rtsp_address_pool_dump"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">Dump the free and allocated addresses to stdout.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a #GstRTSPAddressPool</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_unicast_addresses" c:identifier="gst_rtsp_address_pool_has_unicast_addresses"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">Used to know if the pool includes any unicast addresses.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">%TRUE if the pool includes any unicast addresses, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a #GstRTSPAddressPool</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </instance-parameter> + </parameters> + </method> + <method name="reserve_address" c:identifier="gst_rtsp_address_pool_reserve_address"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">Take a specific address and ports from @pool. @n_ports consecutive +ports will be allocated of which the first one can be found in +@port. + +If @ttl is 0, @address should be a unicast address. If @ttl > 0, @address +should be a valid multicast address.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">#GST_RTSP_ADDRESS_POOL_OK if an address was reserved. The address +is returned in @address and should be freed with gst_rtsp_address_free +after use.</doc> + <type name="RTSPAddressPoolResult" c:type="GstRTSPAddressPoolResult"/> + </return-value> + <parameters> + <instance-parameter name="pool" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">a #GstRTSPAddressPool</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </instance-parameter> + <parameter name="ip_address" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">The IP address to reserve</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">The first port to reserve</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="n_ports" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">The number of ports</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="ttl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">The requested ttl</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="address" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.c">storage for a #GstRTSPAddress</doc> + <type name="RTSPAddress" c:type="GstRTSPAddress**"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">the parent GObject</doc> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RTSPAddressPoolPrivate" c:type="GstRTSPAddressPoolPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="RTSPAddressPoolClass" c:type="GstRTSPAddressPoolClass" glib:is-gtype-struct-for="RTSPAddressPool"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">Opaque Address pool class.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTSPAddressPoolPrivate" c:type="GstRTSPAddressPoolPrivate" disguised="1"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + </record> + <enumeration name="RTSPAddressPoolResult" c:type="GstRTSPAddressPoolResult"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">Result codes from RTSP address pool functions.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h"/> + <member name="ok" value="0" c:identifier="GST_RTSP_ADDRESS_POOL_OK"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">no error</doc> + </member> + <member name="einval" value="-1" c:identifier="GST_RTSP_ADDRESS_POOL_EINVAL"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">invalid arguments were provided to a function</doc> + </member> + <member name="ereserved" value="-2" c:identifier="GST_RTSP_ADDRESS_POOL_ERESERVED"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">the addres has already been reserved</doc> + </member> + <member name="erange" value="-3" c:identifier="GST_RTSP_ADDRESS_POOL_ERANGE"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">the address is not in the pool</doc> + </member> + <member name="elast" value="-4" c:identifier="GST_RTSP_ADDRESS_POOL_ELAST"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-address-pool.h">last error</doc> + </member> + </enumeration> + <class name="RTSPAuth" c:symbol-prefix="rtsp_auth" c:type="GstRTSPAuth" parent="GObject.Object" glib:type-name="GstRTSPAuth" glib:get-type="gst_rtsp_auth_get_type" glib:type-struct="RTSPAuthClass"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h">The authentication structure.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <constructor name="new" c:identifier="gst_rtsp_auth_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Create a new #GstRTSPAuth instance.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a new #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </return-value> + </constructor> + <function name="check" c:identifier="gst_rtsp_auth_check"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Check if @check is allowed in the current context.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">FALSE if check failed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="check" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the item to check</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="make_basic" c:identifier="gst_rtsp_auth_make_basic"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Construct a Basic authorisation token from @user and @pass.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the base64 encoding of the string @user:@pass. +g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="user" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a userid</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="pass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a password</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <virtual-method name="accept_certificate"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="connection" transfer-ownership="none"> + <type name="Gio.TlsConnection" c:type="GTlsConnection*"/> + </parameter> + <parameter name="peer_cert" transfer-ownership="none"> + <type name="Gio.TlsCertificate" c:type="GTlsCertificate*"/> + </parameter> + <parameter name="errors" transfer-ownership="none"> + <type name="Gio.TlsCertificateFlags" c:type="GTlsCertificateFlags"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="authenticate"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="check"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="check" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="generate_authenticate_header"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_basic" c:identifier="gst_rtsp_auth_add_basic"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Add a basic token for the default authentication algorithm that +enables the client with privileges listed in @token.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="basic" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the basic token</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="token" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">authorisation token</doc> + <type name="RTSPToken" c:type="GstRTSPToken*"/> + </parameter> + </parameters> + </method> + <method name="add_digest" c:identifier="gst_rtsp_auth_add_digest" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Add a digest @user and @pass for the default authentication algorithm that +enables the client with privileges listed in @token.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="user" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the digest user name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="pass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the digest password</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="token" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">authorisation token</doc> + <type name="RTSPToken" c:type="GstRTSPToken*"/> + </parameter> + </parameters> + </method> + <method name="get_default_token" c:identifier="gst_rtsp_auth_get_default_token"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Get the default token for @auth. This token will be used for unauthenticated +users.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the #GstRTSPToken of @auth. gst_rtsp_token_unref() after +usage.</doc> + <type name="RTSPToken" c:type="GstRTSPToken*"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_realm" c:identifier="gst_rtsp_auth_get_realm" version="1.16"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the @realm of @auth</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_supported_methods" c:identifier="gst_rtsp_auth_get_supported_methods" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Gets the supported authentication methods of @auth.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">The supported authentication methods</doc> + <type name="GstRtsp.RTSPAuthMethod" c:type="GstRTSPAuthMethod"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tls_authentication_mode" c:identifier="gst_rtsp_auth_get_tls_authentication_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Get the #GTlsAuthenticationMode.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the #GTlsAuthenticationMode.</doc> + <type name="Gio.TlsAuthenticationMode" c:type="GTlsAuthenticationMode"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tls_certificate" c:identifier="gst_rtsp_auth_get_tls_certificate"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Get the #GTlsCertificate used for negotiating TLS @auth.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the #GTlsCertificate of @auth. g_object_unref() after +usage.</doc> + <type name="Gio.TlsCertificate" c:type="GTlsCertificate*"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_tls_database" c:identifier="gst_rtsp_auth_get_tls_database" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Get the #GTlsDatabase used for verifying client certificate.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the #GTlsDatabase of @auth. g_object_unref() after +usage.</doc> + <type name="Gio.TlsDatabase" c:type="GTlsDatabase*"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + </parameters> + </method> + <method name="parse_htdigest" c:identifier="gst_rtsp_auth_parse_htdigest" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Parse the contents of the file at @path and enable the privileges +listed in @token for the users it describes. + +The format of the file is expected to match the format described by +<https://en.wikipedia.org/wiki/Digest_access_authentication#The_.htdigest_file>, +as output by the `htdigest` command.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">%TRUE if the file was successfully parsed, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="path" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Path to the htdigest file</doc> + <type name="filename" c:type="const gchar*"/> + </parameter> + <parameter name="token" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">authorisation token</doc> + <type name="RTSPToken" c:type="GstRTSPToken*"/> + </parameter> + </parameters> + </method> + <method name="remove_basic" c:identifier="gst_rtsp_auth_remove_basic"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Removes @basic authentication token.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="basic" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the basic token</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="remove_digest" c:identifier="gst_rtsp_auth_remove_digest" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Removes a digest user.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="user" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the digest user name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_default_token" c:identifier="gst_rtsp_auth_set_default_token"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Set the default #GstRTSPToken to @token in @auth. The default token will +be used for unauthenticated users.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="token" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPToken</doc> + <type name="RTSPToken" c:type="GstRTSPToken*"/> + </parameter> + </parameters> + </method> + <method name="set_realm" c:identifier="gst_rtsp_auth_set_realm" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Set the @realm of @auth</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="realm" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">The realm to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_supported_methods" c:identifier="gst_rtsp_auth_set_supported_methods" version="1.12"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Sets the supported authentication @methods for @auth.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="methods" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">supported methods</doc> + <type name="GstRtsp.RTSPAuthMethod" c:type="GstRTSPAuthMethod"/> + </parameter> + </parameters> + </method> + <method name="set_tls_authentication_mode" c:identifier="gst_rtsp_auth_set_tls_authentication_mode" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">The #GTlsAuthenticationMode to set on the underlying GTlsServerConnection. +When set to another value than %G_TLS_AUTHENTICATION_NONE, +#GstRTSPAuth::accept-certificate signal will be emitted and must be handled.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GTlsAuthenticationMode</doc> + <type name="Gio.TlsAuthenticationMode" c:type="GTlsAuthenticationMode"/> + </parameter> + </parameters> + </method> + <method name="set_tls_certificate" c:identifier="gst_rtsp_auth_set_tls_certificate"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Set the TLS certificate for the auth. Client connections will only +be accepted when TLS is negotiated.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="cert" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GTlsCertificate</doc> + <type name="Gio.TlsCertificate" c:type="GTlsCertificate*"/> + </parameter> + </parameters> + </method> + <method name="set_tls_database" c:identifier="gst_rtsp_auth_set_tls_database" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Sets the certificate database that is used to verify peer certificates. +If set to %NULL (the default), then peer certificate validation will always +set the %G_TLS_CERTIFICATE_UNKNOWN_CA error.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="auth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </instance-parameter> + <parameter name="database" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GTlsDatabase</doc> + <type name="Gio.TlsDatabase" c:type="GTlsDatabase*"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RTSPAuthPrivate" c:type="GstRTSPAuthPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="accept-certificate" when="last" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">Emitted during the TLS handshake after the client certificate has +been received. See also gst_rtsp_auth_set_tls_authentication_mode().</doc> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">%TRUE to accept @peer_cert (which will also +immediately end the signal emission). %FALSE to allow the signal +emission to continue, which will cause the handshake to fail if +no one else overrides it.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="connection" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">a #GTlsConnection</doc> + <type name="Gio.TlsConnection"/> + </parameter> + <parameter name="peer_cert" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the peer's #GTlsCertificate</doc> + <type name="Gio.TlsCertificate"/> + </parameter> + <parameter name="errors" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.c">the problems with @peer_cert.</doc> + <type name="Gio.TlsCertificateFlags"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="RTSPAuthClass" c:type="GstRTSPAuthClass" glib:is-gtype-struct-for="RTSPAuth"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h">The authentication class.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="authenticate"> + <callback name="authenticate"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="check"> + <callback name="check"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="check" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="generate_authenticate_header"> + <callback name="generate_authenticate_header"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="accept_certificate"> + <callback name="accept_certificate"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="auth" transfer-ownership="none"> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </parameter> + <parameter name="connection" transfer-ownership="none"> + <type name="Gio.TlsConnection" c:type="GTlsConnection*"/> + </parameter> + <parameter name="peer_cert" transfer-ownership="none"> + <type name="Gio.TlsCertificate" c:type="GTlsCertificate*"/> + </parameter> + <parameter name="errors" transfer-ownership="none"> + <type name="Gio.TlsCertificateFlags" c:type="GTlsCertificateFlags"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTSPAuthPrivate" c:type="GstRTSPAuthPrivate" disguised="1"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-auth.h"/> + </record> + <class name="RTSPClient" c:symbol-prefix="rtsp_client" c:type="GstRTSPClient" parent="GObject.Object" glib:type-name="GstRTSPClient" glib:get-type="gst_rtsp_client_get_type" glib:type-struct="RTSPClientClass"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">The client object represents the connection and its state with a client.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <constructor name="new" c:identifier="gst_rtsp_client_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Create a new #GstRTSPClient instance.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a new #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </return-value> + </constructor> + <virtual-method name="adjust_error_code" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">Called before sending error response to give the application the +possibility to adjust the error code.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPStatusCode, containing the adjusted error code.</doc> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPContext</doc> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPStatusCode</doc> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="adjust_play_mode"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="range" transfer-ownership="none"> + <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange**"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <type name="Gst.SeekFlags" c:type="GstSeekFlags*"/> + </parameter> + <parameter name="rate" transfer-ownership="none"> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="trickmode_interval" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="enable_rate_control" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="adjust_play_response"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="announce_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="check_requirements"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="arr" transfer-ownership="none"> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="closed"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="configure_client_media"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="stream" transfer-ownership="none"> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="configure_client_transport"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="ct" transfer-ownership="none"> + <type name="GstRtsp.RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create_sdp"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="describe_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_parameter_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_response"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_sdp"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="sdp" transfer-ownership="none"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="make_path_from_uri"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_session"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="session" transfer-ownership="none"> + <type name="RTSPSession" c:type="GstRTSPSession*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="options_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="params_get"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="params_set"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pause_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="play_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_announce_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_describe_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_get_parameter_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_options_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_pause_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_play_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_record_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_set_parameter_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_setup_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="pre_teardown_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="record_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="send_message"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="response" transfer-ownership="none"> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_parameter_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="setup_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="teardown_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="tunnel_http_response"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="request" transfer-ownership="none"> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="response" transfer-ownership="none"> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <method name="attach" c:identifier="gst_rtsp_client_attach"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Attaches @client to @context. When the mainloop for @context is run, the +client will be dispatched. When @context is %NULL, the default context will be +used). + +This function should be called when the client properties and urls are fully +configured and the client is ready to start.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">the ID (greater than 0) for the source within the GMainContext.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GMainContext</doc> + <type name="GLib.MainContext" c:type="GMainContext*"/> + </parameter> + </parameters> + </method> + <method name="close" c:identifier="gst_rtsp_client_close" version="1.4"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Close the connection of @client and remove all media it was managing.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_auth" c:identifier="gst_rtsp_client_get_auth"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Get the #GstRTSPAuth used as the authentication manager of @client.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">the #GstRTSPAuth of @client. +g_object_unref() after usage.</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_connection" c:identifier="gst_rtsp_client_get_connection"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Get the #GstRTSPConnection of @client.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">the #GstRTSPConnection of @client. +The connection object returned remains valid until the client is freed.</doc> + <type name="GstRtsp.RTSPConnection" c:type="GstRTSPConnection*"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_content_length_limit" c:identifier="gst_rtsp_client_get_content_length_limit" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Get the Content-Length limit of @client.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">the Content-Length limit.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_mount_points" c:identifier="gst_rtsp_client_get_mount_points"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Get the #GstRTSPMountPoints object that @client uses to manage its sessions.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPMountPoints, unref after usage.</doc> + <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_session_pool" c:identifier="gst_rtsp_client_get_session_pool"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Get the #GstRTSPSessionPool object that @client uses to manage its sessions.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPSessionPool, unref after usage.</doc> + <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_transport" c:identifier="gst_rtsp_client_get_stream_transport" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">This is useful when providing a send function through +gst_rtsp_client_set_send_func() when doing RTSP over TCP: +the send function must call gst_rtsp_stream_transport_message_sent () +on the appropriate transport when data has been received for streaming +to continue.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">the #GstRTSPStreamTransport associated with @channel.</doc> + <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="guint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="get_thread_pool" c:identifier="gst_rtsp_client_get_thread_pool"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Get the #GstRTSPThreadPool used as the thread pool of @client.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">the #GstRTSPThreadPool of @client. g_object_unref() after +usage.</doc> + <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + </parameters> + </method> + <method name="handle_message" c:identifier="gst_rtsp_client_handle_message"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Let the client handle @message.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPResult.</doc> + <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">an #GstRTSPMessage</doc> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="send_message" c:identifier="gst_rtsp_client_send_message"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Send a message message to the remote end. @message must be a +#GST_RTSP_MESSAGE_REQUEST or a #GST_RTSP_MESSAGE_RESPONSE.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="session" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPSession to send + the message to or %NULL</doc> + <type name="RTSPSession" c:type="GstRTSPSession*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">The #GstRTSPMessage to send</doc> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="session_filter" c:identifier="gst_rtsp_client_session_filter"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Call @func for each session managed by @client. The result value of @func +determines what happens to the session. @func will be called with @client +locked so no further actions on @client can be performed from @func. + +If @func returns #GST_RTSP_FILTER_REMOVE, the session will be removed from +@client. + +If @func returns #GST_RTSP_FILTER_KEEP, the session will remain in @client. + +If @func returns #GST_RTSP_FILTER_REF, the session will remain in @client but +will also be added with an additional ref to the result #GList of this +function.. + +When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each session.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GList with all +sessions for which @func returned #GST_RTSP_FILTER_REF. After usage, each +element in the #GList should be unreffed before the list is freed.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="RTSPSession"/> + </type> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a callback</doc> + <type name="RTSPClientSessionFilterFunc" c:type="GstRTSPClientSessionFilterFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">user data passed to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_auth" c:identifier="gst_rtsp_client_set_auth"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">configure @auth to be used as the authentication manager of @client.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="auth" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPAuth</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </parameter> + </parameters> + </method> + <method name="set_connection" c:identifier="gst_rtsp_client_set_connection"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Set the #GstRTSPConnection of @client. This function takes ownership of +@conn.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="conn" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPConnection</doc> + <type name="GstRtsp.RTSPConnection" c:type="GstRTSPConnection*"/> + </parameter> + </parameters> + </method> + <method name="set_content_length_limit" c:identifier="gst_rtsp_client_set_content_length_limit" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Configure @client to use the specified Content-Length limit. + +Define an appropriate request size limit and reject requests exceeding the +limit with response status 413 Request Entity Too Large</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="limit" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Content-Length limit</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_mount_points" c:identifier="gst_rtsp_client_set_mount_points"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Set @mounts as the mount points for @client which it will use to map urls +to media streams. These mount points are usually inherited from the server that +created the client but can be overriden later.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="mounts" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPMountPoints</doc> + <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/> + </parameter> + </parameters> + </method> + <method name="set_send_func" c:identifier="gst_rtsp_client_set_send_func"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Set @func as the callback that will be called when a new message needs to be +sent to the client. @user_data is passed to @func and @notify is called when +@user_data is no longer in use. + +By default, the client will send the messages on the #GstRTSPConnection that +was configured with gst_rtsp_client_attach() was called. + +It is only allowed to set either a `send_func` or a `send_messages_func` +but not both at the same time.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClientSendFunc</doc> + <type name="RTSPClientSendFunc" c:type="GstRTSPClientSendFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">user data passed to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">called when @user_data is no longer in use</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_send_messages_func" c:identifier="gst_rtsp_client_set_send_messages_func" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Set @func as the callback that will be called when new messages needs to be +sent to the client. @user_data is passed to @func and @notify is called when +@user_data is no longer in use. + +By default, the client will send the messages on the #GstRTSPConnection that +was configured with gst_rtsp_client_attach() was called. + +It is only allowed to set either a `send_func` or a `send_messages_func` +but not both at the same time.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClientSendMessagesFunc</doc> + <type name="RTSPClientSendMessagesFunc" c:type="GstRTSPClientSendMessagesFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">user data passed to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">called when @user_data is no longer in use</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="set_session_pool" c:identifier="gst_rtsp_client_set_session_pool"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">Set @pool as the sessionpool for @client which it will use to find +or allocate sessions. the sessionpool is usually inherited from the server +that created the client but can be overridden later.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPSessionPool</doc> + <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/> + </parameter> + </parameters> + </method> + <method name="set_thread_pool" c:identifier="gst_rtsp_client_set_thread_pool"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">configure @pool to be used as the thread pool of @client.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </instance-parameter> + <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPThreadPool</doc> + <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/> + </parameter> + </parameters> + </method> + <property name="drop-backlog" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="mount-points" writable="1" transfer-ownership="none"> + <type name="RTSPMountPoints"/> + </property> + <property name="post-session-timeout" writable="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <property name="session-pool" writable="1" transfer-ownership="none"> + <type name="RTSPSessionPool"/> + </property> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RTSPClientPrivate" c:type="GstRTSPClientPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="announce-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="check-requirements" when="last" version="1.6"> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a newly allocated string with comma-separated list of + unsupported options. An empty string must be returned if + all options are supported.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + <parameter name="arr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a NULL-terminated array of strings</doc> + <array> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="closed" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="describe-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="get-parameter-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="handle-response" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="new-session" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="RTSPSession"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="options-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pause-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="play-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-announce-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-describe-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-get-parameter-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-options-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-pause-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-play-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-record-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-set-parameter-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-setup-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="pre-teardown-request" when="last" version="1.12"> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code</doc> + <type name="GstRtsp.RTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="record-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="send-message" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="session" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">The session</doc> + <type name="RTSPSession"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">The message</doc> + <type name="GstRtsp.RTSPMessage" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="set-parameter-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="setup-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="teardown-request" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.c">a #GstRTSPContext</doc> + <type name="RTSPContext"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="RTSPClientClass" c:type="GstRTSPClientClass" glib:is-gtype-struct-for="RTSPClient"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">The client class structure.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="create_sdp"> + <callback name="create_sdp"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="configure_client_media"> + <callback name="configure_client_media"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="stream" transfer-ownership="none"> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="configure_client_transport"> + <callback name="configure_client_transport"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="ct" transfer-ownership="none"> + <type name="GstRtsp.RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="params_set"> + <callback name="params_set"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="params_get"> + <callback name="params_get"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="make_path_from_uri"> + <callback name="make_path_from_uri"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="adjust_play_mode"> + <callback name="adjust_play_mode"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="range" transfer-ownership="none"> + <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange**"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <type name="Gst.SeekFlags" c:type="GstSeekFlags*"/> + </parameter> + <parameter name="rate" transfer-ownership="none"> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="trickmode_interval" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="enable_rate_control" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="adjust_play_response"> + <callback name="adjust_play_response"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="context" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="closed"> + <callback name="closed"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_session"> + <callback name="new_session"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="session" transfer-ownership="none"> + <type name="RTSPSession" c:type="GstRTSPSession*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="options_request"> + <callback name="options_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="describe_request"> + <callback name="describe_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="setup_request"> + <callback name="setup_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="play_request"> + <callback name="play_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pause_request"> + <callback name="pause_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="teardown_request"> + <callback name="teardown_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_parameter_request"> + <callback name="set_parameter_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_parameter_request"> + <callback name="get_parameter_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_response"> + <callback name="handle_response"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="tunnel_http_response"> + <callback name="tunnel_http_response"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="request" transfer-ownership="none"> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="response" transfer-ownership="none"> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="send_message"> + <callback name="send_message"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="response" transfer-ownership="none"> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_sdp"> + <callback name="handle_sdp"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="sdp" transfer-ownership="none"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="announce_request"> + <callback name="announce_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="record_request"> + <callback name="record_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="check_requirements"> + <callback name="check_requirements"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="arr" transfer-ownership="none"> + <type name="utf8" c:type="gchar**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_options_request"> + <callback name="pre_options_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_describe_request"> + <callback name="pre_describe_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_setup_request"> + <callback name="pre_setup_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_play_request"> + <callback name="pre_play_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_pause_request"> + <callback name="pre_pause_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_teardown_request"> + <callback name="pre_teardown_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_set_parameter_request"> + <callback name="pre_set_parameter_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_get_parameter_request"> + <callback name="pre_get_parameter_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_announce_request"> + <callback name="pre_announce_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pre_record_request"> + <callback name="pre_record_request"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="adjust_error_code"> + <callback name="adjust_error_code"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPStatusCode, containing the adjusted error code.</doc> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPContext</doc> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPStatusCode</doc> + <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="1"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTSPClientPrivate" c:type="GstRTSPClientPrivate" disguised="1"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + </record> + <callback name="RTSPClientSendFunc" c:type="GstRTSPClientSendFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">This callback is called when @client wants to send @message. When @close is +%TRUE, the connection should be closed when the message has been sent.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPMessage</doc> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="close" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">close the connection</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">user data when registering the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="RTSPClientSendMessagesFunc" c:type="GstRTSPClientSendMessagesFunc" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">This callback is called when @client wants to send @messages. When @close is +%TRUE, the connection should be closed when the message has been sent.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="messages" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">#GstRTSPMessage</doc> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="n_messages" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">number of messages</doc> + <type name="guint" c:type="guint"/> + </parameter> + <parameter name="close" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">close the connection</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">user data when registering the callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="RTSPClientSessionFilterFunc" c:type="GstRTSPClientSessionFilterFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">This function will be called by the gst_rtsp_client_session_filter(). An +implementation should return a value of #GstRTSPFilterResult. + +When this function returns #GST_RTSP_FILTER_REMOVE, @sess will be removed +from @client. + +A return value of #GST_RTSP_FILTER_KEEP will leave @sess untouched in +@client. + +A value of #GST_RTSP_FILTER_REF will add @sess to the result #GList of +gst_rtsp_client_session_filter().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPFilterResult.</doc> + <type name="RTSPFilterResult" c:type="GstRTSPFilterResult"/> + </return-value> + <parameters> + <parameter name="client" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPClient object</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + <parameter name="sess" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">a #GstRTSPSession in @client</doc> + <type name="RTSPSession" c:type="GstRTSPSession*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-client.h">user data that has been given to gst_rtsp_client_session_filter()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="RTSPContext" c:type="GstRTSPContext"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">Information passed around containing the context of a request.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h"/> + <field name="server" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the server</doc> + <type name="RTSPServer" c:type="GstRTSPServer*"/> + </field> + <field name="conn" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the connection</doc> + <type name="GstRtsp.RTSPConnection" c:type="GstRTSPConnection*"/> + </field> + <field name="client" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the client</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </field> + <field name="request" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the complete request</doc> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </field> + <field name="uri" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the complete url parsed from @request</doc> + <type name="GstRtsp.RTSPUrl" c:type="GstRTSPUrl*"/> + </field> + <field name="method" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the parsed method of @uri</doc> + <type name="GstRtsp.RTSPMethod" c:type="GstRTSPMethod"/> + </field> + <field name="auth" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the current auth object or %NULL</doc> + <type name="RTSPAuth" c:type="GstRTSPAuth*"/> + </field> + <field name="token" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">authorisation token</doc> + <type name="RTSPToken" c:type="GstRTSPToken*"/> + </field> + <field name="session" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the session, can be %NULL</doc> + <type name="RTSPSession" c:type="GstRTSPSession*"/> + </field> + <field name="sessmedia" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the session media for the url can be %NULL</doc> + <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/> + </field> + <field name="factory" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the media factory for the url, can be %NULL</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </field> + <field name="media" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the media for the url can be %NULL</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </field> + <field name="stream" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the stream for the url can be %NULL</doc> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </field> + <field name="response" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the response</doc> + <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/> + </field> + <field name="trans" writable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h">the stream transport, can be %NULL</doc> + <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="pop_current" c:identifier="gst_rtsp_context_pop_current"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.c">Pops @ctx off the context stack (verifying that @ctx +is on the top of the stack).</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.c">a #GstRTSPContext</doc> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="push_current" c:identifier="gst_rtsp_context_push_current"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.c">Pushes @ctx onto the context stack. The current +context can then be received using gst_rtsp_context_get_current().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.c">a #GstRTSPContext</doc> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_token" c:identifier="gst_rtsp_context_set_token" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.c">Set the token for @ctx.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="ctx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.c">a #GstRTSPContext</doc> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </instance-parameter> + <parameter name="token" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.c">a #GstRTSPToken</doc> + <type name="RTSPToken" c:type="GstRTSPToken*"/> + </parameter> + </parameters> + </method> + <function name="get_current" c:identifier="gst_rtsp_context_get_current" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.c">Get the current #GstRTSPContext. This object is retrieved from the +current thread that is handling the request for a client.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-context.c">a #GstRTSPContext</doc> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </return-value> + </function> + </record> + <enumeration name="RTSPFilterResult" c:type="GstRTSPFilterResult"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.h">Possible return values for gst_rtsp_session_pool_filter().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.h"/> + <member name="remove" value="0" c:identifier="GST_RTSP_FILTER_REMOVE"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.h">Remove session</doc> + </member> + <member name="keep" value="1" c:identifier="GST_RTSP_FILTER_KEEP"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.h">Keep session in the pool</doc> + </member> + <member name="ref" value="2" c:identifier="GST_RTSP_FILTER_REF"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.h">Ref session in the result list</doc> + </member> + </enumeration> + <callback name="RTSPKeepAliveFunc" c:type="GstRTSPKeepAliveFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">Function registered with gst_rtsp_stream_transport_set_keepalive() and called +when the stream is active.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="RTSPMedia" c:symbol-prefix="rtsp_media" c:type="GstRTSPMedia" parent="GObject.Object" glib:type-name="GstRTSPMedia" glib:get-type="gst_rtsp_media_get_type" glib:type-struct="RTSPMediaClass"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">A class that contains the GStreamer element along with a list of +#GstRTSPStream objects that can produce data. + +This object is usually created from a #GstRTSPMediaFactory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <constructor name="new" c:identifier="gst_rtsp_media_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Create a new #GstRTSPMedia instance. @element is the bin element that +provides the different streams. The #GstRTSPMedia object contains the +element to produce RTP data for one or more related (audio/video/..) +streams. + +Ownership is taken of @element.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a new #GstRTSPMedia object.</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstElement</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="convert_range"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="range" transfer-ownership="none"> + <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + <parameter name="unit" transfer-ownership="none"> + <type name="GstRtsp.RTSPRangeUnit" c:type="GstRTSPRangeUnit"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create_rtpbin" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_message"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_sdp" invoker="handle_sdp"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Configure an SDP on @media for receiving streams</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="sdp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstSDPMessage</doc> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_state"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="state" transfer-ownership="none"> + <type name="Gst.State" c:type="GstState"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="new_stream"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="stream" transfer-ownership="none"> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="prepare" invoker="prepare"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Prepare @media for streaming. This function will create the objects +to manage the streaming. A pipeline must have been set on @media with +gst_rtsp_media_take_pipeline(). + +It will preroll the pipeline and collect vital information about the streams +such as the duration.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="thread" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPThread to run the + bus handler or %NULL</doc> + <type name="RTSPThread" c:type="GstRTSPThread*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="prepared"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="query_position"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="query_stop"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="stop" transfer-ownership="none"> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="removed_stream"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="stream" transfer-ownership="none"> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="setup_rtpbin"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="rtpbin" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="setup_sdp" invoker="setup_sdp"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Add @media specific info to @sdp. @info is used to configure the connection +information in the SDP.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="sdp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstSDPMessage</doc> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstSDPInfo</doc> + <type name="SDPInfo" c:type="GstSDPInfo*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="suspend" invoker="suspend"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Suspend @media. The state of the pipeline managed by @media is set to +GST_STATE_NULL but all streams are kept. @media can be prepared again +with gst_rtsp_media_unsuspend() + +@media must be prepared with gst_rtsp_media_prepare();</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="target_state"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="state" transfer-ownership="none"> + <type name="Gst.State" c:type="GstState"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="unprepare" invoker="unprepare"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Unprepare @media. After this call, the media should be prepared again before +it can be used again. If the media is set to be non-reusable, a new instance +must be created.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="unprepared"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="unsuspend" invoker="unsuspend"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Unsuspend @media if it was in a suspended state. This method does nothing +when the media was not in the suspended state.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="collect_streams" c:identifier="gst_rtsp_media_collect_streams"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Find all payloader elements, they should be named pay\%d in the +element of @media, and create #GstRTSPStreams for them. + +Collect all dynamic elements, named dynpay\%d, and add them to +the list of dynamic elements. + +Find all depayloader elements, they should be named depay\%d in the +element of @media, and create #GstRTSPStreams for them.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="complete_pipeline" c:identifier="gst_rtsp_media_complete_pipeline" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Add a receiver and sender parts to the pipeline based on the transport from +SETUP.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE if the media pipeline has been sucessfully updated.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="transports" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a list of #GstRTSPTransport</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="GstRtsp.RTSPTransport"/> + </array> + </parameter> + </parameters> + </method> + <method name="create_stream" c:identifier="gst_rtsp_media_create_stream"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Create a new stream in @media that provides RTP data on @pad. +@pad should be a pad of an element inside @media->element.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a new #GstRTSPStream that remains valid for as long +as @media exists.</doc> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="payloader" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstElement</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstPad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="find_stream" c:identifier="gst_rtsp_media_find_stream"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Find a stream in @media with @control as the control uri.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the #GstRTSPStream with +control uri @control or %NULL when a stream with that control did +not exist.</doc> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="control" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the control of the stream</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_address_pool" c:identifier="gst_rtsp_media_get_address_pool"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the #GstRTSPAddressPool used as the address pool of @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the #GstRTSPAddressPool of @media. +g_object_unref() after usage.</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_base_time" c:identifier="gst_rtsp_media_get_base_time"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the base_time that is used by the pipeline in @media. + +@media must be prepared before this method returns a valid base_time.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the base_time used by @media.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_buffer_size" c:identifier="gst_rtsp_media_get_buffer_size"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the kernel UDP buffer size.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the kernel UDP buffer size.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_clock" c:identifier="gst_rtsp_media_get_clock"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the clock that is used by the pipeline in @media. + +@media must be prepared before this method returns a valid clock object.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the #GstClock used by @media. unref after usage.</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_do_retransmission" c:identifier="gst_rtsp_media_get_do_retransmission" version="1.16"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Whether retransmission requests will be sent</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_dscp_qos" c:identifier="gst_rtsp_media_get_dscp_qos" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the configured DSCP QoS of attached media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the DSCP QoS value of attached streams or -1 if disabled.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_element" c:identifier="gst_rtsp_media_get_element"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the element that was used when constructing @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstElement. Unref after usage.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_latency" c:identifier="gst_rtsp_media_get_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the latency that is used for receiving media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">latency in milliseconds</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_mcast_ttl" c:identifier="gst_rtsp_media_get_max_mcast_ttl" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the the maximum time-to-live value of outgoing multicast packets.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the maximum time-to-live value of outgoing multicast packets.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_multicast_iface" c:identifier="gst_rtsp_media_get_multicast_iface"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the multicast interface used for @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the multicast interface for @media. +g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_permissions" c:identifier="gst_rtsp_media_get_permissions"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the permissions object from @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPPermissions object, unref after usage.</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_profiles" c:identifier="gst_rtsp_media_get_profiles"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the allowed profiles of @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPProfile</doc> + <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_protocols" c:identifier="gst_rtsp_media_get_protocols"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the allowed protocols of @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPLowerTrans</doc> + <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_publish_clock_mode" c:identifier="gst_rtsp_media_get_publish_clock_mode" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Gets if and how the media clock should be published according to RFC7273.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">The GstRTSPPublishClockMode</doc> + <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_range_string" c:identifier="gst_rtsp_media_get_range_string"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the current range as a string. @media must be prepared with +gst_rtsp_media_prepare ().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">The range as a string, g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="play" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">for the PLAY request</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="unit" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the unit to use for the string</doc> + <type name="GstRtsp.RTSPRangeUnit" c:type="GstRTSPRangeUnit"/> + </parameter> + </parameters> + </method> + <method name="get_rate_control" c:identifier="gst_rtsp_media_get_rate_control" version="1.18"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">whether @media will follow the Rate-Control=no behaviour as specified +in the ONVIF replay spec.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_rates" c:identifier="gst_rtsp_media_get_rates" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the rate and applied_rate of the current segment.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%FALSE if looking up the rate and applied rate failed. Otherwise +%TRUE is returned and @rate and @applied_rate are set to the rate and +applied_rate of the current segment.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="rate" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the rate of the current segment</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + <parameter name="applied_rate" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the applied_rate of the current segment</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="get_retransmission_time" c:identifier="gst_rtsp_media_get_retransmission_time"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the amount of time to store retransmission data.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the amount of time to store retransmission data.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_status" c:identifier="gst_rtsp_media_get_status"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the status of @media. When @media is busy preparing, this function waits +until @media is prepared or in error.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the status of @media.</doc> + <type name="RTSPMediaStatus" c:type="GstRTSPMediaStatus"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream" c:identifier="gst_rtsp_media_get_stream"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Retrieve the stream with index @idx from @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the #GstRTSPStream at index +@idx or %NULL when a stream with that index did not exist.</doc> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="idx" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the stream index</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_suspend_mode" c:identifier="gst_rtsp_media_get_suspend_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get how @media will be suspended.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">#GstRTSPSuspendMode.</doc> + <type name="RTSPSuspendMode" c:type="GstRTSPSuspendMode"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_time_provider" c:identifier="gst_rtsp_media_get_time_provider"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the #GstNetTimeProvider for the clock used by @media. The time provider +will listen on @address and @port for client time requests.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the #GstNetTimeProvider of @media.</doc> + <type name="GstNet.NetTimeProvider" c:type="GstNetTimeProvider*"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="address" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">an address or %NULL</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a port or 0</doc> + <type name="guint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="get_transport_mode" c:identifier="gst_rtsp_media_get_transport_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Check if the pipeline for @media can be used for PLAY or RECORD methods.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">The transport mode.</doc> + <type name="RTSPTransportMode" c:type="GstRTSPTransportMode"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="handle_sdp" c:identifier="gst_rtsp_media_handle_sdp"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Configure an SDP on @media for receiving streams</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="sdp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstSDPMessage</doc> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + </parameters> + </method> + <method name="has_completed_sender" c:identifier="gst_rtsp_media_has_completed_sender" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">See gst_rtsp_stream_is_complete(), gst_rtsp_stream_is_sender().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">whether @media has at least one complete sender stream.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_bind_mcast_address" c:identifier="gst_rtsp_media_is_bind_mcast_address" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Check if multicast sockets are configured to be bound to multicast addresses.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE if multicast sockets are configured to be bound to multicast addresses.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_eos_shutdown" c:identifier="gst_rtsp_media_is_eos_shutdown"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Check if the pipeline for @media will send an EOS down the pipeline before +unpreparing.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE if the media will send EOS before unpreparing.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_receive_only" c:identifier="gst_rtsp_media_is_receive_only" version="1.18"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE if @media is receive-only, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_reusable" c:identifier="gst_rtsp_media_is_reusable"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Check if the pipeline for @media can be reused after an unprepare.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE if the media can be reused</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_shared" c:identifier="gst_rtsp_media_is_shared"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Check if the pipeline for @media can be shared between multiple clients.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE if the media can be shared between clients.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_stop_on_disconnect" c:identifier="gst_rtsp_media_is_stop_on_disconnect"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Check if the pipeline for @media will be stopped when a client disconnects +without sending TEARDOWN.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE if the media will be stopped when a client disconnects + without sending TEARDOWN.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_time_provider" c:identifier="gst_rtsp_media_is_time_provider"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Check if @media can provide a #GstNetTimeProvider for its pipeline clock. + +Use gst_rtsp_media_get_time_provider() to get the network clock.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE if @media can provide a #GstNetTimeProvider.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="lock" c:identifier="gst_rtsp_media_lock" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Lock the entire media. This is needed by callers such as rtsp_client to +protect the media when it is shared by many clients. +The lock prevents that concurrent clients alters the shared media, +while one client already is working with it. +Typically the lock is taken in external RTSP API calls that uses shared media +such as DESCRIBE, SETUP, ANNOUNCE, TEARDOWN, PLAY, PAUSE. + +As best practice take the lock as soon as the function get hold of a shared +media object. Release the lock right before the function returns.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="n_streams" c:identifier="gst_rtsp_media_n_streams"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Get the number of streams in this media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">The number of streams.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="prepare" c:identifier="gst_rtsp_media_prepare"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Prepare @media for streaming. This function will create the objects +to manage the streaming. A pipeline must have been set on @media with +gst_rtsp_media_take_pipeline(). + +It will preroll the pipeline and collect vital information about the streams +such as the duration.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="thread" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPThread to run the + bus handler or %NULL</doc> + <type name="RTSPThread" c:type="GstRTSPThread*"/> + </parameter> + </parameters> + </method> + <method name="seek" c:identifier="gst_rtsp_media_seek"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Seek the pipeline of @media to @range. @media must be prepared with +gst_rtsp_media_prepare().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPTimeRange</doc> + <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + </parameters> + </method> + <method name="seek_full" c:identifier="gst_rtsp_media_seek_full" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Seek the pipeline of @media to @range with the given @flags. +@media must be prepared with gst_rtsp_media_prepare().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPTimeRange</doc> + <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">The minimal set of #GstSeekFlags to use</doc> + <type name="Gst.SeekFlags" c:type="GstSeekFlags"/> + </parameter> + </parameters> + </method> + <method name="seek_trickmode" c:identifier="gst_rtsp_media_seek_trickmode" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Seek the pipeline of @media to @range with the given @flags and @rate, +and @trickmode_interval. +@media must be prepared with gst_rtsp_media_prepare(). +In order to perform the seek operation, the pipeline must contain all +needed transport parts (transport sinks).</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="range" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPTimeRange</doc> + <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">The minimal set of #GstSeekFlags to use</doc> + <type name="Gst.SeekFlags" c:type="GstSeekFlags"/> + </parameter> + <parameter name="rate" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the rate to use in the seek</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="trickmode_interval" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">The trickmode interval to use for KEY_UNITS trick mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="seekable" c:identifier="gst_rtsp_media_seekable" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Check if the pipeline for @media seek and up to what point in time, +it can seek.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">-1 if the stream is not seekable, 0 if seekable only to the beginning +and > 0 to indicate the longest duration between any two random access points. +%G_MAXINT64 means any value is possible.</doc> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_address_pool" c:identifier="gst_rtsp_media_set_address_pool"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">configure @pool to be used as the address pool of @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPAddressPool</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </parameter> + </parameters> + </method> + <method name="set_bind_mcast_address" c:identifier="gst_rtsp_media_set_bind_mcast_address" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Decide whether the multicast socket should be bound to a multicast address or +INADDR_ANY.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="bind_mcast_addr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_buffer_size" c:identifier="gst_rtsp_media_set_buffer_size"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set the kernel UDP buffer size.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new value</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_clock" c:identifier="gst_rtsp_media_set_clock"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Configure the clock used for the media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">#GstClock to be used</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </method> + <method name="set_do_retransmission" c:identifier="gst_rtsp_media_set_do_retransmission" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set whether retransmission requests will be sent</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="do_retransmission" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_dscp_qos" c:identifier="gst_rtsp_media_set_dscp_qos" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Configure the dscp qos of attached streams to @dscp_qos.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="dscp_qos" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a new dscp qos value (0-63, or -1 to disable)</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_eos_shutdown" c:identifier="gst_rtsp_media_set_eos_shutdown"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set or unset if an EOS event will be sent to the pipeline for @media before +it is unprepared.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="eos_shutdown" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_latency" c:identifier="gst_rtsp_media_set_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Configure the latency used for receiving media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">latency in milliseconds</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_max_mcast_ttl" c:identifier="gst_rtsp_media_set_max_mcast_ttl" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set the maximum time-to-live value of outgoing multicast packets.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE if the requested ttl has been set successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="ttl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new multicast ttl value</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_multicast_iface" c:identifier="gst_rtsp_media_set_multicast_iface"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">configure @multicast_iface to be used for @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="multicast_iface" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a multicast interface name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_permissions" c:identifier="gst_rtsp_media_set_permissions"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set @permissions on @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="permissions" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPPermissions</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </parameter> + </parameters> + </method> + <method name="set_pipeline_state" c:identifier="gst_rtsp_media_set_pipeline_state"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set the state of the pipeline managed by @media to @state</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the target state of the pipeline</doc> + <type name="Gst.State" c:type="GstState"/> + </parameter> + </parameters> + </method> + <method name="set_profiles" c:identifier="gst_rtsp_media_set_profiles"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Configure the allowed lower transport for @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="profiles" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new flags</doc> + <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/> + </parameter> + </parameters> + </method> + <method name="set_protocols" c:identifier="gst_rtsp_media_set_protocols"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Configure the allowed lower transport for @media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="protocols" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new flags</doc> + <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </parameter> + </parameters> + </method> + <method name="set_publish_clock_mode" c:identifier="gst_rtsp_media_set_publish_clock_mode" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Sets if and how the media clock should be published according to RFC7273.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the clock publish mode</doc> + <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/> + </parameter> + </parameters> + </method> + <method name="set_rate_control" c:identifier="gst_rtsp_media_set_rate_control" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Define whether @media will follow the Rate-Control=no behaviour as specified +in the ONVIF replay spec.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="enabled" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_retransmission_time" c:identifier="gst_rtsp_media_set_retransmission_time"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set the amount of time to store retransmission packets.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new value</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_reusable" c:identifier="gst_rtsp_media_set_reusable"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set or unset if the pipeline for @media can be reused after the pipeline has +been unprepared.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="reusable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_shared" c:identifier="gst_rtsp_media_set_shared"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set or unset if the pipeline for @media can be shared will multiple clients. +When @shared is %TRUE, client requests for this media will share the media +pipeline.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="shared" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_state" c:identifier="gst_rtsp_media_set_state"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set the state of @media to @state and for the transports in @transports. + +@media must be prepared with gst_rtsp_media_prepare();</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="state" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the target state of the media</doc> + <type name="Gst.State" c:type="GstState"/> + </parameter> + <parameter name="transports" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c"> +a #GPtrArray of #GstRTSPStreamTransport pointers</doc> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="RTSPStreamTransport"/> + </array> + </parameter> + </parameters> + </method> + <method name="set_stop_on_disconnect" c:identifier="gst_rtsp_media_set_stop_on_disconnect"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set or unset if the pipeline for @media should be stopped when a +client disconnects without sending TEARDOWN.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="stop_on_disconnect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_suspend_mode" c:identifier="gst_rtsp_media_set_suspend_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Control how @ media will be suspended after the SDP has been generated and +after a PAUSE request has been performed. + +Media must be unprepared when setting the suspend mode.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new #GstRTSPSuspendMode</doc> + <type name="RTSPSuspendMode" c:type="GstRTSPSuspendMode"/> + </parameter> + </parameters> + </method> + <method name="set_transport_mode" c:identifier="gst_rtsp_media_set_transport_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Sets if the media pipeline can work in PLAY or RECORD mode</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">the new value</doc> + <type name="RTSPTransportMode" c:type="GstRTSPTransportMode"/> + </parameter> + </parameters> + </method> + <method name="setup_sdp" c:identifier="gst_rtsp_media_setup_sdp"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Add @media specific info to @sdp. @info is used to configure the connection +information in the SDP.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="sdp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstSDPMessage</doc> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstSDPInfo</doc> + <type name="SDPInfo" c:type="GstSDPInfo*"/> + </parameter> + </parameters> + </method> + <method name="suspend" c:identifier="gst_rtsp_media_suspend"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Suspend @media. The state of the pipeline managed by @media is set to +GST_STATE_NULL but all streams are kept. @media can be prepared again +with gst_rtsp_media_unsuspend() + +@media must be prepared with gst_rtsp_media_prepare();</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="take_pipeline" c:identifier="gst_rtsp_media_take_pipeline"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set @pipeline as the #GstPipeline for @media. Ownership is +taken of @pipeline.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstPipeline</doc> + <type name="Gst.Pipeline" c:type="GstPipeline*"/> + </parameter> + </parameters> + </method> + <method name="unlock" c:identifier="gst_rtsp_media_unlock" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Unlock the media.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="unprepare" c:identifier="gst_rtsp_media_unprepare"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Unprepare @media. After this call, the media should be prepared again before +it can be used again. If the media is set to be non-reusable, a new instance +must be created.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="unsuspend" c:identifier="gst_rtsp_media_unsuspend"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Unsuspend @media if it was in a suspended state. This method does nothing +when the media was not in the suspended state.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="use_time_provider" c:identifier="gst_rtsp_media_use_time_provider"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Set @media to provide a #GstNetTimeProvider.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </instance-parameter> + <parameter name="time_provider" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">if a #GstNetTimeProvider should be used</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="bind-mcast-address" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="buffer-size" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="clock" writable="1" transfer-ownership="none"> + <type name="Gst.Clock"/> + </property> + <property name="dscp-qos" writable="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <property name="element" writable="1" construct-only="1" transfer-ownership="none"> + <type name="Gst.Element"/> + </property> + <property name="eos-shutdown" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="latency" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="max-mcast-ttl" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="profiles" writable="1" transfer-ownership="none"> + <type name="GstRtsp.RTSPProfile"/> + </property> + <property name="protocols" writable="1" transfer-ownership="none"> + <type name="GstRtsp.RTSPLowerTrans"/> + </property> + <property name="reusable" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="shared" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="stop-on-disconnect" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="suspend-mode" writable="1" transfer-ownership="none"> + <type name="RTSPSuspendMode"/> + </property> + <property name="time-provider" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="transport-mode" writable="1" transfer-ownership="none"> + <type name="RTSPTransportMode"/> + </property> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RTSPMediaPrivate" c:type="GstRTSPMediaPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="handle-message" when="last" detailed="1" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">Will be emitted when a message appears on the pipeline bus.</doc> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #gboolean indicating if the call was successful or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstMessage</doc> + <type name="Gst.Message"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="new-state" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="new-stream" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="RTSPStream"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="prepared" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="removed-stream" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="RTSPStream"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="target-state" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="unprepared" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + </class> + <record name="RTSPMediaClass" c:type="GstRTSPMediaClass" glib:is-gtype-struct-for="RTSPMedia"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">The RTSP media class</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="handle_message"> + <callback name="handle_message"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare"> + <callback name="prepare"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="thread" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPThread to run the + bus handler or %NULL</doc> + <type name="RTSPThread" c:type="GstRTSPThread*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unprepare"> + <callback name="unprepare"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="suspend"> + <callback name="suspend"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unsuspend"> + <callback name="unsuspend"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">%TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="convert_range"> + <callback name="convert_range"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="range" transfer-ownership="none"> + <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + <parameter name="unit" transfer-ownership="none"> + <type name="GstRtsp.RTSPRangeUnit" c:type="GstRTSPRangeUnit"/> + </parameter> + </parameters> + </callback> + </field> + <field name="query_position"> + <callback name="query_position"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="query_stop"> + <callback name="query_stop"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_rtpbin" introspectable="0"> + <callback name="create_rtpbin" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="setup_rtpbin"> + <callback name="setup_rtpbin"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="rtpbin" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="setup_sdp"> + <callback name="setup_sdp"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="sdp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstSDPMessage</doc> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstSDPInfo</doc> + <type name="SDPInfo" c:type="GstSDPInfo*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_stream"> + <callback name="new_stream"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="stream" transfer-ownership="none"> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="removed_stream"> + <callback name="removed_stream"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="stream" transfer-ownership="none"> + <type name="RTSPStream" c:type="GstRTSPStream*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepared"> + <callback name="prepared"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unprepared"> + <callback name="unprepared"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="target_state"> + <callback name="target_state"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="state" transfer-ownership="none"> + <type name="Gst.State" c:type="GstState"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_state"> + <callback name="new_state"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="state" transfer-ownership="none"> + <type name="Gst.State" c:type="GstState"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_sdp"> + <callback name="handle_sdp"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">TRUE on success.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstRTSPMedia</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + <parameter name="sdp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c">a #GstSDPMessage</doc> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="19"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="RTSPMediaFactory" c:symbol-prefix="rtsp_media_factory" c:type="GstRTSPMediaFactory" parent="GObject.Object" glib:type-name="GstRTSPMediaFactory" glib:get-type="gst_rtsp_media_factory_get_type" glib:type-struct="RTSPMediaFactoryClass"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h">The definition and logic for constructing the pipeline for a media. The media +can contain multiple streams like audio and video.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <constructor name="new" c:identifier="gst_rtsp_media_factory_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Create a new #GstRTSPMediaFactory instance.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a new #GstRTSPMediaFactory object.</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </return-value> + </constructor> + <virtual-method name="configure"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="construct" invoker="construct"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Construct the media object and create its streams. Implementations +should create the needed gstreamer elements and add them to the result +object. No state changes should be performed on them yet. + +One or more GstRTSPStream objects should be created from the result +with gst_rtsp_media_create_stream (). + +After the media is constructed, it can be configured and then prepared +with gst_rtsp_media_prepare ().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a new #GstRTSPMedia if the media could be prepared.</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the url used</doc> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create_element" invoker="create_element"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Construct and return a #GstElement that is a #GstBin containing +the elements to use for streaming the media. + +The bin should contain payloaders pay\%d for each stream. The default +implementation of this function returns the bin created from the +launch parameter.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a new #GstElement.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the url used</doc> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create_pipeline" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="gen_key"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="url" transfer-ownership="none"> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="media_configure"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="media_constructed"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_role" c:identifier="gst_rtsp_media_factory_add_role" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">A convenience method to add @role with @fieldname and additional arguments to +the permissions of @factory. If @factory had no permissions, new permissions +will be created and the role will be added to it.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="role" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a role</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the first field name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">additional arguments</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="add_role_from_structure" c:identifier="gst_rtsp_media_factory_add_role_from_structure" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">A convenience wrapper around gst_rtsp_permissions_add_role_from_structure(). +If @factory had no permissions, new permissions will be created and the +role will be added to it.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="structure" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="construct" c:identifier="gst_rtsp_media_factory_construct"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Construct the media object and create its streams. Implementations +should create the needed gstreamer elements and add them to the result +object. No state changes should be performed on them yet. + +One or more GstRTSPStream objects should be created from the result +with gst_rtsp_media_create_stream (). + +After the media is constructed, it can be configured and then prepared +with gst_rtsp_media_prepare ().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a new #GstRTSPMedia if the media could be prepared.</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the url used</doc> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </method> + <method name="create_element" c:identifier="gst_rtsp_media_factory_create_element"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Construct and return a #GstElement that is a #GstBin containing +the elements to use for streaming the media. + +The bin should contain payloaders pay\%d for each stream. The default +implementation of this function returns the bin created from the +launch parameter.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a new #GstElement.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the url used</doc> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </method> + <method name="get_address_pool" c:identifier="gst_rtsp_media_factory_get_address_pool"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the #GstRTSPAddressPool used as the address pool of @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the #GstRTSPAddressPool of @factory. g_object_unref() after +usage.</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_buffer_size" c:identifier="gst_rtsp_media_factory_get_buffer_size"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the kernel UDP buffer size.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the kernel UDP buffer size.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMedia</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_clock" c:identifier="gst_rtsp_media_factory_get_clock" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Returns the clock that is going to be used by the pipelines +of all medias created from this factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">The GstClock</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_do_retransmission" c:identifier="gst_rtsp_media_factory_get_do_retransmission" version="1.16"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Whether retransmission requests will be sent for receiving media</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_dscp_qos" c:identifier="gst_rtsp_media_factory_get_dscp_qos" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the configured media DSCP QoS.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the media DSCP QoS value or -1 if disabled.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_latency" c:identifier="gst_rtsp_media_factory_get_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the latency that is used for receiving media</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">latency in milliseconds</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_launch" c:identifier="gst_rtsp_media_factory_get_launch"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the gst_parse_launch() pipeline description that will be used in the +default prepare vmethod.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the configured launch description. g_free() after +usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_mcast_ttl" c:identifier="gst_rtsp_media_factory_get_max_mcast_ttl" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the the maximum time-to-live value of outgoing multicast packets.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the maximum time-to-live value of outgoing multicast packets.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMedia</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_media_gtype" c:identifier="gst_rtsp_media_factory_get_media_gtype" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Return the GType of the GstRTSPMedia subclass this +factory will create.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_multicast_iface" c:identifier="gst_rtsp_media_factory_get_multicast_iface"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the multicast interface used for @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the multicast interface for @factory. g_free() after +usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_permissions" c:identifier="gst_rtsp_media_factory_get_permissions"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the permissions object from @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPPermissions object, unref after usage.</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_profiles" c:identifier="gst_rtsp_media_factory_get_profiles"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the allowed profiles of @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPProfile</doc> + <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_protocols" c:identifier="gst_rtsp_media_factory_get_protocols"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the allowed protocols of @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPLowerTrans</doc> + <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_publish_clock_mode" c:identifier="gst_rtsp_media_factory_get_publish_clock_mode" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Gets if and how the media clock should be published according to RFC7273.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">The GstRTSPPublishClockMode</doc> + <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_retransmission_time" c:identifier="gst_rtsp_media_factory_get_retransmission_time"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get the time that is stored for retransmission purposes</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_suspend_mode" c:identifier="gst_rtsp_media_factory_get_suspend_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get how media created from this factory will be suspended.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPSuspendMode.</doc> + <type name="RTSPSuspendMode" c:type="GstRTSPSuspendMode"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_transport_mode" c:identifier="gst_rtsp_media_factory_get_transport_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get if media created from this factory can be used for PLAY or RECORD +methods.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">The transport mode.</doc> + <type name="RTSPTransportMode" c:type="GstRTSPTransportMode"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_bind_mcast_address" c:identifier="gst_rtsp_media_factory_is_bind_mcast_address" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Check if multicast sockets are configured to be bound to multicast addresses.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">%TRUE if multicast sockets are configured to be bound to multicast addresses.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_enable_rtcp" c:identifier="gst_rtsp_media_factory_is_enable_rtcp" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Check if created media will send and receive RTCP</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">%TRUE if created media will send and receive RTCP</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_eos_shutdown" c:identifier="gst_rtsp_media_factory_is_eos_shutdown"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get if media created from this factory will have an EOS event sent to the +pipeline before shutdown.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">%TRUE if the media will receive EOS before shutdown.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_shared" c:identifier="gst_rtsp_media_factory_is_shared"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Get if media created from this factory can be shared between clients.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">%TRUE if the media will be shared between clients.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_stop_on_disonnect" c:identifier="gst_rtsp_media_factory_is_stop_on_disonnect"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_address_pool" c:identifier="gst_rtsp_media_factory_set_address_pool"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">configure @pool to be used as the address pool of @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPAddressPool</doc> + <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/> + </parameter> + </parameters> + </method> + <method name="set_bind_mcast_address" c:identifier="gst_rtsp_media_factory_set_bind_mcast_address" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Decide whether the multicast socket should be bound to a multicast address or +INADDR_ANY.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="bind_mcast_addr" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_buffer_size" c:identifier="gst_rtsp_media_factory_set_buffer_size"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Set the kernel UDP buffer size.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMedia</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="size" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new value</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_clock" c:identifier="gst_rtsp_media_factory_set_clock" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configures a specific clock to be used by the pipelines +of all medias created from this factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the clock to be used by the media factory</doc> + <type name="Gst.Clock" c:type="GstClock*"/> + </parameter> + </parameters> + </method> + <method name="set_do_retransmission" c:identifier="gst_rtsp_media_factory_set_do_retransmission" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Set whether retransmission requests will be sent for +receiving media</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="do_retransmission" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_dscp_qos" c:identifier="gst_rtsp_media_factory_set_dscp_qos" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure the media dscp qos to @dscp_qos.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="dscp_qos" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a new dscp qos value (0-63, or -1 to disable)</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_enable_rtcp" c:identifier="gst_rtsp_media_factory_set_enable_rtcp" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Decide whether the created media should send and receive RTCP</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="enable" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_eos_shutdown" c:identifier="gst_rtsp_media_factory_set_eos_shutdown"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure if media created from this factory will have an EOS sent to the +pipeline before shutdown.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="eos_shutdown" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_latency" c:identifier="gst_rtsp_media_factory_set_latency"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure the latency used for receiving media</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="latency" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">latency in milliseconds</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_launch" c:identifier="gst_rtsp_media_factory_set_launch"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">The gst_parse_launch() line to use for constructing the pipeline in the +default prepare vmethod. + +The pipeline description should return a GstBin as the toplevel element +which can be accomplished by enclosing the description with brackets '(' +')'. + +The description should return a pipeline with payloaders named pay0, pay1, +etc.. Each of the payloaders will result in a stream.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="launch" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the launch description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_max_mcast_ttl" c:identifier="gst_rtsp_media_factory_set_max_mcast_ttl" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Set the maximum time-to-live value of outgoing multicast packets.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">%TRUE if the requested ttl has been set successfully.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMedia</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="ttl" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new multicast ttl value</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_media_gtype" c:identifier="gst_rtsp_media_factory_set_media_gtype" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure the GType of the GstRTSPMedia subclass to +create (by default, overridden construct vmethods +may of course do something different)</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="media_gtype" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the GType of the class to create</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="set_multicast_iface" c:identifier="gst_rtsp_media_factory_set_multicast_iface"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">configure @multicast_iface to be used for @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="multicast_iface" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a multicast interface name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_permissions" c:identifier="gst_rtsp_media_factory_set_permissions"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Set @permissions on @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="permissions" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPPermissions</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </parameter> + </parameters> + </method> + <method name="set_profiles" c:identifier="gst_rtsp_media_factory_set_profiles"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure the allowed profiles for @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="profiles" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new flags</doc> + <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/> + </parameter> + </parameters> + </method> + <method name="set_protocols" c:identifier="gst_rtsp_media_factory_set_protocols"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure the allowed lower transport for @factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="protocols" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new flags</doc> + <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </parameter> + </parameters> + </method> + <method name="set_publish_clock_mode" c:identifier="gst_rtsp_media_factory_set_publish_clock_mode" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Sets if and how the media clock should be published according to RFC7273.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the clock publish mode</doc> + <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/> + </parameter> + </parameters> + </method> + <method name="set_retransmission_time" c:identifier="gst_rtsp_media_factory_set_retransmission_time"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure the time to store for possible retransmission</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstClockTime</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_shared" c:identifier="gst_rtsp_media_factory_set_shared"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure if media created from this factory can be shared between clients.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="shared" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_stop_on_disconnect" c:identifier="gst_rtsp_media_factory_set_stop_on_disconnect"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure if media created from this factory should be stopped +when a client disconnects without sending TEARDOWN.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="stop_on_disconnect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new value</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_suspend_mode" c:identifier="gst_rtsp_media_factory_set_suspend_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure how media created from this factory will be suspended.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new #GstRTSPSuspendMode</doc> + <type name="RTSPSuspendMode" c:type="GstRTSPSuspendMode"/> + </parameter> + </parameters> + </method> + <method name="set_transport_mode" c:identifier="gst_rtsp_media_factory_set_transport_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Configure if this factory creates media for PLAY or RECORD modes.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the new value</doc> + <type name="RTSPTransportMode" c:type="GstRTSPTransportMode"/> + </parameter> + </parameters> + </method> + <property name="bind-mcast-address" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="buffer-size" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="clock" writable="1" transfer-ownership="none"> + <type name="Gst.Clock"/> + </property> + <property name="dscp-qos" writable="1" transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </property> + <property name="enable-rtcp" version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">Whether the created media should send and receive RTCP</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="eos-shutdown" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="latency" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="launch" writable="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="max-mcast-ttl" writable="1" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </property> + <property name="profiles" writable="1" transfer-ownership="none"> + <type name="GstRtsp.RTSPProfile"/> + </property> + <property name="protocols" writable="1" transfer-ownership="none"> + <type name="GstRtsp.RTSPLowerTrans"/> + </property> + <property name="shared" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="stop-on-disconnect" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="suspend-mode" writable="1" transfer-ownership="none"> + <type name="RTSPSuspendMode"/> + </property> + <property name="transport-mode" writable="1" transfer-ownership="none"> + <type name="RTSPTransportMode"/> + </property> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RTSPMediaFactoryPrivate" c:type="GstRTSPMediaFactoryPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="media-configure" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="RTSPMedia"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="media-constructed" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="RTSPMedia"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="RTSPMediaFactoryClass" c:type="GstRTSPMediaFactoryClass" glib:is-gtype-struct-for="RTSPMediaFactory"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h">The #GstRTSPMediaFactory class structure.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="gen_key"> + <callback name="gen_key"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </parameter> + <parameter name="url" transfer-ownership="none"> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_element"> + <callback name="create_element"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a new #GstElement.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </parameter> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the url used</doc> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="construct"> + <callback name="construct"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a new #GstRTSPMedia if the media could be prepared.</doc> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </parameter> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.c">the url used</doc> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_pipeline" introspectable="0"> + <callback name="create_pipeline" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="configure"> + <callback name="configure"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="media_constructed"> + <callback name="media_constructed"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="media_configure"> + <callback name="media_configure"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="RTSPMedia" c:type="GstRTSPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTSPMediaFactoryPrivate" c:type="GstRTSPMediaFactoryPrivate" disguised="1"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory.h"/> + </record> + <class name="RTSPMediaFactoryURI" c:symbol-prefix="rtsp_media_factory_uri" c:type="GstRTSPMediaFactoryURI" parent="RTSPMediaFactory" glib:type-name="GstRTSPMediaFactoryURI" glib:get-type="gst_rtsp_media_factory_uri_get_type" glib:type-struct="RTSPMediaFactoryURIClass"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h">A media factory that creates a pipeline to play any uri.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h"/> + <constructor name="new" c:identifier="gst_rtsp_media_factory_uri_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.c">Create a new #GstRTSPMediaFactoryURI instance.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.c">a new #GstRTSPMediaFactoryURI object.</doc> + <type name="RTSPMediaFactoryURI" c:type="GstRTSPMediaFactoryURI*"/> + </return-value> + </constructor> + <method name="get_uri" c:identifier="gst_rtsp_media_factory_uri_get_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.c">Get the URI that will provide media for this factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.c">the configured URI. g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactoryURI" c:type="GstRTSPMediaFactoryURI*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_uri" c:identifier="gst_rtsp_media_factory_uri_set_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.c">Set the URI of the resource that will be streamed by this factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactoryURI" c:type="GstRTSPMediaFactoryURI*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.c">the uri the stream</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <property name="uri" writable="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="use-gstpay" writable="1" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="parent"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RTSPMediaFactoryURIPrivate" c:type="GstRTSPMediaFactoryURIPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="RTSPMediaFactoryURIClass" c:type="GstRTSPMediaFactoryURIClass" glib:is-gtype-struct-for="RTSPMediaFactoryURI"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h">The #GstRTSPMediaFactoryURI class structure.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h"/> + <field name="parent_class"> + <type name="RTSPMediaFactoryClass" c:type="GstRTSPMediaFactoryClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTSPMediaFactoryURIPrivate" c:type="GstRTSPMediaFactoryURIPrivate" disguised="1"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media-factory-uri.h"/> + </record> + <record name="RTSPMediaPrivate" c:type="GstRTSPMediaPrivate" disguised="1"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + </record> + <enumeration name="RTSPMediaStatus" c:type="GstRTSPMediaStatus"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">The state of the media pipeline.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h"/> + <member name="unprepared" value="0" c:identifier="GST_RTSP_MEDIA_STATUS_UNPREPARED"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">media pipeline not prerolled</doc> + </member> + <member name="unpreparing" value="1" c:identifier="GST_RTSP_MEDIA_STATUS_UNPREPARING"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">media pipeline is busy doing a clean + shutdown.</doc> + </member> + <member name="preparing" value="2" c:identifier="GST_RTSP_MEDIA_STATUS_PREPARING"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">media pipeline is prerolling</doc> + </member> + <member name="prepared" value="3" c:identifier="GST_RTSP_MEDIA_STATUS_PREPARED"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">media pipeline is prerolled</doc> + </member> + <member name="suspended" value="4" c:identifier="GST_RTSP_MEDIA_STATUS_SUSPENDED"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">media is suspended</doc> + </member> + <member name="error" value="5" c:identifier="GST_RTSP_MEDIA_STATUS_ERROR"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">media pipeline is in error</doc> + </member> + </enumeration> + <callback name="RTSPMessageSentFunc" c:type="GstRTSPMessageSentFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">Function registered with gst_rtsp_stream_transport_set_message_sent() +and called when a message has been sent on the transport.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="0"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="RTSPMessageSentFuncFull" c:type="GstRTSPMessageSentFuncFull" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">Function registered with gst_rtsp_stream_transport_set_message_sent_full() +and called when a message has been sent on the transport.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="RTSPMountPoints" c:symbol-prefix="rtsp_mount_points" c:type="GstRTSPMountPoints" parent="GObject.Object" glib:type-name="GstRTSPMountPoints" glib:get-type="gst_rtsp_mount_points_get_type" glib:type-struct="RTSPMountPointsClass"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h">Creates a #GstRTSPMediaFactory object for a given url.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <constructor name="new" c:identifier="gst_rtsp_mount_points_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">Make a new mount points object.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a new #GstRTSPMountPoints</doc> + <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/> + </return-value> + </constructor> + <virtual-method name="make_path" invoker="make_path"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">Make a path string from @url.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a path string for @url, g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="mounts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPMountPoints</doc> + <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/> + </instance-parameter> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPUrl</doc> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_factory" c:identifier="gst_rtsp_mount_points_add_factory"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">Attach @factory to the mount point @path in @mounts. + +@path is either of the form (/node)+ or the root path '/'. (An empty path is +not allowed.) Any previous mount point will be freed. + +Ownership is taken of the reference on @factory so that @factory should not be +used after calling this function.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mounts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPMountPoints</doc> + <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/> + </instance-parameter> + <parameter name="path" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a mount point</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="factory" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </parameter> + </parameters> + </method> + <method name="make_path" c:identifier="gst_rtsp_mount_points_make_path"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">Make a path string from @url.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a path string for @url, g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="mounts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPMountPoints</doc> + <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/> + </instance-parameter> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPUrl</doc> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </method> + <method name="match" c:identifier="gst_rtsp_mount_points_match"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">Find the factory in @mounts that has the longest match with @path. + +If @matched is %NULL, @path will match the factory exactly otherwise +the amount of characters that matched is returned in @matched.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">the #GstRTSPMediaFactory for @path. +g_object_unref() after usage.</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </return-value> + <parameters> + <instance-parameter name="mounts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPMountPoints</doc> + <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/> + </instance-parameter> + <parameter name="path" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a mount point</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="matched" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">the amount of @path matched</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="remove_factory" c:identifier="gst_rtsp_mount_points_remove_factory"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">Remove the #GstRTSPMediaFactory associated with @path in @mounts.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="mounts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPMountPoints</doc> + <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/> + </instance-parameter> + <parameter name="path" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a mount point</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="RTSPMountPointsPrivate" c:type="GstRTSPMountPointsPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="RTSPMountPointsClass" c:type="GstRTSPMountPointsClass" glib:is-gtype-struct-for="RTSPMountPoints"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h">The class for the media mounts object.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="make_path"> + <callback name="make_path"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a path string for @url, g_free() after usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="mounts" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPMountPoints</doc> + <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/> + </parameter> + <parameter name="url" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.c">a #GstRTSPUrl</doc> + <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTSPMountPointsPrivate" c:type="GstRTSPMountPointsPrivate" disguised="1"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-mount-points.h"/> + </record> + <class name="RTSPOnvifClient" c:symbol-prefix="rtsp_onvif_client" c:type="GstRTSPOnvifClient" version="1.14" parent="RTSPClient" glib:type-name="GstRTSPOnvifClient" glib:get-type="gst_rtsp_onvif_client_get_type" glib:type-struct="RTSPOnvifClientClass"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-client.h"/> + <constructor name="new" c:identifier="gst_rtsp_onvif_client_new" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-client.c">Create a new #GstRTSPOnvifClient instance.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-client.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-client.c">a new #GstRTSPOnvifClient</doc> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </return-value> + </constructor> + <field name="parent"> + <type name="RTSPClient" c:type="GstRTSPClient"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="RTSPOnvifClientClass" c:type="GstRTSPOnvifClientClass" glib:is-gtype-struct-for="RTSPOnvifClient"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-client.h"/> + <field name="parent"> + <type name="RTSPClientClass" c:type="GstRTSPClientClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="RTSPOnvifMedia" c:symbol-prefix="rtsp_onvif_media" c:type="GstRTSPOnvifMedia" version="1.14" parent="RTSPMedia" glib:type-name="GstRTSPOnvifMedia" glib:get-type="gst_rtsp_onvif_media_get_type" glib:type-struct="RTSPOnvifMediaClass"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.h"/> + <method name="collect_backchannel" c:identifier="gst_rtsp_onvif_media_collect_backchannel" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.c">Find the ONVIF backchannel depayloader element. It should be named +'depay_backchannel', be placed in a bin called 'onvif-backchannel' +and return all supported RTP caps on a caps query. Complete RTP caps with +at least the payload type, clock-rate and encoding-name are required. + +A new #GstRTSPStream is created for the backchannel if found.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.c">%TRUE if a backchannel stream could be found and created</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.c">a #GstRTSPOnvifMedia</doc> + <type name="RTSPOnvifMedia" c:type="GstRTSPOnvifMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_backchannel_bandwidth" c:identifier="gst_rtsp_onvif_media_get_backchannel_bandwidth" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.c">Get the configured/supported bandwidth of the ONVIF backchannel pipeline in +bits per second.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.c">the configured/supported backchannel bandwidth.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.c">a #GstRTSPMedia</doc> + <type name="RTSPOnvifMedia" c:type="GstRTSPOnvifMedia*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_backchannel_bandwidth" c:identifier="gst_rtsp_onvif_media_set_backchannel_bandwidth" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.c">Set the configured/supported bandwidth of the ONVIF backchannel pipeline in +bits per second.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="media" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.c">a #GstRTSPMedia</doc> + <type name="RTSPOnvifMedia" c:type="GstRTSPOnvifMedia*"/> + </instance-parameter> + <parameter name="bandwidth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.c">the bandwidth in bits per second</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="RTSPMedia" c:type="GstRTSPMedia"/> + </field> + <field name="priv"> + <type name="RTSPOnvifMediaPrivate" c:type="GstRTSPOnvifMediaPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="RTSPOnvifMediaClass" c:type="GstRTSPOnvifMediaClass" glib:is-gtype-struct-for="RTSPOnvifMedia"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.h"/> + <field name="parent"> + <type name="RTSPMediaClass" c:type="GstRTSPMediaClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="RTSPOnvifMediaFactory" c:symbol-prefix="rtsp_onvif_media_factory" c:type="GstRTSPOnvifMediaFactory" version="1.14" parent="RTSPMediaFactory" glib:type-name="GstRTSPOnvifMediaFactory" glib:get-type="gst_rtsp_onvif_media_factory_get_type" glib:type-struct="RTSPOnvifMediaFactoryClass"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <constructor name="new" c:identifier="gst_rtsp_onvif_media_factory_new" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">Create a new #GstRTSPOnvifMediaFactory</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">A new #GstRTSPOnvifMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </return-value> + </constructor> + <function name="requires_backchannel" c:identifier="gst_rtsp_onvif_media_factory_requires_backchannel" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">Checks whether the client request requires backchannel.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">%TRUE if the client request requires backchannel.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="RTSPContext" c:type="GstRTSPContext*"/> + </parameter> + </parameters> + </function> + <virtual-method name="has_backchannel_support" invoker="has_backchannel_support" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">Returns %TRUE if an ONVIF backchannel is supported by the media factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">%TRUE if an ONVIF backchannel is supported by the media factory.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="get_backchannel_bandwidth" c:identifier="gst_rtsp_onvif_media_factory_get_backchannel_bandwidth" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">Get the configured/supported bandwidth of the ONVIF backchannel pipeline in +bits per second.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">the configured/supported backchannel bandwidth.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_backchannel_launch" c:identifier="gst_rtsp_onvif_media_factory_get_backchannel_launch" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">Get the gst_parse_launch() pipeline description that will be used in the +default prepare vmethod for generating the ONVIF backchannel pipeline.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">the configured backchannel launch description. g_free() after +usage.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_backchannel_support" c:identifier="gst_rtsp_onvif_media_factory_has_backchannel_support" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">Returns %TRUE if an ONVIF backchannel is supported by the media factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">%TRUE if an ONVIF backchannel is supported by the media factory.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_replay_support" c:identifier="gst_rtsp_onvif_media_factory_has_replay_support" version="1.18"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">%TRUE if ONVIF replay is supported by the media factory.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_backchannel_bandwidth" c:identifier="gst_rtsp_onvif_media_factory_set_backchannel_bandwidth" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">Set the configured/supported bandwidth of the ONVIF backchannel pipeline in +bits per second.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/> + </instance-parameter> + <parameter name="bandwidth" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">the bandwidth in bits per second</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_backchannel_launch" c:identifier="gst_rtsp_onvif_media_factory_set_backchannel_launch" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">The gst_parse_launch() line to use for constructing the ONVIF backchannel +pipeline in the default prepare vmethod if requested by the client. + +The pipeline description should return a GstBin as the toplevel element +which can be accomplished by enclosing the description with brackets '(' +')'. + +The description should return a pipeline with a single depayloader named +depay_backchannel. A caps query on the depayloader's sinkpad should return +all possible, complete RTP caps that are going to be supported. At least +the payload type, clock-rate and encoding-name need to be specified. + +Note: The pipeline part passed here must end in sinks that are not waiting +until pre-rolling before reaching the PAUSED state, i.e. setting +async=false on #GstBaseSink. Otherwise the whole media will not be able to +prepare.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/> + </instance-parameter> + <parameter name="launch" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">the launch description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_replay_support" c:identifier="gst_rtsp_onvif_media_factory_set_replay_support" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">Set to %TRUE if ONVIF replay is supported by the media factory.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="factory" transfer-ownership="none"> + <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/> + </instance-parameter> + <parameter name="has_replay_support" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory"/> + </field> + <field name="priv"> + <type name="RTSPOnvifMediaFactoryPrivate" c:type="GstRTSPOnvifMediaFactoryPrivate*"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="RTSPOnvifMediaFactoryClass" c:type="GstRTSPOnvifMediaFactoryClass" glib:is-gtype-struct-for="RTSPOnvifMediaFactory"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <field name="parent"> + <type name="RTSPMediaFactoryClass" c:type="GstRTSPMediaFactoryClass"/> + </field> + <field name="has_backchannel_support"> + <callback name="has_backchannel_support"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">%TRUE if an ONVIF backchannel is supported by the media factory.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.c">a #GstRTSPMediaFactory</doc> + <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTSPOnvifMediaFactoryPrivate" c:type="GstRTSPOnvifMediaFactoryPrivate" disguised="1"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media-factory.h"/> + </record> + <record name="RTSPOnvifMediaPrivate" c:type="GstRTSPOnvifMediaPrivate" disguised="1"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-media.h"/> + </record> + <class name="RTSPOnvifServer" c:symbol-prefix="rtsp_onvif_server" c:type="GstRTSPOnvifServer" version="1.14" parent="RTSPServer" glib:type-name="GstRTSPOnvifServer" glib:get-type="gst_rtsp_onvif_server_get_type" glib:type-struct="RTSPOnvifServerClass"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-server.h"/> + <constructor name="new" c:identifier="gst_rtsp_onvif_server_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-server.c">Create a new #GstRTSPOnvifServer instance.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-server.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-server.c">a new #GstRTSPOnvifServer</doc> + <type name="RTSPServer" c:type="GstRTSPServer*"/> + </return-value> + </constructor> + <field name="parent"> + <type name="RTSPServer" c:type="GstRTSPServer"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="RTSPOnvifServerClass" c:type="GstRTSPOnvifServerClass" glib:is-gtype-struct-for="RTSPOnvifServer"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-onvif-server.h"/> + <field name="parent"> + <type name="RTSPServerClass" c:type="GstRTSPServerClass"/> + </field> + <field name="_gst_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="RTSPPermissions" c:type="GstRTSPPermissions" glib:type-name="GstRTSPPermissions" glib:get-type="gst_rtsp_permissions_get_type" c:symbol-prefix="rtsp_permissions"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h">The opaque permissions structure. It is used to define the permissions +of objects in different roles.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <field name="mini_object" writable="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject"/> + </field> + <constructor name="new" c:identifier="gst_rtsp_permissions_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">Create a new empty Authorization permissions.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a new empty authorization permissions.</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </return-value> + </constructor> + <method name="add_permission_for_role" c:identifier="gst_rtsp_permissions_add_permission_for_role" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">Add a new @permission for @role to @permissions with the access in @allowed.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="permissions" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a #GstRTSPPermissions</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </instance-parameter> + <parameter name="role" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a role</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="permission" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">the permission</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="allowed" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">whether the role has this permission or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="add_role" c:identifier="gst_rtsp_permissions_add_role" shadowed-by="add_role_empty" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">Add a new @role to @permissions with the given variables. The fields +are the same layout as gst_structure_new().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="permissions" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a #GstRTSPPermissions</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </instance-parameter> + <parameter name="role" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a role</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">the first field name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">additional arguments</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="add_role_empty" c:identifier="gst_rtsp_permissions_add_role_empty" shadows="add_role" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">Add a new @role to @permissions without any permissions. You can add +permissions for the role with gst_rtsp_permissions_add_permission_for_role().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="permissions" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a #GstRTSPPermissions</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </instance-parameter> + <parameter name="role" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a role</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="add_role_from_structure" c:identifier="gst_rtsp_permissions_add_role_from_structure" version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">Add a new role to @permissions based on @structure, for example +given a role named `tester`, which should be granted a permission named +`permission1`, the structure could be created with: + +``` +gst_structure_new ("tester", "permission1", G_TYPE_BOOLEAN, TRUE, NULL); +```</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="permissions" transfer-ownership="none"> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </instance-parameter> + <parameter name="structure" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="add_role_valist" c:identifier="gst_rtsp_permissions_add_role_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">Add a new @role to @permissions with the given variables. Structure fields +are set according to the varargs in a manner similar to gst_structure_new().</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="permissions" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a #GstRTSPPermissions</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </instance-parameter> + <parameter name="role" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a role</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="fieldname" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">the first field name</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">additional fields to add</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="get_role" c:identifier="gst_rtsp_permissions_get_role"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">Get all permissions for @role in @permissions.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">the structure with permissions for @role. It +remains valid for as long as @permissions is valid.</doc> + <type name="Gst.Structure" c:type="const GstStructure*"/> + </return-value> + <parameters> + <instance-parameter name="permissions" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a #GstRTSPPermissions</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </instance-parameter> + <parameter name="role" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a role</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="is_allowed" c:identifier="gst_rtsp_permissions_is_allowed"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">Check if @role in @permissions is given permission for @permission.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">%TRUE if @role is allowed @permission.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="permissions" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a #GstRTSPPermissions</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </instance-parameter> + <parameter name="role" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a role</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="permission" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a permission</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="remove_role" c:identifier="gst_rtsp_permissions_remove_role"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">Remove all permissions for @role in @permissions.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="permissions" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a #GstRTSPPermissions</doc> + <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/> + </instance-parameter> + <parameter name="role" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-permissions.c">a role</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </record> + <enumeration name="RTSPPublishClockMode" glib:type-name="GstRTSPPublishClockMode" glib:get-type="gst_rtsp_publish_clock_mode_get_type" c:type="GstRTSPPublishClockMode"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">Whether the clock and possibly RTP/clock offset should be published according to RFC7273.</doc> + <member name="none" value="0" c:identifier="GST_RTSP_PUBLISH_CLOCK_MODE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">Publish nothing</doc> + </member> + <member name="clock" value="1" c:identifier="GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK" glib:nick="clock"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">Publish the clock but not the offset</doc> + </member> + <member name="clock_and_offset" value="2" c:identifier="GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK_AND_OFFSET" glib:nick="clock-and-offset"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.h">Publish the clock and offset</doc> + </member> + </enumeration> + <callback name="RTSPSendFunc" c:type="GstRTSPSendFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">Function registered with gst_rtsp_stream_transport_set_callbacks() and +called when @buffer must be sent on @channel.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">%TRUE on success</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">a #GstBuffer</doc> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">a channel</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="RTSPSendListFunc" c:type="GstRTSPSendListFunc" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">Function registered with gst_rtsp_stream_transport_set_callbacks() and +called when @buffer_list must be sent on @channel.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">%TRUE on success</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer_list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">a #GstBufferList</doc> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">a channel</doc> + <type name="guint8" c:type="guint8"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">user data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="RTSPServer" c:symbol-prefix="rtsp_server" c:type="GstRTSPServer" parent="GObject.Object" glib:type-name="GstRTSPServer" glib:get-type="gst_rtsp_server_get_type" glib:type-struct="RTSPServerClass"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server-object.h">This object listens on a port, creates and manages the clients connected to +it.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server-object.h"/> + <constructor name="new" c:identifier="gst_rtsp_server_new"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">Create a new #GstRTSPServer instance.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server-object.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">a new #GstRTSPServer</doc> + <type name="RTSPServer" c:type="GstRTSPServer*"/> + </return-value> + </constructor> + <function name="io_func" c:identifier="gst_rtsp_server_io_func"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">A default #GSocketSourceFunc that creates a new #GstRTSPClient to accept and handle a +new connection on @socket or @server.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server-object.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">TRUE if the source could be connected, FALSE if an error occurred.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="socket" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">a #GSocket</doc> + <type name="Gio.Socket" c:type="GSocket*"/> + </parameter> + <parameter name="condition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">the condition on @source</doc> + <type name="GLib.IOCondition" c:type="GIOCondition"/> + </parameter> + <parameter name="server" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">a #GstRTSPServer</doc> + <type name="RTSPServer" c:type="GstRTSPServer*"/> + </parameter> + </parameters> + </function> + <virtual-method name="client_connected"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server-object.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="server" transfer-ownership="none"> + <type name="RTSPServer" c:type="GstRTSPServer*"/> + </instance-parameter> + <parameter name="client" transfer-ownership="none"> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create_client" introspectable="0"> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server-object.h"/> + <return-value> + <type name="RTSPClient" c:type="GstRTSPClient*"/> + </return-value> + <parameters> + <instance-parameter name="server" transfer-ownership="none"> + <type name="RTSPServer" c:type="GstRTSPServer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="attach" c:identifier="gst_rtsp_server_attach"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">Attaches @server to @context. When the mainloop for @context is run, the +server will be dispatched. When @context is %NULL, the default context will be +used). + +This function should be called when the server properties and urls are fully +configured and the server is ready to start. + +This takes a reference on @server until the source is destroyed. Note that +if @context is not the default main context as returned by +g_main_context_default() (or %NULL), g_source_remove() cannot be used to +destroy the source. In that case it is recommended to use +gst_rtsp_server_create_source() and attach it to @context manually.</doc> + <source-position filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server-object.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">the ID (greater than 0) for the source within the GMainContext.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="server" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">a #GstRTSPServer</doc> + <type name="RTSPServer" c:type="GstRTSPServer*"/> + </instance-parameter> + <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">a #GMainContext</doc> + <type name="GLib.MainContext" c:type="GMainContext*"/> + </parameter> + </parameters> + </method> + <method name="client_filter" c:identifier="gst_rtsp_server_client_filter"> + <doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-server.c">Call @func for each client managed by @server. The result value of @func +determines what happens to the client. @func will be called with @server +locked so no further actions on @server can be performed from @func. + +If @func returns #GST_RTSP_FILTER_REMOVE, the client will be removed from +@server. + +If @func returns #GST_RTSP_FILTER_KEEP, the client will remain in @server. + +If @func returns #GST_RTSP_FILTER_REF, the client will remain in @server but +will also be added with an additional ref to the result #GList of this +function.. + +When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each client.</doc>